Uso de la Autorización Basada en Reclamaciones


El nuevo ASP.NET 4.5 código ha "re-parented" el ASP.NET RoleProvider a un ClaimsProvider.

Lo que estoy tratando de averiguar, es cómo sería un ejemplo de autorización "basado en reclamaciones" (preferiblemente en MVC4)? ¿Cómo interactúa o no mi atributo Authorize con esta capacidad? La API WebSecurity y Roles no ha cambiado; no hay firma "DoesUserHaveClaim ()". Del mismo modo, no está claro cómo interactúa el atributo Authorize con las notificaciones.

Fue esto ¿función de "autorización de reclamaciones" destinada principalmente a OAuth? Si es así, ¿cómo se envían las reclamaciones a mi solicitud? Una cookie? ¿O esta funcionalidad de proveedor de reclamaciones estaba destinada a un uso más amplio?

En resumen, ¿cuál es la historia para usar un ClaimsPrincipal?

Lo más parecido que he visto a algo que tiene un poco de sentido, es esta discusión. Pero sospecho que es anticuado, debería compararse con lo que produce la plantilla de proyecto de Internet MVC4. E incluso entonces, todavía no sugirió cómo usar el atributo Authorize con la configuración.

ACTUALIZAR

He encontrado las respuestas a mis preguntas de estas fuentes:

  1. La sección de observaciones de ClaimsPrincipal explica que WebSecurity, Roles y API AuthorizeAttribute de hecho se reducen a comprobaciones de reclamaciones según sea necesario.
  2. Un ejemplo MVC4 basado en reclamaciones está aquí (junto con otros).
  3. Se muestra la historia básica de SAML aquí.
Author: Community, 2012-11-19

1 answers

La seguridad basada en notificaciones ayuda a desacoplar el modelo de seguridad del dominio de la aplicación. Una reclamación puede ser cualquier cosa que desee adjuntar a la identidad del usuario, como un correo electrónico, un número de teléfono o una bandera que indique si el usuario es un superusuario. Esto le da la máxima flexibilidad sobre cómo desea configurar su proceso de autorización. Históricamente en un ASP.NET aplicación tienes que determinar qué roles quieres permitir y aplicarlos al programar tu aplicación. Entonces tú compruebe si el usuario está en el rol para autorizarlos. Esto mezcla su modelo de seguridad con su aplicación. En las reclamaciones basadas tiene mucha más flexibilidad y es más típico configurar un esquema de autorización que toma un recurso (por ejemplo: Pedidos en un sistema de gestión de pedidos) y una operación (por ejemplo: leer, escribir, ejecutar) como parámetros de entrada a su proceso de autorización, desacoplando efectivamente la seguridad de su aplicación. Ver ClaimsPrincipalPermissionAttribute para un ejemplo de esto técnica.

Se requiere seguridad basada en reclamaciones con OAuth, pero también funciona bien con otros esquemas de autorización. Los reclamos personalizados que utiliza en su aplicación son accesibles desde ClaimsPrincipal.Actual. Existen técnicas para almacenar esta información en cookies también, aunque el ASP.NET la canalización de seguridad no hace esto de forma predeterminada.

La discusión a la que hace referencia es para Windows Identity Foundation (WIF), que ahora forma parte de. NET en 4.5 y por eso la identidad basada en reclamos es un ciudadano de primera clase. Todos los tipos Principales heredan de ClaimsPrincipal. Para obtener una buena visión general de la seguridad basada en reclamaciones, consulte este libro electrónico gratuito " A Guide to Claims-Based Identity and Access Control (2nd Edition)". Un verdadero experto en esta área es Dominick Baier y su blog está lleno de información útil sobre este tema. También tiene un gran curso de capacitación en línea sobre Pluralsight llamado " Identity & Access Control in ASP.NET 4.5".

 31
Author: Kevin Junghans,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-09-08 10:20:23