我有一个自定义登录策略,该策略调用一个自定义REST API,该API从我的数据库中获取有关用户的一些信息。
该信息需要不时更新,但我有能力每小时更新一次。
问题是,我们不提示用户每小时都登录。相反,我们每小时使用acquireTokenSilent
我需要以某种方式拦截acquireTokenSilent
,使其调用我的自定义REST API并提取其他声明,就像我在自定义登录策略中所做的一样。
有办法吗?
答案 0 :(得分:2)
The Configure the resource owner password credentials flow in Azure Active Directory B2C using a custom policy article介绍了如何实现用户体验以进行令牌刷新。
特别是:
<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调用添加到此用户旅程中。
答案 1 :(得分:1)
检查@Chris Padgett答案
一种获得喜欢的方式,