我试图将MSAL.NET挂接到我的asp.net核心Web应用程序中,以便可以使用Microsoft Graph API。我只想允许我的用户通过MS(工作/学校帐户)身份验证,以便我可以访问他们的日历。
据我所知,要执行此操作,
但是我对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。
是否可以使用,或者有更好的方法来使所有这些工作正常?
谢谢