外部登录后应该在 IdentityServer 中使用哪个令牌?
Posted
技术标签:
【中文标题】外部登录后应该在 IdentityServer 中使用哪个令牌?【英文标题】:Which token is supposed to be used in IdentityServer after external signin? 【发布时间】:2022-01-16 23:04:19 【问题描述】:当用户使用外部提供商登录我的应用时,他是使用来自该提供商的令牌来调用应用的 API 还是必须让应用生成自己的令牌?
【问题讨论】:
如果在Identity Server中实现了外部登录,Identity Server收到外部提供者的id token/access token后,会解码token并获取用户的语句,登录用户,然后创建身份服务器自己的令牌,最后返回您的客户端应用程序。 Identity Server 不会处理来自外部提供者的令牌,您可以阅读这篇文章:docs.microsoft.com/en-us/aspnet/core/security/authentication/… 【参考方案1】:IdentityServer 从外部提供者接收到的令牌不会传递给客户端,而是 IdentityServer 会根据接收到的外部令牌中的数据发出自己的令牌。
使用 IdentityServer 的客户端和 API 只信任它发出的令牌,而不信任外部服务发出的令牌。通过这种方式,您可以拥有 IdentityServer 信任的一项或多项服务,但您的客户端/API 仅信任 IndentityServer。
希望能让事情更清楚一点
【讨论】:
谢谢,这正是我想知道的以上是关于外部登录后应该在 IdentityServer 中使用哪个令牌?的主要内容,如果未能解决你的问题,请参考以下文章
ASP.NET Identity(使用 IdentityServer4)获取外部资源 oauth 访问令牌
IdentityServer 4,OpenIdConnect 重定向到外部登录 url
使用 Identity Server 4 和 ASP.NET Identity 添加外部登录