加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc-3 – Azure ACS – 最佳实践实施

发布时间:2020-12-16 03:34:19 所属栏目:asp.Net 来源:网络整理
导读:大家好,我们正在从头开始在 Windows Azure上运行ASP.NET MCV 3应用程序. 关于身份验证和授权层,我们正在考虑使用访问控制服务. 我看了一些关于ACS的文章,我得到了基本的想法,但我仍然有一些疑问. 我的理解是,使用ACS我们将身份验证过程外包给一个或多个身份
大家好,我们正在从头开始在 Windows Azure上运行ASP.NET MCV 3应用程序.
关于身份验证和授权层,我们正在考虑使用访问控制服务.
我看了一些关于ACS的文章,我得到了基本的想法,但我仍然有一些疑问.

我的理解是,使用ACS我们将身份验证过程外包给一个或多个身份提供商(IP),基本上我们相信另一个系统(即Microsoft Live ID)来验证我们的用户.
基本过程非常简单:在身份验证阶段,我们将用户重定向(ACS执行)到我们的“受信任”IP之一,这会将用户(使用有效令牌)重定向到ACS并最终重定向到我们的应用程序.
这里有很多问题……

由于我们不希望所有具有Live ID帐户的用户都可以访问我们的应用程序,因此我认为应该有另一个流程来验证该用户并检查他是否在我们的应用程序中注册.
问题是在哪里?
在ACS或我们的应用程序中.?

我对此有一个想法,但我不知道这是否是正确的方法:
在注册阶段,系统(我们的网络应用程序)询问用户他想用哪个IP(即Live ID,Google,Facebook和我们的应用程序)在应用程序中验证自己.
然后用户在IP系统上进行身份验证过程,当他回来时,我们将他的用户名(IP用户名)存储在我们的数据库中.
因此,下次在身份验证阶段,我们可以检查该用户是否已在我们的系统中注册.

如果上述理论是正确的,那就意味着我们的应用程序.我们需要建立会员提供商来存储来自IP的用户名和选择我们应用的用户.作为IP.
我对么?
设计上述过程的最佳做法是什么?

现在让我们来谈谈授权和“角色”.
它如何与ACS一起使用?
ACS是否为每个用户管理多个角色?

我的理解是,使用ACS,您可以创建许多与IP相关的“规则组”,而不是单个用户.
如果这是正确的,我们如何在我们的应用程序中管理角色中的用户?
比方说,我们有多个角色,我们的用户可以与这些角色相关联,我们可以使用ASC来管理吗?

所以最后的问题是:
ACS本身是否涵盖整个身份验证和授权过程?
我们还需要使用.net会员提供商吗?
为了满足我们的要求,最佳做法是什么?

非常感谢您的贡献.

解决方法

有关注册阶段的问题部分,用于标识用户的最佳方法是NameIdentifier声明类型

http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier.

这对于每个身份提供者应该是唯一的并且也是固定的.如果您使用电子邮件地址声明,则可能会更改同一用户.从技术上讲,两个身份提供者可能使用相同的NameIdentifier(没有任何与ACS相关的开箱即用的),因此您可以将NameIdentifier声明与IdentityProvider声明类型结合使用

http://schemas.microsoft.com/accesscontrolservice/2010/07/claims/identityprovider

保证独特性.

对于关于角色的部分,我会说使用ACS来发布来自通用身份的角色声明,就像基于每个用户使用ACS中的声明转换规则一样,很难管理Google.您必须为每个注册用户添加规则 – 可能不可行.我认为ACS规则组更适合转换角色声明(例如,由联合ADFS发布).你的想法在你的应用程序中这样做是一个更好的恕我直言.在代码中,使用WIF执行此操作的位置在自定义ClaimsAuthenticationManager中.您可以覆盖其Authenticate方法,并根据传入原则中的NameIdentifier声明,查找您的成员资格数据存储区,并根据您的成员资格数据库中的角色创建新的IClaimsPrinciple(即为每个角色添加角色声明)在…).

然后,您可以在自定义ClaimsAuthorizationManager中进行授权决策.网上有一些很好的样本和信息.你可以从

http://msdn.microsoft.com/en-us/library/ee748497.aspx

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读