【发布时间】:2016-01-01 15:22:44
【问题描述】:
我最近开始使用 Azure Active Directory 来针对基于 AngularJS 构建的网站对用户进行身份验证。
使用博客和sample code on GitHub,我已经使用ADAL.js 和Katana 的Bearer Token AD integration 组合使用单租户。
但是,我现在在支持多个租户方面遇到了一些问题。
我设置了一个页面,显示 ADAL 看到的用户(通过根范围的 userInfo 找到),并调用 OWIN 获取的我的服务器,并序列化 @987654325 @。
客户端,一切似乎都运行正常。我可以使用我的任何租户登录,它为我提供了我期望的对象(填充了isAuthenticated: true、username,以及profile 上描述用户、登录名和租户的各种属性)。
这是通过在我的 adalAuthenticationServiceProvider.init 调用中省略 tenant 参数来在客户端完成的,如文档中所述。
但是,在服务器端,UseWindowsAzureActiveDirectoryBearerAuthentication 方法不喜欢 Tenant 没有值(因为它会引发异常)。我为此尝试了一些值,包括我的应用程序最初注册的租户,以及我逻辑上最喜欢的“common”,但无论我在那里输入什么(除非它是我试图登录的租户并且如果我的 ADAL 是与该租户一起设置的),它似乎只是跳过了这一点。
不管怎样,实际的 API 调用在 [Authorize] 过滤器上失败并返回 401,这告诉我这不是我的 OWIN 拦截器的问题。
如何告诉UseWindowsAzureActiveDirectoryBearerAuthentication 支持多租户身份验证?
【问题讨论】:
标签: active-directory owin adal