访问.NET Core中的身份外部身份验证使用的令牌

时间:2018-07-17 14:13:33

标签: c# asp.net-core microsoft-graph

我已根据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

1 个答案:

答案 0 :(得分:2)

要访问访问令牌,必须将属性SaveTokens设置为true。

services.AddAuthentication().AddMicrosoftAccount(microsoftOptions =>
{
    microsoftOptions.ClientId = Configuration["Authentication:Microsoft:ApplicationId"];
    microsoftOptions.ClientSecret = Configuration["Authentication:Microsoft:Password"];
    microsoftOptions.SaveTokens = true;
});

这会将access_tokenrefresh_token(如果有)添加到声明中。