ADFS 3.0 引入了 OAuth2 授权代码流程。我们有一个现有的 ADFS 服务器,其中包含现有的依赖方、外部声明提供商和声明规则。新的 OAuth 流程通过要求在向 ADFS OAuth 授权端点发出的请求中将依赖方 ID 作为“资源”参数提供,从而链接到所有这些。
当我到达该端点时,ADFS 会向我显示主领域选择页面,其中包含我配置的每个声明提供程序的选项。
通过 Saml 和 WS-Fed 流程,可以在对 ADFS 的请求中指定“主领域”,从而绕过此屏幕。
使用 OAuth2 流程可以实现这一点吗?
如果是,据我所知,它没有记录在案,所以我假设答案是否定的。那么如果做不到这一点,如果我不想向用户提供声明提供者列表,有什么解决方法吗?
答案1
您可以使用以下方法绕过 HRD:
Set-AdfsRelyingPartyTrust -TargetName claimapp -ClaimsProviderName @("Active Directory")
在这种情况下,我们假设用户始终来自 AD。但选择其他 CP 是您的选择。
答案2
我用这个来做这个技巧: https://blog.kloud.com.au/2018/06/14/auto-redirect-adfs-4-0-home-realm-discovery-based-on-client-ip/
我没有使用 IP,而是读取了 referrer_origin 或者其他任何可以注入查询字符串的参数,它起作用了!!!