外部登录后应该在 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 添加外部登录

跳过 IdentityServer3 登录屏幕

将外部登录令牌从 Identity Server 流向客户端应用程序

从外部提供者注销后,身份服务器登录流程卡住