tag radiobutton net mvc example cshtml asp asp.net-mvc-4 authorization asp.net-4.5

asp.net-mvc-4 - net - razor radiobuttonfor



Usar la autorizaciĆ³n basada en reclamos (1)

El nuevo código ASP.NET 4.5 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 "reclamos" (preferiblemente en MVC4). ¿Cómo interactúa mi atributo Authorize, o no, con esta capacidad? La API de WebSecurity y Roles no ha cambiado; no hay firma "DoesUserHaveClaim ()". Del mismo modo, no está claro cómo el atributo Autorizar interactúa con las reclamaciones.

¿Esta función de "autorización de reclamos" estaba destinada principalmente a OAuth? De ser así, ¿cómo se envían las reclamaciones a mi solicitud? ¿Una galleta? ¿O era esta funcionalidad de proveedor de notificaciones 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 sentido es esta discusión . Pero sospecho que está fechado: debe compararse con lo que produce la plantilla del proyecto de Internet MVC4. E incluso entonces, todavía no sugirió cómo usar el atributo Autorizar con la configuración.

ACTUALIZAR

He encontrado las respuestas a mis preguntas de estas fuentes:

  1. La sección de comentarios de ClaimsPrincipal explica que WebSecurity, Roles y AuthorizeAttribute API de hecho se reducen a las comprobaciones de reclamaciones según sea necesario.
  2. Un ejemplo de MVC4 basado en notificaciones está aquí (junto con otros).
  3. La historia básica de SAML se muestra aquí .

La seguridad basada en notificaciones ayuda a desacoplar su modelo de seguridad del dominio de su aplicación. Un reclamo puede ser cualquier cosa que desee adjuntar a la identidad del usuario, como un correo electrónico, un número de teléfono o un indicador que indique si el usuario es un súper usuario. Esto le brinda la máxima flexibilidad sobre cómo desea configurar su proceso de autorización. Históricamente, en una aplicación ASP.NET debe determinar qué roles desea permitir y aplicarlos al programar su aplicación. Luego, verifica si el usuario tiene el rol de autorizarlos. Esto combina su modelo de seguridad con su aplicación. En las reclamaciones, 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, desvinculando efectivamente la seguridad de su aplicación. Consulte ClaimsPrincipalPermissionAttribute para ver un ejemplo de esta técnica.

La seguridad basada en reclamos es obligatoria con OAuth, pero también funciona bien con otros esquemas de autorización. Los reclamos personalizados que usa en su aplicación son accesibles desde ClaimsPrincipal.Current . También existen técnicas para almacenar esta información en las cookies, aunque la canalización de seguridad de ASP.NET no lo hace de forma predeterminada.

La discusión a la que hace referencia es para Windows Identity Foundation (WIF) que ahora es parte de .NET en 4.5 y es la razón por la cual 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 reclamos, consulte este libro electrónico gratuito " Una guía para la identidad basada en reclamaciones y el control de acceso (2da edición) ". Un verdadero experto en esta área es Dominick Baier y su blog está repleto de información útil sobre este tema. También tiene un excelente curso de capacitación en línea sobre Pluralsight llamado " Identity & Access Control in ASP.NET 4.5 ".