openid - 使用 openId 连接身份服务器的两个实例
问题描述
是否可以使用另一个身份服务器实例登录身份服务器?
具体来说:一个是公开的,另一个在公司防火墙后面。
示例:这家公司的用户希望使用这两个 IDS 之间的某种安全反向通道,使用自己的公司凭据(例如 AD)登录到公共用户。
我知道使用“使用外部身份提供者登录”可以做到这一点,但我希望这是动态可配置的——因为公司的数量会随着时间的推移而增长。
有哪些选择可以实现这一目标?
解决方案
为此,我最终实现了自己的 OIDC 中间件,该中间件可以接受额外的运行时设置,而不是使用在应用程序启动时定义的静态设置。
它仍然使用常规的 OIDC,因此它是一个前端渠道操作,因此第 3 方提供商必须暴露在互联网上,并且您的提供商也需要直接视线。
为此,我OpenIdConnectHandler
从Microsoft.AspNetCore.Authentication.OpenIdConnect
包中继承并覆盖了以下虚拟方法,并在必要时将对静态配置的引用替换为运行时提供的引用:
- HandleUnauthorizedAsync
- HandleRemoteAuthenticateAsync
- HandleSignOutAsync
- HandleSignOutCallbackAsync
推荐阅读
- python - Pandas 在数据帧的每一列的第一个有效索引之前和最后一个有效索引之后下降
- css - 获取最后一页的页码 - Beautiful Soup
- java - 获取 java.io.IOException: Stream closed error without显式关闭它
- python - 为什么“os.path.join”和“os.path.dirname(__file__)”返回不同的分隔符?
- c# - 将泛型类 T 存储在变量中并在子方法中重用它
- apache-spark - 我是否可以加快在 pyspark 上运行 python 库的速度
- css - 将 CSS transition-timing-function 翻译成滑动
- r - R:调用 addHandlerClicked 后向量不会改变(gWidgets)
- php - 与 phpmyadmin 相比,php mysqli 返回不同的行数
- python - python selenium firefox,用于身份验证弹出的特殊字符@