Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Azure ACS和SimpleMembership_Azure_Asp.net Mvc 4_Single Sign On_Acs - Fatal编程技术网

Azure ACS和SimpleMembership

Azure ACS和SimpleMembership,azure,asp.net-mvc-4,single-sign-on,acs,Azure,Asp.net Mvc 4,Single Sign On,Acs,我想使用以下内容创建azure mvc4网站(azurewebsites): 公司领域内员工的SSO(已与ACS联合发布的ADF) 通过本地帐户或LiveID OAuth(LiveID是ACS上的IdP)访问外部(非员工) 需求是管理应用程序中的用户配置文件和角色 我看到以下选项: 将我的应用程序与ACS联合,并使用联合身份验证,为用户配置文件和成员身份创建自定义表集等,在这种方法中,我无法使用任何现有的提供者。我在索赔中没有必要的信息 为ACS编写自定义OAuth/OAuth2客户端(我找

我想使用以下内容创建azure mvc4网站(azurewebsites):

  • 公司领域内员工的SSO(已与ACS联合发布的ADF)
  • 通过本地帐户或LiveID OAuth(LiveID是ACS上的IdP)访问外部(非员工)
  • 需求是管理应用程序中的用户配置文件和角色
我看到以下选项:

  • 将我的应用程序与ACS联合,并使用联合身份验证,为用户配置文件和成员身份创建自定义表集等,在这种方法中,我无法使用任何现有的提供者。我在索赔中没有必要的信息

  • 为ACS编写自定义OAuth/OAuth2客户端(我找不到任何客户端),并使用OAuthWebSecurity注册它。这种方法似乎适合我,我可以使用SimpleMembership等。问题是,我找不到任何示例如何以正确的方式实现它

  • 问:

    在这种情况下,什么是正确的方法

    是否有其他选择来满足我的要求

    是否有用于ACS的OAuthWebSecurity客户端

    谢谢,
    Maciej

    我会选择方法1。因为——

    a) 您无论如何都需要ws-fed来合并adf b) ACS没有OAuth客户端-ACS只支持OAuth的一些特殊用例(这就是为什么您没有找到它的客户端)


    您希望完全控制您的数据库,而不是使用魔术/半生不熟(取决于您的观点)简单的成员身份信息…

    ASP.NET中有一个OAUTH2客户机框架,我为其编写了一个ACS提供程序。web应用程序加载OAUTH2提供程序,该提供程序是OAUTH2端点的外观。事实上,它将ws-fedp与ACS(及其各种发行人)进行谈判。由于oauth协议或ws-fedp协议都隐藏在提供程序中,因此API使用者(ASP.NET管道)不知道(或不关心)。毕竟,它已经不在乎它是在同一个API后面谈论OAUTH1、OAUTH2还是openid了


    它非常有效,并且可以毫无顾忌地重用simplemembership。在web窗体、网页和MVC中工作。后两个是开源的,其源代码访问有助于了解全局。

    我们最近实现了一个类似问题的解决方案。我们所做的是:

    • 使用ACS和身份提供者(Windows Live、Google等)作为身份令牌
    • 使用我们自己的机制将这些身份映射到用户/角色。例如,我们在第一次登录时使用工资单数据来验证针对员工的索赔
    • 对于那些不想使用社交媒体身份的用户,我们允许他们在通过ACS链接的“自己的”身份提供商上创建用户名/密码。这是一个单独的服务,运行的是的修改版本。因此,我们使用thinktecture身份服务作为STS端点
    • 我们将对联邦ADF执行相同的操作(正如您所做的那样)
    随着时间的推移,我们似乎可以使用Thinktecture服务器来取代ACS功能,并提供比ACS更多的控制(例如使用我们自己的域名),但现在ACS可以工作了,我们就不谈了。但是Thinktecture服务,作为简单用户名/密码的替代登录,对我们来说很重要——它确实意味着托管一个单独的云服务


    你想从简单记忆中得到什么?用户名/密码登录(在这种情况下使用/host/build用户名/密码STS端点)或成员资格/角色表(无论如何都不是很好)。?

    Hi,如果我选择使用ACS的LiveID进行外部登录,这将很好,但是如果我想创建本地帐户呢?我看到的唯一选项是ACS的Oauth。我发现了这个:,但我还没有机会尝试。如果使用acs fedauth,如何将联邦用户映射到本地数据库?acs不支持MVC模板(DotNetOpenAuth)中使用的OAuth“类型”。但您可以简单地进行自己的映射。ACS返回一些id,您将其映射到数据库中的一个用户。是的,它没有。提到的博客帖子和我的问题帖子的2.方法有关,不管怎样:如果我想使用本地帐户为本地用户创建externals+ACS,该怎么办?正如我所说的,您可以自己创建映射。我更喜欢写我自己的逻辑。您可以完全控制身份验证、声明和本地数据库。感谢您的回复,但我仍然不知道如何使用表单auth(用于外部)miv Fed auth(用于本地)。。