gpt4 book ai didi

azure-ad-b2c - Azure AD B2C - Refresh_Token 通过 REST 刷新声明(身份体验框架)

转载 作者:行者123 更新时间:2023-12-01 04:42:08 24 4
gpt4 key购买 nike

我们有 Azure AD B2C 设置来使用身份体验框架,并且在登录/注册时进行 REST 调用以通过 Azure 函数获得额外的安全凭据声明。这工作正常。

当我们通过 Azure AD B2C 通过 Refresh_Token 请求访问/Id token 时,看起来我们获得了相同的 token ,并且它不会调用 REST API 来获取最新更新的 token 声明。是否可以更改此用户旅程?

是否有另一种解决方案无需再次登录即可刷新 token 以获取最新更新?

(我们可以在代码中解决这个问题,而不是使用 token ,但出于各种原因,我们想先探索一下)。

最佳答案

您可以声明一个刷新 token 用户旅程,它调用您的 REST API,如下所示:

<UserJourney Id="TokenRefresh">
<PreserveOriginalAssertion>false</PreserveOriginalAssertion>
<OrchestrationSteps>
<OrchestrationStep Order="1" Type="ClaimsExchange">
<ClaimsExchanges>
<ClaimsExchange Id="RefreshTokenExchange" TechnicalProfileReferenceId="TpEngine_RefreshToken" />
</ClaimsExchanges>
</OrchestrationStep>
<OrchestrationStep Order="2" Type="ClaimsExchange">
<ClaimsExchanges>
<ClaimsExchange Id="AADUserReadWithObjectId" TechnicalProfileReferenceId="AAD-UserReadUsingObjectId" />
</ClaimsExchanges>
</OrchestrationStep>
<!-- TODO: Add an orchestration step that calls the REST API. -->
<OrchestrationStep Order="3" Type="SendClaims" CpimIssuerTechnicalProfileReferenceId="JwtIssuer" />
</OrchestrationSteps>
</UserJourney>

初始编排步骤调用 TpEngine_RefreshToken 阅读 的技术简介对象 ID 从当前刷新 token 声明:

<ClaimsProvider>
<DisplayName>Trustframework Policy Engine Technical Profiles</DisplayName>
<TechnicalProfiles>
<TechnicalProfile Id="TpEngine_c3bd4fe2-1775-4013-b91d-35f16d377d13">
<DisplayName>Trustframework Policy Engine Default Technical Profile</DisplayName>
<Protocol Name="None" />
<Metadata>
<Item Key="url">{service:te}</Item>
</Metadata>
</TechnicalProfile>
<TechnicalProfile Id="TpEngine_RefreshToken">
<DisplayName>Trustframework Policy Engine Refresh Token Technical Profile</DisplayName>
<Protocol Name="None" />
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="objectId" />
</OutputClaims>
</TechnicalProfile>
</TechnicalProfiles>
</ClaimsProvider>

第二个编排步骤调用 AAD-UserReadUsingObjectId 从登录用户的 Azure AD B2C 目录读取声明的技术配置文件对象 ID 宣称。

另一个编排步骤可以调用您的 REST API。

最后的编排步骤发行新的 token 。

您必须引用 token 刷新 使用 的用户旅程RefreshTokenUserJourneyId 带有 的元数据项JwtIssuer 技术配置文件,以便此技术配置文件发布的 token 被此用户旅程刷新:

<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="issuer_refresh_token_user_identity_claim_type">objectId</Item>
<Item Key="RefreshTokenUserJourneyId">TokenRefresh</Item>
<Item Key="SendTokenResponseBodyWithJsonNumbers">true</Item>
</Metadata>
<CryptographicKeys>
<Key Id="issuer_secret" StorageReferenceId="B2C_1A_TokenSigningKeyContainer" />
<Key Id="issuer_refresh_token_key" StorageReferenceId="B2C_1A_TokenEncryptionKeyContainer" />
</CryptographicKeys>
<InputClaims />
<OutputClaims />
</TechnicalProfile>
</TechnicalProfiles>
</ClaimsProvider>

关于azure-ad-b2c - Azure AD B2C - Refresh_Token 通过 REST 刷新声明(身份体验框架),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49549317/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com