我有一个单独的角度客户端,我想要使用Azure AD进行身份验证。我正在使用ADAL JS,所有这些似乎都运行正常。我被重定向到AD登录页面,然后发送回我的应用程序。我可以看到令牌与每个后续的http请求一起传递。
但是,当我尝试向我的Web API发出安全请求时,我收到401 Unauthorized错误。我正在松散地遵循指南here进行设置。我松散地说,因为我没有使用MVC,我的客户端完全在一个单独的代码库中。
我很肯定我的用户可以访问此应用程序。
My Auth Configuration的内容如下:
app.UseWindowsAzureActiveDirectoryBearerAuthentication(new WindowsAzureActiveDirectoryBearerAuthenticationOptions()
{
TokenValidationParameters = new TokenValidationParameters()
{
ValidAudience = ConfigurationManager.AppSettings["AzureADAudience"],
},
Tenant = ConfigurationManager.AppSettings["AzureADTenant"],
AuthenticationType = "OAuth2Bearer"
});
观众:https://login.windows.net/xyz.onmicrosoft.com/myappname
租户:xyz.onmicrosoft.com
我锁定的控制器装饰如下:
[HostAuthentication("OAuth2Bearer")]
[Authorize]
[RoutePrefix("Auth")]
答案 0 :(得分:2)
您的SPA是否与您的后端一起托管?如果是,那么您需要将受众更改为客户ID。
ValidAudience = ConfigurationManager.AppSettings["ida:ClientID"]