Azure B2C访问令牌缺少tenantId

时间:2019-05-03 23:49:43

标签: azure-active-directory azure-ad-b2c

我阅读了B2C access token documentation,并且发现tenantId声明(tid)不在列表中。这与普通的Azure Active Directory访问令牌声明不同。

我需要对B2C访问令牌(使用B2C策略)提出要求,以使令牌高速缓存正常工作,但是我不知道如何将其包括在有效负载中。

如何在B2C访问令牌有效载荷中包含TenantId(tid)声明?

1 个答案:

答案 0 :(得分:0)

不确定这是否真的可以帮助您。但我已转而使用自定义策略,这样可以更好地控制返回给用户的内容。

在我的例子中,我像这样返回tenantId:

File: SignUpOrSignin.xml

<RelyingParty>
    <DefaultUserJourney ReferenceId="SignUpOrSignIn" />
    <TechnicalProfile Id="PolicyProfile">
      <DisplayName>PolicyProfile</DisplayName>
      <Protocol Name="OpenIdConnect" />
      <OutputClaims>
        <OutputClaim ClaimTypeReferenceId="displayName" />
        <OutputClaim ClaimTypeReferenceId="givenName" />
        <OutputClaim ClaimTypeReferenceId="surname" />
        <OutputClaim ClaimTypeReferenceId="signInNames.emailAddress" PartnerClaimType="email" />
        <OutputClaim ClaimTypeReferenceId="otherMails" PartnerClaimType="emails" />
        <OutputClaim ClaimTypeReferenceId="email" />
        <OutputClaim ClaimTypeReferenceId="picture" />
        <OutputClaim ClaimTypeReferenceId="objectId" PartnerClaimType="sub"/>
        <OutputClaim ClaimTypeReferenceId="identityProvider" />
        <OutputClaim ClaimTypeReferenceId="tenantId" AlwaysUseDefaultValue="true" DefaultValue="{Policy:TenantObjectId}" />
        <OutputClaim ClaimTypeReferenceId="correlationId" AlwaysUseDefaultValue="true" DefaultValue="{Context:CorrelationId}" />
      </OutputClaims>
      <SubjectNamingInfo ClaimType="sub" />
    </TechnicalProfile>
  </RelyingParty>

Azure B2C 自定义策略比我们通常预期的要复杂得多,但另一方面,自定义身份验证流程的机会要多得多。