如何将 IdentityServer4 设置为外部身份提供者

Posted

技术标签:

【中文标题】如何将 IdentityServer4 设置为外部身份提供者【英文标题】:How to setup IdentityServer4 to be an external identity provider 【发布时间】:2021-05-21 18:42:08 【问题描述】:

有很多关于如何添加外部身份提供商(如 Google、Facebook、Microsoft 等)的信息和文档。

IdentityServer4 是否支持作为另一个 OpenID Connect 服务器(可能是另一个 IdentityServer4 实例)的外部身份提供者?

如果是这样,您如何设置?如果我的 IdentityServer4 实例(实例 A)充当另一个 IdentityServer4 实例(实例 B)的外部提供者,我需要在实例 A 上为实例 B 设置什么样的客户端?

任何有关该主题的文档或示例都会非常有帮助。

【问题讨论】:

【参考方案1】:

是的,您可以使用 IdentityServer 实现此目的。在这种情况下,它将“像”任何其他第 3 方身份提供商(Facebook、Google 等)一样工作

例如——在这种情况下,您应该使用您自己的身份提供者公开的身份验证来配置您的应用,而不是“Google”——请参阅此文档页面:

http://docs.identityserver.io/en/latest/topics/signin_external_providers.html?highlight=external%20identity%20provider

您可能会遇到问题(至少 2017 年就是这种情况)——请参阅这个较早的问题 IdentityServer used as external identity provider for another IdentityServer fails to properly redirect

希望这能让您走上正确的道路。愉快的黑客攻击!

【讨论】:

谢谢 - 这确实帮助了一些人。我想这一切都归结为要在实例 A 中设置什么样的客户端以供实例 B 使用。您链接的问题似乎暗示了 HybridAndClientCredentials,但在他的故障排除过程中,他改变了它。我想我得到处玩了

以上是关于如何将 IdentityServer4 设置为外部身份提供者的主要内容,如果未能解决你的问题,请参考以下文章

IdentityServer4 Ws 联合声明

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

IdentityServer4 ADFS 外部不返回角色

IdentityServer 4,OpenIdConnect 重定向到外部登录 url

IdentityServer4-快速入门

没有 cookie 的 IdentityServer4 外部身份验证