gpt4 book ai didi

azure - 如何作为身份提供商从 ADFS 输出 B2C 中的组声明

转载 作者:行者123 更新时间:2023-12-03 04:16:45 26 4
gpt4 key购买 nike

我通过 OpenID Connect 使用 ADFS 作为 Azure B2C 的 IdP。登录正常,B2C 从 ADFS 发送 UPN 作为 JWT token 中的 SocialIdpUserId 声明。

但是来自 ADFS 的团体声明不起作用。如何在智威汤逊中接收团体 claim ?

设置如下:ADFS 声明规则:域安全和 upn enter image description herec:[类型==“http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname”,
发行人==“AD AUTHORITY”] =>
问题(商店=“事件目录”,
类型=(“http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn”,“http://schemas.xmlsoap.org/claims/Group”),
查询 = ";userPrincipalName,tokenGroups(longDomainQualifiedName);{0}",
参数 = c.Value);

客户端权限设置为 openid 和 allatclaims enter image description here

ClaimsSchema 中 TrustFrameworkBase 策略中的新声明类型定义:

<ClaimsSchema><ClaimType Id="group">
<DisplayName>group</DisplayName>
<DataType>string</DataType>
<DefaultPartnerClaimTypes>
<Protocol Name="OAuth2" PartnerClaimType="group" />
<Protocol Name="OpenIdConnect" PartnerClaimType="group" />
<Protocol Name="SAML2" PartnerClaimType="http://schemas.xmlsoap.org/claims/Group" />
</DefaultPartnerClaimTypes>
</ClaimType></ClaimsSchema>

在 TrustFrameworkExtensions 策略的 TechnicalProfile 中输出声明定义:

<OutputTokenFormat>JWT</OutputTokenFormat><OutputClaims>
<OutputClaim ClaimTypeReferenceId="socialIdpUserId" PartnerClaimType="UPN" />
<OutputClaim ClaimTypeReferenceId="group" PartnerClaimType="group" />
</OutputClaims>

在 SignUpOrSignIn 策略文件的 TechnicalProfile 中输出声明定义

<TechnicalProfile Id="PolicyProfile">
<DisplayName>PolicyProfile</DisplayName>
<Protocol Name="OpenIdConnect" />
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="socialIdpUserId" />
<OutputClaim ClaimTypeReferenceId="group" />
<OutputClaim ClaimTypeReferenceId="authmethod" />
<OutputClaim ClaimTypeReferenceId="objectId" PartnerClaimType="sub"/>
<OutputClaim ClaimTypeReferenceId="identityProvider" />
</OutputClaims>
<SubjectNamingInfo ClaimType="sub" />
</TechnicalProfile>

但是 JWT token 没有附带声明!为什么?

最佳答案

以下是如何通过 B2C 发出团体 claim :1. 在基本策略文件中为组定义新的声明类型。这个定义应该位于 元素的末尾(是的,写 stringCollection 的人就是 write!)

      <ClaimType Id="IdpUserGroups">
<DisplayName>Security groups</DisplayName>
<DataType>stringCollection</DataType>
<DefaultPartnerClaimTypes>
<Protocol Name="OAuth2" PartnerClaimType="groups" />
<Protocol Name="OpenIdConnect" PartnerClaimType="groups" />
<Protocol Name="SAML2" PartnerClaimType="http://schemas.xmlsoap.org/claims/Group" />
</DefaultPartnerClaimTypes>
</ClaimType>
  • 在 ADFS 定义的扩展策略的 中使用此新定义的声明

              <OutputClaims>                
    <OutputClaim ClaimTypeReferenceId="socialIdpUserId" PartnerClaimType="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn" />
    <OutputClaim ClaimTypeReferenceId="IdpUserGroups" PartnerClaimType="http://schemas.xmlsoap.org/claims/Group" />
    <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="SAML fmdadfs4.local"/>
    <OutputClaim ClaimTypeReferenceId="identityProvider" DefaultValue="SAML ADFS4 fmdadfs4.local" />
    </OutputClaims>
  • 在登录策略文件的 元素下的依赖方定义中的 定义中使用相同的声明

      <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="socialIdpUserId" />
    <OutputClaim ClaimTypeReferenceId="IdpUserGroups" />
    <OutputClaim ClaimTypeReferenceId="identityProvider" />
    <OutputClaim ClaimTypeReferenceId="userPrincipalName" PartnerClaimType="userPrincipalName" />

  • 来自 ADFS 的问题组声明,如下所示 enter image description here

  • 关于azure - 如何作为身份提供商从 ADFS 输出 B2C 中的组声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52312521/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com