我想用:
创建azure mvc4网站(azurewebsites)我看到以下选项:
将我的应用程序与ACS联合并使用联合身份验证,为UserProfiles和Membership等创建自定义表集,在此方法中我无法使用任何现有提供程序。我在索赔中没有必要的信息。
为ACS编写自定义OAuth / OAuth2客户端(我找不到任何客户端)并使用OAuthWebSecurity进行注册。这种方法似乎适合我,我可以使用SimpleMembership等。问题是我找不到任何示例如何以正确的方式实现它。
问:
这种情况下的正确方法是什么?
还有其他方法可以满足我的要求吗?
ACS是否有OAuthWebSecurity客户端?
谢谢, 马切伊
答案 0 :(得分:1)
我选择接近1.因为 -
a)无论如何你需要ws-fed来整合ADFS b)ACS没有OAuth客户端 - ACS仅支持OAuth的一些特殊用例(这就是为什么你没有为它找到客户端)。
你想要完全控制你的数据库 - 而不是使用魔术/半烤(取决于你的观点)简单的会员资格......
答案 1 :(得分:1)
我们最近实施了类似问题的解决方案。我们做的是:
随着时间的推移,似乎我们可以使用Thinktecture服务器来替换ACS功能,并提供比ACS中更多的控制(例如使用我们自己的域名),但是现在,ACS工作,我们'我会离开它。但Thinktecture服务作为简单用户名/密码的替代登录对我们来说非常重要 - 它确实意味着托管单独的云服务。
你想从SimpleMembership中得到什么?用户名/密码登录(在这种情况下使用/ host / build一个用户名/密码STS端点),或者成员资格/角色表(不管怎样 很棒)。?
答案 2 :(得分:0)
ASP.NET中有一个OAUTH2客户端框架,我为其编写了一个ACS提供程序。 Web应用程序加载OAUTH2提供程序,该提供程序是OAUTH2端点的外观。实际上,它将ws-fedp与ACS(及其各种发行人)进行了对话。由于oauth协议或ws-fedp协议都隐藏在提供程序中,因此API使用者(ASP.NET管道)不知道(或关心)。毕竟,它已经不在乎是否在同一API背后谈论OAUTH1,OAUTH2或openid。
它非常有效 - 并且毫不费力地重复使用简单的会员。适用于Web表单,网页和MVC。后者2是开源的,其源访问有助于了解更大的情况。