使用openId连接身份服务器的两个实例

时间:2018-12-17 11:07:29

标签: openid identityserver4

是否可以使用另一个实例登录到Identity Server的一个实例?
具体来说:一个是公共的,另一个是公司防火墙的后面。

示例:该公司的用户希望使用其自己的公司凭据(例如,AD)通过这两个IDS之间的某种安全反向通道登录到公众。

我知道可以使用“使用外部身份提供商登录”来实现,但是我希望这是可动态配置的-因为公司的数量会随着时间的推移而增长。
有哪些选择可以实现这一目标?

1 个答案:

答案 0 :(得分:1)

为此,我最终实现了自己的OIDC中间件,该中间件可以接受其他运行时设置,而不是使用在应用程序启动时定义的静态设置。

它仍然使用常规OIDC,因此它是前渠道操作,因此第三方提供商必须暴露于互联网,您的提供商也需要直接的视线。

为此,我从OpenIdConnectHandler包的Microsoft.AspNetCore.Authentication.OpenIdConnect继承并覆盖了以下虚拟方法,并在必要时用运行时提供的静态配置替换了对静态配置的引用:

  • HandleUnauthorizedAsync
  • HandleRemoteAuthenticateAsync
  • HandleSignOutAsync
  • HandleSignOutCallbackAsync