我有一个使用 MSAL 从 Azure AD 获取访问令牌的应用程序。这是在客户端完成的,客户端有自己的 Azure 应用程序注册表。然后我将此访问令牌传递给服务器,然后服务器调用 Microsoft Graph 以代表用户获取其他信息。但是,当我进行图形调用时,我遇到了受众不匹配的失败。这似乎很合适,但现在我不确定如何将 Web 服务器受众 ID 添加到令牌中。
首先,对于这种类型的场景,这是正确的工作流程吗?我使用 MSAL 对用户进行身份验证,然后使用 Web 服务调用图形以获取更多信息。其次,如果使用 AzureADBearer,是否可以向访问令牌添加多个受众?我知道 JWTBearer 是可能的。
//web service
services.Configure<CookiePolicyOptions>(options =>
{
// This lambda determines whether user consent for non-essential cookies is needed for a given request.
options.CheckConsentNeeded = context => true;
options.MinimumSameSitePolicy = SameSiteMode.None;
});
services.AddAuthentication(sharedOptions =>
{
sharedOptions.DefaultScheme = JwtBearerDefaults.AuthenticationScheme;
})
.AddAzureAdBearer(options =>
{
Configuration.Bind("AzureAd", options);
})
.AddCookie(options => options.Cookie.SameSite = SameSiteMode.None);
Run Code Online (Sandbox Code Playgroud)