修改自定义策略中的JwtIssuer ClaimsProvider以删除AD B2C中的刷新令牌 &



我试图添加一个没有刷新令牌的自定义策略我这样修改了ClaimsProviders:

<ClaimsProvider>
<DisplayName>Token Issuer</DisplayName>
<TechnicalProfiles>
<TechnicalProfile Id="JwtIssuer">
<DisplayName>JWT Issuer</DisplayName>
<Protocol Name="None" />
<OutputTokenFormat>JWT</OutputTokenFormat>
<Metadata>
<Item Key="client_id">{service:te}</Item>

<Item Key="SendTokenResponseBodyWithJsonNumbers">true</Item>
<Item Key="AuthenticationContextReferenceClaimPattern">None</Item>

<Item Key="token_lifetime_secs">3600</Item>
<!-- 1 H -->
<Item Key="id_token_lifetime_secs">3600</Item>

</Metadata>
<CryptographicKeys>
<Key Id="issuer_secret" StorageReferenceId="B2C_1A_TokenSigningKeyContainer" />

</CryptographicKeys>
<InputClaims />
<OutputClaims />
</TechnicalProfile>
</TechnicalProfiles>
</ClaimsProvider>

但是它不起作用。当我尝试登录时,我面临这个js错误:

main.js:1 ERROR ServerError: server_error: AADB2C:发行人技术配置文件'JwtIssuer'必须指定一个'issuer_refresh_token_user_identity_claim_type'来使用此OAuth流

关联ID: bab26044-1e53-4b4a-b5c9-d2f35030a9d7

有什么想法吗?

谢谢:)

感谢@ pallight的评论。我们需要应用一些变通方法来实现相同的目的,因为没有办法删除刷新令牌,也没有直接修改JWTIssuer技术配置文件。

处理:

通过在自定义策略中添加UserJourneyBehaviors标签强制会话超时。例:

<UserJourneyBehaviors> <SingleSignOn Scope="Application" /> <SessionExpiryType>Absolute</SessionExpiryType> <SessionExpiryInSeconds>900</SessionExpiryInSeconds> </UserJourneyBehaviors>

其他场景:

声明JWT令牌中的信息公开给公众。在JWT令牌

中存储一些敏感信息解决方案:您可以将声明发送到REST API,然后将它们发送回B2C进行加密。您可以在SendClaims步骤之前创建一个编排步骤,将所有声明发送到REST API,并让REST API使用这些声明的加密版本进行响应

JWT令牌颁发者引用https://learn.microsoft.com/en-us/azure/active-directory-b2c/jwt-issuer-technical-profile

REST API用法https://learn.microsoft.com/en-us/azure/active-directory-b2c/custom-policy-rest-api-claims-exchange

参考:所有技术简介:https://learn.microsoft.com/en-us/azure/active-directory-b2c/technicalprofiles

引用SO线程:修改自定义策略中的JwtIssuer ClaimsProvider以实现AD B2C中的JWE

添加您的评论作为答案,很高兴知道您的疑问得到了解决。您可以接受它作为答案(单击答案旁边的复选标记,将其从灰色切换到填充)。这对其他社区成员是有益的。

最新更新