Blazor WASM Azure AD - 获取和使用刷新令牌

问题描述 投票:0回答:1

我正在开发 Blazor WASM 应用程序,它正在使用 MS 的 Msal 身份验证库针对 Azure AD 进行身份验证。

我特别希望能够检索刷新令牌(在令牌响应中返回)并使用刷新令牌来检索新的访问令牌。

你知道怎么做吗?

以下是我的配置。

builder.Services.AddMsalAuthentication<RemoteAuthenticationState, CustomUserAccount> 
(options =>
{
    builder.Configuration.Bind("AzureAd", options.ProviderOptions.Authentication);
    options.ProviderOptions.LoginMode = "redirect";
    options.UserOptions.RoleClaim = "role";
}).AddAccountClaimsPrincipalFactory<RemoteAuthenticationState, CustomUserAccount,CustomUserFactory>();

获取访问令牌很容易,我们注入 IAccessTokenProvider 并调用该方法来检索令牌结果。

IAccessTokenProvider _tokenProvider;    
public AccessTokenService(IAccessTokenProvider tokenProvider)
{
    _tokenProvider = tokenProvider;
    var tokenResult = _tokenProvider.RequestAccessToken();
}

但是我如何请求刷新令牌呢?我可以在令牌响应中看到它,但 IAccessTokenProvider 没有公开任何检索它的方法。我还需要使用其他服务吗?

检索到它后,如何使用刷新令牌来请求新的访问令牌?

azure-active-directory blazor-webassembly azure-ad-msal refresh-token
1个回答
0
投票

如果您有访问令牌和刷新令牌,MSAL 会将它们存储在令牌缓存中。

当您调用

AcquireTokenSilent
如果访问令牌即将过期或已过期,MSAL 将自动使用刷新令牌。

这是 MSAL 在后台为开发人员处理的进程。

参见:

  1. 从缓存中静默获取令牌
  2. SO:使用 Azure AD V2.0 (MSAL) 和 Asp .Net Core 2.0 获取刷新令牌
  3. 刷新代币
© www.soinside.com 2019 - 2024. All rights reserved.