我正在使用沼泽标准,文件 - >新的Asp.Net核心Web应用程序(Razor Pages)项目,并将其配置为针对o365实例使用Azure AD身份验证,该工作正常。
我现在想使用该应用程序使用Graph API访问o365资源(例如我的日历)。在asp.net core 2.0中,我使用了here描述的方法来获取访问令牌,缓存它,并为任何图形请求检索它。它依赖于OpenIdConnect事件(OnAuthorizationCodeReceived)来获取访问代码。
我没有在使用asp.net core 2.1的新AddAzureAd方法上看到任何类似的事件。现在有一种获取用于Graph调用的令牌的新方法吗?
答案 0 :(得分:0)
这一直是一个复杂的问题,根据您的情况(需要的权限,您也在谈论的工作量),可能需要调整此答案。 首先,在这里,你有代码授权和id_token。实现您想要实现的目标的最简单方法(可能不是用户体验方面最好),它可以临时存储id令牌。 (让我们在令牌缓存中说)
services.AddAuthentication()
.AddOpenIdConnect(opts =>
{
opts.Events = new OpenIdConnectEvents
{
OnAuthorizationCodeReceived = ctx =>
{
return Task.CompletedTask;
}
};
});
您可以看到一个示例here,您还需要确保使用正确的permissions配置您的应用程序,并且您应该准备好了!