.net - .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 错误,但没有关于此错误的信息。
解决方案
我怀疑它与配置部分有关。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。
如果您有后续问题,请告诉我。
推荐阅读
- r - 仅选择那些在特定列上包含特定单词的行
- javascript - 在我的 Cordova Android 应用程序中,我无法在 IFRAME 中嵌入 IP 地址或 URL
- javascript - 快速连续将鼠标悬停在元素上时,跨度元素上的事件侦听器卡住并且不重置 div
- jquery - 协助编写 jQuery 代码以隐藏网页上的元素?
- jasper-reports - Acrobat 阅读器无法提取嵌入字体“PWLEAX+NotoSerifCJKsc-Regular-Identity-H”
- python - 有没有把这个文本文件格式转换成二维列表的功能?
- r - R 中的 X[1:(n-2)] 究竟做了什么?
- java - 如何为 Selenium WebDriver 实现 Advanced ExtentReports Logic
- python - Scrapy 中的限制请求
- java - WireMockServer 与 MockServerClient 之间的区别