0

我在 asp.net 中构建了一个多租户网站并将其托管在 Azure 上。

我想要一个连接到 AD 以验证登录的登录表单。当托管在内部时,我已经有了连接到本地 AD 的代码,但现在我想在 Azure 上执行此操作。

这种情况下的曲线球是我想将本地 AD 与 Azure AD 同步,但每个客户端都有自己的本地 AD。

我的问题是,如何将多个客户端 AD(在不同域中)同步到单个 Azure AD,然后使用 Azure AD 在 ASP.NET 上进行验证。这可以做到吗?

4

2 回答 2

2

回复:“这种情况下的曲线球是我想将本地 AD 与 Azure AD 同步,但每个客户端都有自己的本地 AD。” 我对 AD 知之甚少,无法直接知道这是否有意义,但总体方案(Azure 中的多租户应用程序允许来自不同 AD 的客户端使用他们在本地 AD 中使用的相同凭据在云中干净地进行身份验证) 可以实现。

  1. 让每个本地 AD 与 Azure Active Directory 同步。这是通过每个站点需要实施的 AAD DirSync 工具完成的。这(至少)将安全地将密钥目录属性复制到 AAD 以在云中使用(名称、电子邮件、密码哈希)。请注意,AAD 实例对于每个租户都是唯一的。
  2. 在 ASP.NET 中设置多租户应用程序。如果您有最新的 VS 工具堆栈,您可以在 Visual Studio 中方便地执行此操作 - 文件新建 > ASP.NET 应用程序流中有一个页面,其中有一个按钮可以更改身份验证方法。将其更改为组织和多租户。这将更新 AAD 中的设置(然后您可以在 manage.windowsazure.com 下的 Active Directory 部分中的门户中检查)。这至少应该显示基本步骤。(准备好从 Visual Studio 中以全局管理员身份登录与您的应用关联的 AAD,因为建立对应用的信任是一项特权操作 - 并且可以在门户中进行调整(例如添加生产端点)。)

现在,当您运行此应用程序时,将有一个发现步骤 - 家庭领域发现 (HRD) - 最终用户使用电子邮件 (adam@foo.com) 登录,AAD 将使用该电子邮件来确定此人的哪些租户来自(foo.com,而不是 bar.com)并完成登录流程。

HTH。

于 2014-04-07T13:55:19.370 回答
1

您将无法使用 DirSync 将多个本地 AD 域同步到一个 Azure AD(您可能也不想这样做)。FIM 将让您这样做,它是为单个客户拥有多个域/森林的客户设计的,而不是作为多租户平台。

使用@codingoutloud 建议的多租户身份验证选项。查看 Office365 的新 SAML 身份验证选项(此处:http: //blogs.office.com/2014/03/06/announcing-support-for-saml-2-0-federation-with-office-365/)。对于根本不想同步其 AD 的客户,您可以让他们实施本地 ADFS,它也能够支持 SAML。

于 2014-04-07T20:30:30.263 回答