在 ADFS 4.0 中,可以通过自定义 Claims Provider (IDP) 来将 ConsumerAssertionUrl 发送到 AuthNRequest 中。下面是一个示例代码,演示了如何实现这一点:
在 ADFS 4.0 服务器上打开 PowerShell,运行以下命令以创建一个自定义的 Claims Provider (IDP):
Add-ADFSRelyingPartyTrust -Name "CustomClaimsProvider" -Identifier "https://customclaimsprovider.com" -ClaimsProviderName "CustomClaimsProvider"
这将创建一个名为 "CustomClaimsProvider" 的自定义 Claims Provider (IDP),它的标识符为 "https://customclaimsprovider.com"。
在 ADFS 4.0 服务器上打开 PowerShell,运行以下命令以修改自定义的 Claims Provider (IDP) 的 AuthNRequest:
$cp = Get-ADFSRelyingPartyTrust -Name "CustomClaimsProvider"
$cp.ClaimProviderSelectionTechnicalProfile += @'
'@
Set-ADFSRelyingPartyTrust -TargetIdentifier $cp.Identifier -CustomUpdate
这将向自定义的 Claims Provider (IDP) 的 AuthNRequest 中添加一个输入声明 (InputClaim),其中 ClaimTypeReferenceId 设置为 "ConsumerAssertionUrl",PartnerClaimType 设置为 "ConsumerAssertionUrl"。
在 ADFS 4.0 服务器上打开 PowerShell,运行以下命令以更新自定义的 Claims Provider (IDP) 的声明规则:
$cp = Get-ADFSRelyingPartyTrust -Name "CustomClaimsProvider"
$cp.ClaimProviderSelectionTechnicalProfile += @'
'@
Set-ADFSRelyingPartyTrust -TargetIdentifier $cp.Identifier -CustomUpdate
这将向自定义的 Claims Provider (IDP) 的声明规则中添加一个输出声明 (OutputClaim),其中 ClaimTypeReferenceId 和 PartnerClaimType 都设置为 "ConsumerAssertionUrl"。
现在,ADFS 4.0 将在 AuthNRequest 中包含 ConsumerAssertionUrl。
请注意,这只是一个示例代码,具体的实现可能会因环境和需求而有所不同。请根据自己的情况进行适当的修改。