gpt4 book ai didi

azure - 刷新访问 token 时调用自定义 REST API

转载 作者:行者123 更新时间:2023-12-02 06:29:07 24 4
gpt4 key购买 nike

我有一个自定义登录策略,该策略调用自定义 REST API,该 API 从我的数据库中获取有关用户的一些信息。

该信息需要每隔一段时间更新一次,但我可以负担得起每小时更新一次。

问题是,我们不会每小时提示用户登录一次。相反,我们每小时使用 acquireTokenSilent 静默刷新 token

我需要以某种方式拦截 acquireTokenSilent,使其调用我的自定义 REST API 并提取其他声明,就像我在自定义登录策略中所做的那样。

有办法吗?

最佳答案

The Configure the resource owner password credentials flow in Azure Active Directory B2C using a custom policy article描述如何实现 token 刷新的用户旅程。

具体:

  1. 此用户旅程是从 JwtIssuer 技术配置文件的 RefreshTokenUserJourneyId 元属性引用的。
<ClaimsProvider>
<DisplayName>Token Issuer</DisplayName>
<TechnicalProfiles>
<TechnicalProfile Id="JwtIssuer">
<Metadata>
<!-- Point to the redeem refresh token user journey-->
<Item Key="RefreshTokenUserJourneyId">ResourceOwnerPasswordCredentials-RedeemRefreshToken</Item>
</Metadata>
</TechnicalProfile>
</TechnicalProfiles>
</ClaimsProvider>
  • ResourceOwnerPasswordCredentials-RedeemRefreshToken 用户旅程会检查刷新 token 是否已失效。
  • <UserJourney Id="ResourceOwnerPasswordCredentials-RedeemRefreshToken">
    <PreserveOriginalAssertion>false</PreserveOriginalAssertion>
    <OrchestrationSteps>
    <OrchestrationStep Order="1" Type="ClaimsExchange">
    <ClaimsExchanges>
    <ClaimsExchange Id="RefreshTokenSetupExchange" TechnicalProfileReferenceId="SM-RefreshTokenReadAndSetup" />
    </ClaimsExchanges>
    </OrchestrationStep>
    <OrchestrationStep Order="2" Type="ClaimsExchange">
    <ClaimsExchanges>
    <ClaimsExchange Id="CheckRefreshTokenDateFromAadExchange" TechnicalProfileReferenceId="AAD-UserReadUsingObjectId-CheckRefreshTokenDate" />
    </ClaimsExchanges>
    </OrchestrationStep>
    <OrchestrationStep Order="3" Type="SendClaims" CpimIssuerTechnicalProfileReferenceId="JwtIssuer" />
    </OrchestrationSteps>
    </UserJourney>

    您可以将 API 调用添加到此用户旅程中。

    关于azure - 刷新访问 token 时调用自定义 REST API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56886068/

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