我阅读了B2C access token documentation,并且发现tenantId声明(tid)不在列表中。这与普通的Azure Active Directory访问令牌声明不同。
我需要对B2C访问令牌(使用B2C策略)提出要求,以使令牌高速缓存正常工作,但是我不知道如何将其包括在有效负载中。
如何在B2C访问令牌有效载荷中包含TenantId(tid)声明?
答案 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 自定义策略比我们通常预期的要复杂得多,但另一方面,自定义身份验证流程的机会要多得多。