【发布时间】:2017-01-29 00:12:56
【问题描述】:
问题
这就是标题中的所有内容,真的。我有一个[Authorize] 属性,它总是返回 401,我不知道为什么。我怎样才能逐步了解它背后的逻辑?
更多细节
我正在尝试通过 JWT 令牌使用 Azure AD 授权。我已经在其他项目中成功地做到了这一点,所以我确信问题是一些小的配置问题,但据我所知,我与 [Authorize] 的唯一交互是在 Startup.cs 中,我有这个:
app.UseWindowsAzureActiveDirectoryBearerAuthentication(
new WindowsAzureActiveDirectoryBearerAuthenticationOptions
{
TokenValidationParameters = new TokenValidationParameters
{
ValidAudience = ConfigurationManager.AppSettings["ida:Audience"],
SaveSigninToken = true,
},
Tenant = ConfigurationManager.AppSettings["ida:Tenant"]
});
但该位仅在应用程序启动时运行。否则,[Authorize] 对我来说就是一个黑盒子。
感谢您的帮助!
【问题讨论】:
-
您正在使用
WindowsAzureActiveDirectoryBearerAuthentication。除非您在请求中提供valid bearer token作为authorization header,否则您将始终得到 401。承载令牌身份验证用于 WebAPI。当您使用WindowsAzureActiveDirectoryBearerAuthentication时,不会有任何重定向或任何重定向。如果你真的在尝试 WebAPI,那么你真的得到了错误的不记名令牌。 -
正如我提到的,这个 sn-p 取自一个工作项目,其中完整的身份验证链工作正常。我的问题是我正在尝试在新项目中重用代码。在某些时候,我可能输入了错误的 App ID 或其他一些小细节。这里的整个问题是我不确定如何调试
[Authorize]来找到我的错误。
标签: asp.net visual-studio azure-active-directory