Jwt 将REST API响应作为输出声明返回Azure B2C
大家好,谢谢你们的支持 我目前正在开发一个在JWT令牌中添加自定义声明的解决方案 设置如下所示:Jwt 将REST API响应作为输出声明返回Azure B2C,jwt,azure-active-directory,azure-functions,azure-ad-b2c,azure-ad-graph-api,Jwt,Azure Active Directory,Azure Functions,Azure Ad B2c,Azure Ad Graph Api,大家好,谢谢你们的支持 我目前正在开发一个在JWT令牌中添加自定义声明的解决方案 设置如下所示: Azure B2C有一个针对多个索赔提供商的自定义策略 Azure AD的声明提供程序配置了标准声明和我的自定义声明 用于调用RESTAPI的声明提供程序 REST API gathers配置为从Graph API收集自定义属性,配置为使用“电子邮件”输入声明查找与用户登录相关的数据,以及使用“我的自定义声明”名称的“输出”声明 在用户SignUpSignIn旅程中添加了一个步骤,在发出JWT令牌之
<ClaimsProvider>
<DisplayName>REST API</DisplayName>
<TechnicalProfiles>
<TechnicalProfile Id="GetUserGroups">
<DisplayName>Retrieves security groups assigned to the user</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://contoso.azurewebsites.net/api/aadgroups?code=123456789QWERTYUIOP123456789QWERTYUIOP==</Item>
<Item Key="AuthenticationType">None</Item>
<Item Key="SendClaimsIn">Body</Item>
<Item Key="AllowInsecureAuthInProduction">true</Item>
</Metadata>
<InputClaims>
<InputClaim ClaimTypeReferenceId="email" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="restapigroups" />
</OutputClaims>
<UseTechnicalProfileForSessionManagement ReferenceId="SM-Noop" />
</TechnicalProfile>
</TechnicalProfiles>
</ClaimsProvider>
<ClaimType Id="restapigroups">
<DisplayName>Group memberships</DisplayName>
<DataType>stringCollection</DataType>
<UserHelpText>This is read only for the user</UserHelpText>
<UserInputType>Readonly</UserInputType>
</ClaimType>
<OrchestrationStep Order="11" Type="ClaimsExchange">
<ClaimsExchanges>
<ClaimsExchange Id="AADUserGroups" TechnicalProfileReferenceId="GetUserGroups" />
</ClaimsExchanges>
</OrchestrationStep>
RESTAPI
检索分配给用户的安全组
https://contoso.azurewebsites.net/api/aadgroups?code=123456789QWERTYUIOP123456789QWERTYUIOP==
没有一个
身体
真的
团体成员资格
stringCollection
这对于用户是只读的
只读
一如既往,我们非常感谢您的帮助,如果您有任何问题或建议,请告诉我。谢谢。您必须配置RelyingParty部分以将声明输出到令牌中。请参见此示例:您必须配置RelyingParty部分以将声明输出到令牌中。请参见此示例:另一件要提及的事情是,我曾尝试遵循下面详述的索赔转换方法,但这并不成功,可能不适用:另一件要提及的事情是,我曾尝试遵循下面详述的索赔转换方法,但这并不成功,也可能不适用:你是说Azure广告索赔提供商的相关方吗?输出声明添加到REST API和Azure AD声明提供程序部分(“RestapiGroup”)``在signinoSignup.xml中,您将有一个开始的部分。这将配置您的B2C索赔包中的哪些索赔被发放到B2C令牌中。您必须在那里添加输出声明。您所描述的是,您只将声明输出到claimbag,这是不够的。我现在明白您的意思了。我忘了提到声明已经正确地添加到了SignUpOrSignIn.xml中。我刚刚设法解决了这个问题,问题是我需要向JSON响应中输出的声明添加一个引用声明类型。一旦我这样做了,声明就正确地输出了。(PartnerClaimType=“xxxxx”)感谢您的支持和帮助,我们已经修复了它。好的,听起来您的API到B2C索赔映射不正确,因此B2C从未在索赔包中包含索赔。很高兴它解决了。你是说Azure广告索赔提供商的相关方吗?输出声明添加到REST API和Azure AD声明提供程序部分(“RestapiGroup”)``在signinoSignup.xml中,您将有一个开始的部分。这将配置您的B2C索赔包中的哪些索赔被发放到B2C令牌中。您必须在那里添加输出声明。您所描述的是,您只将声明输出到claimbag,这是不够的。我现在明白您的意思了。我忘了提到声明已经正确地添加到了SignUpOrSignIn.xml中。我刚刚设法解决了这个问题,问题是我需要向JSON响应中输出的声明添加一个引用声明类型。一旦我这样做了,声明就正确地输出了。(PartnerClaimType=“xxxxx”)感谢您的支持和帮助,我们已经修复了它。好的,听起来您的API到B2C索赔映射不正确,因此B2C从未在索赔包中包含索赔。很高兴它解决了。