我在 ASP.NET 中有一个用于 Azure 部署的 Web 角色项目,需要进行身份验证。
我必须在 Office 365 和本地 Active Directory 之间进行选择。
看起来两者都需要使用访问控制服务集成到 Azure Active Directory。两者的优缺点是什么?此外,如果还有其他可能性。
1 回答
正如 asaykov 在他对您的问题的评论中提到的那样,在这种情况下,您不仅限于涉及访问控制服务。不知道他为什么不提交该评论作为答案。
如果您真的必须反对您的 Office 365 或 On Premise AD,那么您真正要问的是两者之间的区别是什么。我会列出一些想法,但首先如果你想实现这些想法,那么这里有一些链接:
MS 提供的关于身份的产品:http: //msdn.microsoft.com/en-us/security/aa570351.aspx
在 Azure 部署中使用 ADFS V2: http: //channel9.msdn.com/shows/Identity/WIF-Workshop-9-WIF-and-Windows-Azure/ 这是一个较旧的材料,我找不到太多关于使用 WIF 连接更新的 Directo ADFS V2。您根本不必将 ACS 纳入其中。可悲的是,当 ACS 发布时,这被误解了很多。
使用 Office 365/Windows Azure AD:http: //msdn.microsoft.com/library/windowsazure/dn151790.aspx
注意:我已将 Azure 中运行的网站直接连接到 ADFSV2,但我还没有机会使用 WAAD/Office 365 的东西。
如果您选择在本地公开您的 AD,那么您可能会通过使用 ADFS V2 公开它来做到这一点。这为运行 WIndows identify Foundation (WIF) 对象的代码打开了端点,以接触和处理身份验证。这样做的结果是,您不必单独担心 Office 365 登录或 WAAD,如果您出于任何其他原因而没有这些服务,但这种情况除外,这可能是一个有趣的选择。不利的一面是,您在自己位置的端点上向您的 AD 公开代理。如果您失去与互联网的连接,那么任何尝试使用云中应用程序的人都无法进行身份验证。这也是我可能会考虑的选项,如果云中应用程序的用户只能在防火墙后面访问它(例如在办公室,甚至通过 VPN)。这是因为您可以对其进行设置,以便您的应用程序使用不暴露于 Internet 的 ADFS 端点,但如果它们位于防火墙后面,它仍然可以工作。这几乎可以确保只有已经在防火墙后面的人才能使用您的应用程序。
如果您选择使用 Office 365/WAAD 集成,那么好处是您可以与本地 AD 同步,以单点登录网络上的资源以及云中的应用程序。您还可以使对云应用程序的访问更具弹性,因为它们无需依赖您公开的 ADFS V2 端点。如果您出于任何其他原因使用 Office 365/WAAD(例如您的员工将 Office 365 用于电子邮件、协作等),那么这是我首先要考虑的选项。
如果您想与其他身份提供商(例如 Google、Facebook 甚至其他公司)集成,您应该查看 ACS。从技术上讲,您当时也不必使用 ACS,但使用 ACS 肯定会为您节省大量工作,而不是为每个提供商自己编写集成代码。