繁体   English   中英

如何使用多租户ASP.NET应用程序通过Azure Active Directory进行身份验证?

[英]How do I authenticate via Azure Active Directory with multi-tenant ASP.NET applications?

我一直在我的数据中心使用Azure Active Directory试用许可证进行一些测试。 我们公司拥有自己的托管服务和物理硬件,现在我们希望保持这种方式(尽管我们可能会考虑将其全部转移到云服务中)。

目前,我们正在尝试使用Azure AD为我们的客户提供单一登录选项。 我们已经使用CAS支持此功能,但有些客户已在内部使用Azure AD,并希望将其用作IIS和ASP.NET的集成Windows身份验证方法。

如何以支持多个租户的方式进行设置? 我无法弄清楚如何在IIS级别执行此操作,并且我发现文献在明确的答案方面有点缺乏。

据我所知,我必须为每个客户创建一个VM(单独的Windows Server实例),配置为通过Azure AD进行身份验证并将Windows身份验证凭据传递给IIS。 这有点烦人。

有没有办法可以继续在我自己的服务器上运行IIS和ASP.NET Web应用程序,但是使用Azure AD进行Windows身份验证,其中每个IIS Web应用程序实例都有自己独立的Azure AD配置?

我可以在Web应用程序根文件夹级别执行此操作吗? (也许通过设置该文件夹的授权以向该客户的Azure AD中的用户授予权限?)

我的目标,例如,给定此Windows Server配置:

  • 主机(IIS 8)“webhost”
    • Web应用程序“A”, c:\\apps\\a ,授权用户包括AAD“A”用户
    • Web应用程序“B”, c:\\apps\\b ,授权用户包括AAD“B”用户

来自客户A的用户使用此URL: http://webhost/a

来自客户B的用户使用此URL: http://webhost/b

当用户A浏览到Web应用程序A时,集成的Windows身份验证应该向用户提出Azure AD“A”窗口用户名和密码,或者,如果已经过身份验证,则显示来自Web应用程序A的用户内容。

当用户B浏览到Web应用B时,集成的Windows身份验证应该向用户提出Azure AD“B”窗口用户名和密码,或者,如果已经过身份验证,则显示来自Web应用B的用户内容。

谢谢!

您绝对可以在自己的服务器上运行的应用程序上利用Azure AD。 您不需要在IIS级别应用设置。 当您使用Azure AD时,Windows集成身份验证将在客户端和Azure AD端点之间进行 - 这将导致在不需要Windows集成身份验证的通道上发送到应用程序的令牌。 这就是允许您的应用程序在任何地方托管的原因,应用程序本身没有基础设施限制。 请查看此示例,了解有关如何设置一个应用程序以信任Azure AD租户的说明。 您可以对所有应用程序应用相同的过程,将它们指向不同的AAD租户。 完成后:您可以跳过插页式auth页面并按照此处的说明获取Windows集成身份验证。 我建议你先让样本工作,然后再关注最后一部分。 一次解决这两件事可能很难。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM