【发布时间】:2017-08-09 02:14:53
【问题描述】:
我正在尝试在 SPA 应用程序中实施 Azure AD 身份验证。 我在 WEB API 中使用 OWIN Startup.cs 文件,在 angularjs 前端应用程序中使用 ADAL.js 文件。 (根据大多数教程的建议)
我的应用程序没有托管在不同域/端口中的 WebAPI 和 UI。基本上,在 UI 应用程序项目中引用了 WebAPI。 (因此无需启用 CORS)。
现在我已经分别在 Azure AD 上注册了应用程序。 即 ClientApp -> 回复 URL:http://localhost:90/ 和 WebAPI -> APPID 登录 URL:http://localhost:90/Api/V1/
我已配置 ADAL.js,并在尝试从 UI 访问应用程序时获取登录页面。此外,我能够检索通过 URL 重定向登录后生成的 id.token。还使用 [Authorize] 属性装饰了 Web api 控制器。
我主要担心的是,如果我尝试使用邮递员之类的工具直接调用 WebAPI,我会收到拒绝访问/未经授权的访问 (401)。有人可以解释我如何在我的本地环境中进行测试。有这种情况吗?
我的示例请求是:http://localhost:93/Api/V1/User/Preference (GET) 我在 Web api 调用的 Headers 的授权属性中添加了令牌。
另外,我认为我不需要 OWIN/Startup.cs 文件来保护 WebAPI。我尝试的方法是通过标头发送令牌值并使用 JwtSecurityToken 获取 AudienceID 并解析授权属性的内容。这种方法是否符合安全性,或者我应该坚持 OWIN 实施。
【问题讨论】:
标签: angularjs azure asp.net-web-api azure-active-directory