网站搜索

索赔 X-Ray ADFS 在线故障排除工具


当您对 ADFS 部署进行故障排除时,或者与第三方供应商合作解决身份验证问题时,或者当您只是想深入了解 ADFS 环境时,Microsoft 提供了多种可用于测试目的的工具.
要了解有关 ADFS 的更多信息,Active Directory 联合身份验证服务 Wiki 门户是一个很好的起点,对于在线工具,Microsoft 的 ADFS 帮助 (https://adfshelp.microsoft.com) 是一个很好的起点。

用于 ADFS 故障排除的有趣在线工具之一称为 Claims X-Ray。声明 X-Ray 由 ADFS 环境中的专用依赖方信任 (RPT) 组成。您可以使用在线工具自动登录 RPT,也可以通过 ADFS IdpInitiatedSignon 页面手动登录(如我之前的博文逐步实施 Active Directory 联合身份验证服务中所述)
可以在(主)ADFS 服务器上使用以下 PowerShell 命令创建 X-Ray 依赖方信任:

[PS] C:\> {$authzRules = "=>issue(Type = `"http://schemas.microsoft.com/authorization/claims/permit`", Value = `"true`"); "
[PS] C:\> $issuanceRules = "@RuleName = `"Issue all claims`"`nx:[]=>issue(claim = x); "
[PS] C:\> $redirectUrl = "https://adfshelp.microsoft.com/ClaimsXray/TokenResponse"
[PS] C:\> $samlEndpoint = New-AdfsSamlEndpoint -Binding POST -Protocol SAMLAssertionConsumer -Uri $redirectUrl

[PS] C:\> Add-ADFSRelyingPartyTrust -Name "Claims X-ray" -Identifier "urn:microsoft:adfs:claimsxray" -IssuanceAuthorizationRules $authzRules -IssuanceTransformRules $issuanceRules -WSFedEndpoint $redirectUrl -SamlEndpoint $samlEndpoint

如下图所示:

如果要使用 oAuth 测试声明 X-Ray,您需要再次在(主)ADFS 服务器上使用以下 PowerShell 命令创建 oAuth 客户端:

[PS] C:\> Add-AdfsClient -Name "Claims X-ray Client" -ClientId "claimsxrayclient" -RedirectUri https://adfshelp.microsoft.com/ClaimsXray/TokenResponse
[PS] C:\> if ([System.Environment]::OSVersion.Version.major -gt 6) { Grant-AdfsApplicationPermission -ServerRoleIdentifier urn:microsoft:adfs:claimsxray -AllowAllRegisteredClients -ScopeNames "openid","profile" }

创建依赖方信任后,您可以继续使用在线工具对其进行测试,从而更仔细地了解您的环境。在 Claims X-Ray 工具中输入联合实例(即 federation.exchangelabs.nl)并单击测试身份验证,如以下屏幕截图所示:

它将重定向到您的 WAP 服务器(默认 ADFS 行为),输入有效的用户凭据,并将显示返回的 SAML 令牌,包括它包含的声明。

如果我在自己的环境中执行此操作,它将返回一个包含 21 个声明的令牌,其中包含有趣的信息,例如原始客户端的 IP 地址(userip 或 x-ms-forwarded-client-ip,我在其中运行 Web 浏览器), ADFS WAP 服务器的 IP 地址 (x-ms-clientip)、我使用的浏览器类型、我是否在公司网络上、UPN、隐式 UPN 和 Windows 帐户名等等。以下屏幕截图显示了其中一些声明:

还可以使用 IdpInitiatedSignon 页面,声明 X-Ray RPT 选项通过 PowerShell 命令添加到此页面:

当您登录时,您将看到一个具有不同声明的新令牌,具体取决于您当时登录的位置。例如,在乘火车上下班时,我可以弄清楚 ADFS 验证我身份的方式以及针对此特定场景发出的声明:

当您必须对环境进行故障排除或者您只是感兴趣时,使用 Claims X-Ray 在线工具,您可以从不同的客户端、网络等测试 ADFS 环境的行为。

例如,目前我正在解决一个问题,即我们在需要针对 ADFS 部署进行身份验证的 MobileIron 部署方面遇到困难。常规 RPT 中的规则和政策可以复制到索赔 X 射线 RPT,之后您可以确定 RPT 的行为,并希望首先找出它不起作用的原因。

更多信息

索赔 X 射线 - https://adfshelp.microsoft.com/ClaimsXray/TokenRequest

相关文章