首页 > 解决方案 > .NET | AAD 身份验证总是失败

问题描述

我已经在我的 Azure Active Directory 中创建了一个应用程序注册,我正在尝试使用 .NET core & Angular 并利用 Microsoft 团队开发的 MSAL angular 包对其进行身份验证。

我有以下配置:

{
  "AzureAd": {
    "Instance": "https://login.microsoftonline.com/",
    "TenantId": "TENANT-ID",
    "ClientId": "CLIENT-ID",
    "Audience": "api://CLIENT-ID"
  }
}

然后我在我的启动文件中使用 Microsoft Identity:

services.AddMicrosoftIdentityWebApiAuthentication(Configuration, "AzureAd");

在 Angular 应用程序中,我有一个非常基本的设置,它发送实际上是客户端 ID,api://CLIENT-ID我知道这是有效的,因为之前我收到了关于无效受众的错误。

但是,现在,如果我将 JWT 令牌放入 jwt.io 中,我可以看到该令牌实际上是有效的。但是,如果我将它与 API 请求一起发送到我自己的 API,我总是会收到 401 错误,但没有关于此错误的信息。

标签: .netazure

解决方案


我怀疑它与配置部分有关。Azure AD 权限设置如下:

"AzureAd": {  
    "Instance": "https://login.microsoftonline.com/",  
    "Domain": "replace with the domain name", // for instance ContosoOrganization.onmicrosoft.com  
    "TenantId": "put azure ad tenant id",  
    "ClientId": "put your api application's tenant id"  
  }  

此外,请参阅设置 Angular 应用程序以使用 Azure AD 身份验证并确保所有步骤和配置都已到位。对于 .NET Core API,您可以参考LOGIN AND USE AN ASP.NET CORE API WITH AZURE AD AUTH and USER ACCESS TOKENS

如果您有后续问题,请告诉我。


推荐阅读