我已根据Microsoft Account external login setup with ASP.NET Core向Microsoft应用程序添加了Microsoft帐户登录名。
我生成自己的JWT令牌,该令牌用于在查询应用程序中的端点时授权用户,但是我想向Microsoft Graph“代表用户”索取某些文档。在apps.dev.microsoft.com
中注册应用程序时,我添加了适当的声明。
是否可以访问Identity用来询问Graph的承载令牌,或者是否有其他方法可以在我的应用程序中仅执行一次登录体验?
让我担心的一件事是:
ExternalLoginInfo info = await this.signInManager.GetExternalLoginInfoAsync();
包含0 AuthenticationTokens
。
答案 0 :(得分:2)
要访问访问令牌,必须将属性SaveTokens
设置为true。
services.AddAuthentication().AddMicrosoftAccount(microsoftOptions =>
{
microsoftOptions.ClientId = Configuration["Authentication:Microsoft:ApplicationId"];
microsoftOptions.ClientSecret = Configuration["Authentication:Microsoft:Password"];
microsoftOptions.SaveTokens = true;
});
这会将access_token
和refresh_token
(如果有)添加到声明中。