Azure AD B2C自定义策略:extension_inviteToken无法传递至REST API
Azure AD B2C自定义策略问题:extension_inviteToken声明无法传递至REST API
extension_inviteToken声明已存在于/authorize URL及审计日志中,但无法传递至REST API技术配置文件,API收到的InviteToken值为空或null。
已完成的配置
- extension_inviteToken声明映射:
<ClaimType Id="extension_inviteToken"> <DisplayName>Invite Token</DisplayName> <DataType>string</DataType> <DefaultPartnerClaimTypes> <Protocol Name="OAuth2" PartnerClaimType="extension_inviteToken" /> </DefaultPartnerClaimTypes> </ClaimType>
- REST API技术配置文件:
<TechnicalProfile Id="REST-GetEmailFromInviteToken"> <DisplayName>Get Email From Invite Token</DisplayName> <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.RestfulProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" /> <Metadata> <Item Key="ServiceUrl">https://api7502.ngrok.io/api/invite/validate</Item> <Item Key="SendClaimsIn">Body</Item> <Item Key="AuthenticationType">None</Item> <Item Key="AllowInsecureAuthInProduction">true</Item> <Item Key="DefaultUserMessageIfRequestFailed">Invite token missing or invalid.</Item> </Metadata> <InputClaims> <InputClaim ClaimTypeReferenceId="extension_inviteToken" PartnerClaimType="InviteToken" Required="true" /> </InputClaims> <OutputClaims> <OutputClaim ClaimTypeReferenceId="email" /> <OutputClaim ClaimTypeReferenceId="extension_accountName" /> <OutputClaim ClaimTypeReferenceId="extension_contactName" /> <OutputClaim ClaimTypeReferenceId="extension_inviteToken" /> </OutputClaims> </TechnicalProfile>
- 调试用技术配置文件及流程配置:
调试技术配置文件:
<TechnicalProfile Id="SelfAsserted-DebugInviteToken"> <DisplayName>Debug Invite Token</DisplayName> <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.SelfAssertedAttributeProvider" /> <InputClaims> <InputClaim ClaimTypeReferenceId="extension_inviteToken" /> </InputClaims> <OutputClaims> <OutputClaim ClaimTypeReferenceId="extension_inviteToken" /> </OutputClaims> </TechnicalProfile>
流程中的引用:
<OrchestrationStep Order="2" Type="ClaimsExchange"> <ClaimsExchanges> <ClaimsExchange Id="DebugInviteToken" TechnicalProfileReferenceId="SelfAsserted-DebugInviteToken" /> </ClaimsExchanges> </OrchestrationStep>
- 无多余的声明转换
- 已遵循Azure AD B2C自定义策略的所有最佳实践
补充细节
- /authorize URL包含
extension_inviteToken=...,审计日志确认其存在 - RelyingParty PolicyProfile配置:
<InputClaims> <InputClaim ClaimTypeReferenceId="extension_inviteToken" /> </InputClaims>
- REST API端点预期接收
{ "InviteToken": "..." },Postman测试可正常工作 - 所有策略已按正确顺序上传,无上传错误
- 问题持续存在:API从B2C收到
{}或{ "InviteToken": null }
请求
请帮忙排查为何extension_inviteToken声明无法从OIDC请求传递至REST API,尽管已完成所有映射并遵循最佳实践。
内容的提问来源于stack exchange,提问作者Ret 2
相关产品推荐
相关产品推荐

