Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/244.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?_Azure_Identity_Wif_Claims Based Identity_Acs - Fatal编程技术网

Azure 何时不使用ACS?

Azure 何时不使用ACS?,azure,identity,wif,claims-based-identity,acs,Azure,Identity,Wif,Claims Based Identity,Acs,我一直在研究Azure访问控制服务(ACS),它似乎特别擅长处理来自异构(可配置)身份提供商的身份验证。然后,它似乎还支持许多其他场景(请参见示例) 我的问题正好相反:为了正确地使用它,它将真正帮助我理解ACS有什么好处。ACS的局限性是什么,和/或ACS不合适的一些场景是什么 (为了论证起见,假设我计划创建一个-有利可图:)-公共web API和相应的web站点前端,托管在Azure中-也就是说,我确实关心用户身份。如果您愿意,您可以进一步假设我的系统将使用.NET构建。) 谢谢 尽管您可以在

我一直在研究Azure访问控制服务(ACS),它似乎特别擅长处理来自异构(可配置)身份提供商的身份验证。然后,它似乎还支持许多其他场景(请参见示例)

我的问题正好相反:为了正确地使用它,它将真正帮助我理解ACS有什么好处。ACS的局限性是什么,和/或ACS不合适的一些场景是什么

(为了论证起见,假设我计划创建一个-有利可图:)-公共web API和相应的web站点前端,托管在Azure中-也就是说,我确实关心用户身份。如果您愿意,您可以进一步假设我的系统将使用.NET构建。)


谢谢

尽管您可以在ACS中使用Windows Live作为身份提供程序,但在某些情况下您可能不想使用它。您收到的用户ID取决于ACS命名空间。这意味着,如果您的应用程序使用多个ACS名称空间(比如一个用于欧洲,一个用于美国),这可能会导致一些问题

想象一下用户通过USA名称空间登录的场景。您的应用程序将收到该用户的ID(哈希),您可能会在应用程序中为该用户创建一个配置文件。一周后,您的用户将前往欧洲,并可能通过您的欧洲名称空间登录。即使这是同一个用户,您也会得到该用户的另一个ID(散列),使它看起来像是一个新用户,即使它不是。这是因为ID(哈希)依赖于ACS命名空间

:

您从ACS for Windows Live ID收到的用户ID将特定于您服务命名空间中的该用户。如果使用不同的服务名称空间,则会为同一用户获得不同的值。因此,要回答您的问题: *实验室ACS和产品ACS[不同ID]

  • 不同订阅中的不同依赖方(在产品中)[不同ID]

  • 同一订阅中的不同RP[相同ID如果服务命名空间相同,则相同订阅中的两个命名空间不同 订阅]

  • 如果我删除RP并将其重建到同一领域、同一帐户[同一ID]

更新:


要回复其中一条评论,您确实无法从Windows Live身份提供商处获得电子邮件地址。但是你应该假设你不能控制你从公共身份提供者那里得到的信息。一个好的做法是简单地依赖于用户的标识符,并为用户创建一个概要文件(您将在应用程序中管理概要文件)。当您从身份提供商处获得一些信息时,您已经可以更新配置文件,但如果此信息不可用,您只需要求用户更新其配置文件即可。请务必查看示例以了解更多信息。

您不应将ACS用作身份提供者

有时我会对ACS所扮演的角色感到困惑。is核心的ACS是一个联合提供者,但有一个有效的场景,您希望您的后端服务(受信任的子系统)使用共享密钥或证书直接向ACS进行身份验证。这可以使用服务标识来完成。然而,我不止一次看到一个ACS场景被提出,其中要提供多个帐户,这将通过为每个用户创建服务标识来实现

ACS并不是这样设计的。如果您突然拥有数千个用户,那么将ACS设置为您的权威源用户目录将无法扩展。ACS提供了一个很好的规则引擎,用于规范来自各种身份提供者的传入声明类型,或用于生成角色声明等简单授权策略


但ACS在这里的功能不应与功能完备的目录、身份验证和授权解决方案(如AD和ADFS)混淆。简而言之,ACS不是AD/ADFS的一个可能版本。

Wow开放式问题,我在生产中使用过ACS,我喜欢它,这是一个限制,不是在ACS上,而是在Windows Live上,您无法获取此人电子邮件地址“AZURE ACS-Windows Live ID-我如何获取经过身份验证的用户的电子邮件和姓名?”的声明类型:您可以解决此问题,但我觉得这很烦人。有兴趣看看别人怎么想@用户728584:谢谢你的链接。事实上,我仍然必须管理自己的用户注册,这一点也在这个问题中提出。是的,我一直在钻研ACS文档,维托里奥·贝尔托西的视频,等等。现在:),用另一种方式问它,希望能让事情变得更清楚。好吧,你在维托里奥(海军上将身份)的正确轨道上。ADFSV2也很优秀,我的客户使用它和基于表单的身份验证(现有功能)为公众提供社交媒体登录,例如Facebook,将所有安全问题抽象到ACS,非常有效+我需要一个彻底的答案。但您要解决的是特定场景中ACS的技术(设计上)限制。我更感兴趣的是ACS不适合的场景。谢谢,这是我想了解的事情。(事实上,我正考虑这样做。我有大量的客户端设备需要使用单独的X.509证书进行身份验证。不过,我一直在努力从概念上将其与ACS联系起来。另一个问题的主题是。)