我在数据中心使用Azure Active Directory试用许可证进行了一些测试。我们公司拥有自己的托管服务和物理硬件,目前我们希望保持这种状态(尽管我们可能会考虑将其全部迁移到云服务中)。
目前,我们正在尝试为使用Azure AD的客户提供单一登录选项。我们已经使用CAS支持这一点,但是一些客户已经在内部使用Azure AD并希望将其用作IIS和Linux的集成Windows身份验证方法。 ASP.NET。
如何以支持多个租户的方式进行设置?我无法弄清楚如何在IIS级别执行此操作,并且我发现文档在明确答案方面有点缺乏。
据我所知,我必须为每个客户创建一个VM(单独的Windows Server实例),配置为通过Azure AD进行身份验证并将Windows身份验证凭据传递给IIS。这有点烦人。
我是否可以继续在自己的服务器上运行IIS和ASP.NET Web应用程序,但使用Azure AD进行Windows身份验证,其中每个IIS Web应用程序实例都有自己独立的Azure AD配置?
我可以在网络应用根文件夹级别执行此操作吗? (也许通过将该文件夹的授权设置为向该客户的Azure AD中的用户授予权限?)
我的目标,例如,给定此Windows Server配置:
c:\apps\a
,授权用户包括AAD“A”用户c:\apps\b
,授权用户包括AAD“B”用户来自客户A的用户使用此网址:http://webhost/a
来自客户B的用户使用此网址:http://webhost/b
当用户A浏览到Web应用程序A时,集成的Windows身份验证应该向用户提出Azure AD“A”窗口用户名&密码,或者,如果已经过身份验证,则显示来自Web应用程序A的用户内容。
当用户B浏览到Web应用B时,集成的Windows身份验证应该向用户提出Azure AD“B”窗口用户名&密码,或者,如果已经过身份验证,则显示来自Web应用程序B的用户内容。
谢谢!
答案 0 :(得分:2)
您绝对可以在自己的服务器上运行的应用程序上利用Azure AD。您不需要在IIS级别应用设置。当您使用Azure AD时,Windows集成身份验证将在客户端和Azure AD端点之间进行 - 这将导致在不需要Windows集成身份验证的通道上发送到应用程序的令牌。这就是允许您的应用程序在任何地方托管的原因,应用程序本身没有基础设施限制。 请查看this sample,了解有关如何设置一个应用以信任Azure AD租户的说明。您可以对所有应用程序应用相同的过程,将它们指向不同的AAD租户。完成后:您可以跳过插页式auth页面,按照说明here获取Windows集成身份验证。我建议你先让样本工作,然后再关注最后一部分。一次解决这两件事可能很难。