将ASP.NET Core 2.1挂接到MSAL.NET

时间:2018-09-25 19:55:36

标签: c# asp.net-core msal

我试图将MSAL.NET挂接到我的asp.net核心Web应用程序中,以便可以使用Microsoft Graph API。我只想允许我的用户通过MS(工作/学校帐户)身份验证,以便我可以访问他们的日历。

据我所知,要执行此操作,

  1. 将我的用户转到Microsoft进行身份验证(标准的oauth舞蹈)
  2. 从成功的身份验证中获取访问代码,然后将其挂钩到MSAL.NET中,从而将令牌管理有效地委派给MSAL.NET

但是我对MS部分的认证感到困惑。在ASP.NET Core 2.1中,推荐的对MS外部登录进行排序的推荐方法非常简单-AddMicrosoftAccount-像这样:

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

这里的问题是,从MS返回授权代码时,您没有任何钩子。有一张成功票证的钩子(即授予令牌时),但这对MSAL.NET不利,因为它要求您使用带有AcquireTokenByAuthorizationCodeAsync的代码来管理令牌。

我唯一可以看到的方法是使用AddOpenIdConnect,因为它为OnAuthorizationCodeReceived提供了一个事件,我可以使用该事件来获取身份验证代码并插入MSAL.NET。

是否可以使用,或者有更好的方法来使所有这些工作正常?

谢谢

0 个答案:

没有答案