Autorización basada en reclamos frente a permiso

10

Así que entiendo roles vs permisos. También entiendo roles vs reclamos. En ambos casos, las reclamaciones y los permisos son granulares, generalmente por función u operación comercial, como el permiso AddPerson. He estado aprendiendo sobre la autorización basada en reclamaciones y los ejemplos que muestran cómo es "mejor" y por lo general se compara con la autorización basada en roles. Obviamente, es mejor porque esa es la forma incorrecta de usar roles, ya que deberías usar los permisos como una asignación entre las operaciones y los roles.

¿Cuál es la distinción entre la autorización basada en reclamaciones y la autorización basada en permisos? (tenga en cuenta que los permisos son diferentes de los roles, por lo que no es un duplicado de la pregunta de Función frente a Reclamación)

En ambos parece que tienes permisos / reclamos granulares. Hasta ahora, los ejemplos concretos que he visto de reclamos están muy cerca de lo que conceptualizaría como permisos. Un ejemplo que veo con reclamos es el de Agregar / Persona, y ciertamente tendría un permiso similar al de AddPerson. Por lo general, encuentro que tengo una capa empresarial con puntos de entrada únicos para cosas como esta y cada función / punto de entrada requiere un permiso. En ambos casos, lo racional de los permisos / reclamaciones es que, con el tiempo, una identidad o función particular puede cambiar en términos de lo que se le permite hacer. Y si ha revisado el papel de esa función dentro de su aplicación, debe hacer cambios en el código para adaptarse, pero si ha usado reclamaciones / permisos, entonces es simplemente una cuestión administrativa de cambiar la función asociada. Así que ambos parecen tener los mismos beneficios.

Hago esta pregunta para que no parezca que estoy desafiando la idea de las afirmaciones. En su lugar, sé que probablemente tendré un mejor concepto de reclamaciones si entendiera más claramente lo que los distingue de los permisos.

    
pregunta AaronLS 16.08.2014 - 05:35
fuente

2 respuestas

12

Una reclamación es algo más arbitraria que un permiso. Una reclamación es 'ojos azules', mientras que 'AddPerson' es un permiso. Es una afirmación del proveedor de identidad que una característica dada (o más exactamente, un atributo) sobre la identidad es verdadera.

Puede determinar el permiso según el reclamo o la característica porque 'todos los individuos de ojos azules pueden hacer xyz', mientras que un permiso es explícitamente lo que puede y no puede hacer. Con un permiso, no puede (fácilmente) determinar una característica de, por ejemplo, 'cualquiera que pueda hacer xyz tiene ojos azules'.

Dicho esto, un permiso es una reclamación. Simplemente sucede que el proveedor de identidad está afirmando que la identidad tiene la característica de tener permiso para hacer lo que sea.

En resumen: una reclamación es un atributo arbitrario sobre la identidad, mientras que un permiso es un derecho afirmado para hacer algo.

    
respondido por el Steve 18.08.2014 - 20:35
fuente
3

Consulte enlace para SAML, que proporciona la autorización basada en reclamaciones significa. Como dijo Steve, los reclamos pueden asignarse directamente a permisos específicos si el proveedor de servicios lo elige, o también a roles . La forma en que los reclamos del proveedor de identidad se asignan a los permisos / roles en el proveedor de servicios depende completamente del proveedor de servicios. El proveedor de identidad simplemente afirma que las reclamaciones son verdaderas para el usuario autenticado , y el proveedor de servicios toma estas reclamaciones y decide cómo se relacionan con los permisos y / o en el servicio. Las reclamaciones son declaraciones confiables sobre el usuario del proveedor de identidad, y tomadas en solitario no tienen nada que ver con los permisos o roles hasta que el proveedor de servicios decida qué significan las reclamaciones.

    
respondido por el Ken Clubb 19.08.2014 - 11:03
fuente

Lea otras preguntas en las etiquetas