从Microsoft身份平台获取刷新令牌

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

我有一个Azure Web应用程序,我希望用户在其中登录Microsoft(Azure AD)。我需要掌握刷新令牌。我已经看过使用库在后台静默刷新令牌的示例,但是对于我的设计,我需要掌握刷新令牌本身。

是否可以通过高级身份验证库(OpenID Connect?)来实现,如果可以,怎么办?对于手动方法,在此处进行了描述:https://docs.microsoft.com/en-us/graph/auth-v2-user在ASP.NET或.NET Core中是否有任何示例代码或教程?

asp.net-mvc asp.net-core azure-active-directory azure-web-app-service refresh-token
1个回答
0
投票

首先,我建议使用MSAL来维护令牌缓存,并在令牌即将到期时为您刷新令牌。您不需要自己处理令牌到期。

[如果要保留刷新令牌,可以在注册OIDC中间件时将SaveTokens属性设置为true,以便将令牌保存到cookie中。我假设您正在使用Microsoft.AspNetCore.Authentication.AzureAD.UI库:

services.AddAuthentication(AzureADDefaults.AuthenticationScheme)
    .AddAzureAD(options => Configuration.Bind("AzureAd", options));

services.Configure<OpenIdConnectOptions>(AzureADDefaults.OpenIdScheme, options =>
{
    options.Authority = options.Authority + "/v2.0/";
    options.SaveTokens = true;


});

然后您可以像这样在控制器中访问令牌:

var refreshToken = await HttpContext.GetTokenAsync("refresh_token");
var idToken = await HttpContext.GetTokenAsync("id_token");
© www.soinside.com 2019 - 2024. All rights reserved.