我们有一些基于.NET的Web应用程序。应用程序的用户群包括注册查看账单的移动用户。该计划是在我的应用程序中提供单点登录。我们正在探索将Windows Azure ACS与Active Directory一起用作我的应用程序用户的身份提供程序。我们是否正在使用带有Active Directory的Windows Azure ACS作为身份提供商?
答案 0 :(得分:1)
Windows Azure Active Directory是单点登录的理想选择,但不必与ACS一起使用,如此处所示
http://msdn.microsoft.com/en-us/library/windowsazure/dn151790.aspx#BKMK_Connecting
ACS的优点是
然而,在不利方面
我必须在我之前使用过的应用程序中使用ACS和WAAD,因为(出于某种原因)ASP.Net MVC anti-forgery protection依赖于类型声明
http://schemas.microsoft.com/accesscontrolservice/2010/07/claims/identityprovider
由WAAD 未颁发。我在ACS中使用了一个简单的声明转换规则来转换WAAD发布的类型的声明
http://schemas.microsoft.com/identity/claims/identityprovider
进入类型
的等效声明http://schemas.microsoft.com/accesscontrolservice/2010/07/claims/identityprovider
这是我当时能够解决问题的唯一方法,因此在我的案例中使用ACS是值得的。我从未发现你是否可以完全使用WAAD(可能使用图形API),因为当时项目的时间压力。
在回答评论中的额外问题时,如果您使用WS-Federation或OAuth 2,则无法替换登录页面。这些方法的关键点是用户只需将其凭据输入身份提供者提供的(可信)UI。我认为你可以用你自己的图像替换图像。也许您可以使用自己的UI收集用户凭据并使用WS-Trust端点获取令牌,但这不会为您提供真正的Web SSO,因为登录会话不会自动在您的不同Web应用程序之间流动
答案 1 :(得分:0)
实际上,有一种解决方法可以在ACS中将AAD配置为身份提供者。 http://www.cloudidentity.com/blog/2013/10/03/provisioning-a-windows-azure-active-directory-tenant-as-an-identity-provider-in-an-acs-namespacenow-point-click/
基本上,当在ACS中创建AAD作为身份提供者时,必须要做的是添加FederationMetadata.xml URL。
之后(在VS 2012中)有一个新的实用程序Identity and Access,可让您选择IP,并将在ACS中创建一个新组,其中必须添加我们需要的声明转换规则(据说在帖子中应该检查代码,因为声明有变化)