asp.net-mvc-4 – 使用基于声明的授权

前端之家收集整理的这篇文章主要介绍了asp.net-mvc-4 – 使用基于声明的授权前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
新的ASP.NET 4.5代码已将“重新生成”ASP.NET RoleProvider到ClaimProvider。

我想要弄清楚的是,什么是“基于声明”的授权示例(最好是在MVC4)?我的Authorize属性如何与此功能交互? WebSecurity和Roles API没有改变;没有“DoesUserHaveClaim()”签名。类似地,不清楚Authorize属性如何与声明进行交互。

此“声明授权”功能主要是否用于OAuth?如果是,如何将索赔转交给我的申请?一个cookie?或者这个声明提供者功能是否用于更广泛的用途?

简而言之,使用ClaimsPrincipal的故事是什么?

我看到的最近的东西,有点有意义,是this discussion.但我怀疑是日期 – 它应该与什么MVC4互联网项目模板生成。即使如此,它仍然没有建议如何使用Authorize属性与设置。

更新

我从这些来源找到了我的问题的答案:

> The remarks section of ClaimsPrincipal解释说,WebSecurity,Roles和AuthorizeAttribute API实际上根据需要归结为声明检查。
> A claims-based MVC4 example is here(与其他人一起)。
>基本SAML story is shown here

解决方法

基于声明的安全性有助于将您的安全模型与应用程序域隔离。声明可以是您要附加到用户身份的任何内容,例如电子邮件,电话号码或指示用户是否是超级用户的标志。这为您提供了如何设置授权过程的极大灵活性。过去,在ASP.NET应用程序中,您必须确定要允许的角色,并在编程应用程序时应用它们。然后检查用户是否处于授权角色。这将使您的安全模型与您的应用程序。在基于声明的基础上,您具有更多的灵活性,更典型的是设置一个授权方案,它将资源(例如:订单管理系统中的订单)和操作(例如:读,写,执行)作为输入参数授权过程,有效地从应用程序中分离安全性。参见 ClaimsPrincipalPermissionAttribute这个技术的例子。

OAuth需要基于声明的安全性,但它也适用于其他授权方案。您在应用程序中使用的自定义声明可以从ClaimsPrincipal.Current访问。还有一些技术可以将此信息存储在Cookie中,尽管ASP.NET安全流水线在默认情况下不会这样做。

您引用的讨论是针对Windows身份基础(WIF),现在是在4.5的一部分,并且是为什么基于声明的身份是一流的公民。所有Principal类型都继承ClaimPrincipal。有关基于声明的安全性的良好概述,请查看此免费电子书“A Guide to Claims-Based Identity and Access Control (2nd Edition)”。在这个领域的真正的专家是Dominick Baier和his blog充满了关于这个主题的有用的信息。他还有一个伟大的在线培训课程Pluralsight称为“Identity & Access Control in ASP.NET 4.5”。

猜你在找的asp.Net相关文章