我想使用ASP.Net MVC构建一个面向公众的网站.我将使用WIF来实现声明身份验证,并计划将ACS用作声明联合提供程序.我想允许最终用户使用社交网络帐户登录(开箱即用的ACS).但我也希望允许用户为我的网站注册自己的用户名和密码.我可以在这部分使用WAAD吗?
当然,我可以建立自己的自定义STS.或者我可以将Thinktecture IdentityServer用于此目的.但坚持使用WAAD有一些明显的优势:
>简单(将WAAD设置为ACS的STS只需几次点击)
> Azure SLA保证的性能,安全性和可靠性
这种方法有什么不利之处吗?
然而,对于ThinkTecture的Identity Server,WAAD有一个(我认为是BIG)的缺点:WAAD没有用户注册/密码管理/密码重置流程.
更新(29.07.2014)
今天WAAD提供自助密码重置作为Premium Features的一部分.但是仍然没有自助用户注册.坦率地说,我不希望看到自助服务用户注册,因为WAAD针对的是企业,而不是您的具体情况.
要在WAAD中实现上述流程,您必须从头开发自己的MVC应用程序,它将Graph API用于所有提到的场景.
另一方面,您拥有Identity Server,它有数千个下载,由基于声明的Guru基于身份验证和安全性开发.身份服务器具有非常丰富且易于使用的可扩展结构.虽然它也没有提供开箱即用的用户注册和密码重置流程,但它已经是一个具有非常丰富的可扩展性点的MVC 4应用程序.
设置用于在Azure中运行的标识服务器也非常简单.在Azure ACS中将Identity Server设置为身份提供程序只需在管理门户上进行几次单击即可.
您说WAAD是SLA支持,高可用性等.但如果使用至少2个Web角色实例,则在Cloud Service上的Identity Server部署也将受到SLA支持.
如果我必须选择是否扩展Identity Server以支持用户注册等,或者从头开始创建全新的应用程序,使用WAAD GRaph API来实现该功能 – 我将使用Identity Server.