我有一个自定义登录策略,它调用一个自定义 REST API,从我的数据库中获取有关用户的一些信息。
这些信息需要每隔一段时间更新一次,但我有能力每小时更新一次。
问题是,我们没有每小时提示用户登录。相反,我们每小时静默刷新令牌acquireTokenSilent
我需要以某种方式拦截acquireTokenSilent
, 以使其调用我的自定义 REST API 并提取其他声明,就像我在自定义登录策略中那样。
有没有办法做到这一点?
我有一个自定义登录策略,它调用一个自定义 REST API,从我的数据库中获取有关用户的一些信息。
这些信息需要每隔一段时间更新一次,但我有能力每小时更新一次。
问题是,我们没有每小时提示用户登录。相反,我们每小时静默刷新令牌acquireTokenSilent
我需要以某种方式拦截acquireTokenSilent
, 以使其调用我的自定义 REST API 并提取其他声明,就像我在自定义登录策略中那样。
有没有办法做到这一点?
使用自定义策略在 Azure Active Directory B2C 中配置资源所有者密码凭据流一文介绍了如何为令牌刷新实施用户旅程。
具体来说:
<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>
<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 调用添加到此用户旅程。
检查@Chris Padgett 的答案
您可以实现的一种方法是,