首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用REST之间的ASP.NET核心身份验证

使用REST之间的ASP.NET核心身份验证
EN

Stack Overflow用户
提问于 2019-09-12 23:02:28
回答 1查看 551关注 0票数 0

我要求通过谷歌登录来验证ASP.NET核心应用程序,但是在客户端应用程序(即ASP.NET核心应用程序)和Google应用程序之间有一个Web .我知道这听起来很混乱,所以让我用图表来解释。

这里是包含google登录按钮并通过他们的google凭据认证用户的典型方法,它的工作原理非常好

第一步:首先,在google门户上创建一个新的应用程序,生成ClientId、ClientSecret并指定redirect_url (比如:https://yoursite.com/signin-google )。

步骤2:在Startup.cs类的ASP.NET核心项目中,使用AddGoogle作为身份验证中间件,它运行得非常好。

包括下面的图表以供您理解:

,这里是建议的流程。在客户端和google之间使用REST登录。问题是,如何验证客户端?

EN

回答 1

Stack Overflow用户

发布于 2019-09-13 00:19:20

据我所知,您希望客户端应用程序代表用户调用REST服务。REST服务需要确保客户端和用户都经过身份验证。

我们使用OpenID Connect混合流实现了这一点。坏消息是,为了实现这一点,我们不得不在解决方案中添加另一个服务。

这与您建议的解决方案的不同之处在于:

  • 您必须拥有自己的标识服务,这必须知道REST服务、客户端应用程序和用户身份的存在。
  • 客户端应用程序重定向用户使用标识服务进行身份验证(身份服务将用户重定向到Google进行身份验证)
  • Identity Server为客户端应用程序提供用户ID令牌,以及可以交换访问令牌的代码
  • 客户端应用程序请求访问令牌。此访问令牌将对客户端和用户进行身份验证。
  • 然后,客户端应用程序在调用REST服务时使用此访问令牌进行身份验证
  • REST Service向Identity Server发出签名密钥的一次性请求,并使用这些密钥验证访问令牌。

在实现Identity Server时,我们碰巧使用了IdentityServer4,但是协议是独立于任何一个实现的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57915451

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档