asp.net-mvc-3 – Azure ACS – 最佳实践实施
大家好,我们正在从头开始在
Windows Azure上运行ASP.NET MCV 3应用程序.
关于身份验证和授权层,我们正在考虑使用访问控制服务. 我看了一些关于ACS的文章,我得到了基本的想法,但我仍然有一些疑问. 我的理解是,使用ACS我们将身份验证过程外包给一个或多个身份提供商(IP),基本上我们相信另一个系统(即Microsoft Live ID)来验证我们的用户. 由于我们不希望所有具有Live ID帐户的用户都可以访问我们的应用程序,因此我认为应该有另一个流程来验证该用户并检查他是否在我们的应用程序中注册. 我对此有一个想法,但我不知道这是否是正确的方法: 如果上述理论是正确的,那就意味着我们的应用程序.我们需要建立会员提供商来存储来自IP的用户名和选择我们应用的用户.作为IP. 现在让我们来谈谈授权和“角色”. 我的理解是,使用ACS,您可以创建许多与IP相关的“规则组”,而不是单个用户. 所以最后的问题是: 非常感谢您的贡献. 解决方法
有关注册阶段的问题部分,用于标识用户的最佳方法是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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- powershell – InvalidOperation:(System.Net.HttpWebRequ
- asp.net-mvc – 确保每个控制器方法都有一个ValidateAntiFo
- asp.net – sitecore模板标准值布局不更新所有项目,布局未加
- ASP.NET上的.cshtml razor文件转换
- ASP.NET控件属性与[Flags]枚举
- asp.net – 单元测试操作过滤器 – 如何模拟ViewResult
- asp.net-core – 将绝对文件路径转换为相对路径
- Block内的ASP.NET服务器端注释
- asp.net – 最佳AJAX框架
- asp.net-mvc – 使用actionlink将文本框的值从视图传递到控
- asp.net-mvc – Automapper映射到嵌套类
- asp.net-mvc – MVC4 Web API或MVC3 JsonResult
- asp.net-mvc – 实体框架TPC继承(请现在拍我)
- asp.net-mvc – 使用.net mvc在IIS角度2应用程序
- asp.net-mvc-3 – 如何在MVC3 / 4中的Html.Begin
- 奇怪的#_ = _出现在response.redirect ASP.NET之
- asp.net-mvc – 使用MVC Futures的异步控制器在.
- asp.net-mvc – 防止在ASP.NET MVC中缓存属性,每
- asp.net-membership – 覆盖ASP.NET MVC 4中的AS
- Safari和Asp.net中的cookie存在奇怪的问题