Hay una razón por la que los desarrolladores de software no son externalización de la autorización?

StackOverflow https://stackoverflow.com/questions/955399

Pregunta

La propuesta de valor de la exteriorización de la identidad está empezando a aumentar, donde muchos sitios aceptan ahora OpenID, CardSpace o de identidad federada.Sin embargo, muchos desarrolladores aún no han tomado el siguiente paso para externalizar la autorización y el uso de los enfoques basados en XACML.

Es la razón por la falta de conciencia o algo más?Cómo se puede esperar para aprender acerca de XACMLlos enfoques basados en el desarrollo de software?

Por favor nota que me estoy preguntando acerca de la autorización, no de autenticación.

¿Fue útil?

Solución

Creo que la posibilidad de externalizar la autorización es mucho más difícil cosa que la exteriorización de autenticación OpenID, CardSpace, etc.).Esto es principalmente debido al hecho de que la autorización es mucho más específica de la aplicación.Lo que Una Persona está autorizada para hacer que mi aplicación no puede ser capaz de hacer en su aplicación, y que incluso suponiendo que hay algo de común en paralelo entre mi solicitud y tu, que probablemente no va a ser.

No quiero decir que la externalización de autorización nunca hacer, pero no tengo un duro tiempo con razones de por qué te gustaría realmente quiere hacer.Tal vez para una suite de aplicaciones que trabajan lado a lado, pero de nuevo, que sería lo más probable es apoyado internamente, en lugar de externamente.

Otros consejos

Además, recuerda que la autorización !== la autenticación.Sólo porque un usuario es autenticado no significa que usted tiene resuelto la parte de la autorización de su sitio.Usted todavía necesita para determinar quién va a hacer qué y cuándo.

La razón principal de que seguimos el rollo de los nuestros es que las opciones como openid et al son sólo aparentemente apoyado por sitios de tecnología.Somos un pequeño reproductor, por lo que no vamos a empezar a utilizar un proveedor externo hasta el momento en que hay una mayor aceptación de los usuarios.

No queremos que la primera cosa que un usuario tiene que hacer en nuestro sitio web para implicar ir a otro sitio.

Me parece que han caído en el error de que los otros tienen - la pregunta era sobre autorización externa.Personalmente, creo que sería sólo la confianza distribuido autorización en una red local donde tengo el control de la autenticación y autorización de los servidores.Yo nunca usaría autorización externa en un sitio web.

A continuación son mis comentarios sobre OpenID como un servicio de autenticación.

1) Como se señaló, la autorización != la autenticación.OpenID controla la autenticación, pero la aplicación web de el propietario todavía tiene el control total sobre los derechos asignados a ese inicio de sesión.Esto es positivo, pero la confusión acerca de esto es un punto negativo.

2) no puedo encontrar el enlace, pero OpenID está abierto a la ingeniería social / main, en el medio de ataques de phishing.Los proveedores tratan de evitar esto (ID de imágenes, navegador los certificados, la llamada de verificación, etc, pero no ayuda cuando el sombrero negro sitio aparece un cuadro de diálogo o la página que dice "introduzca su OpenID nombre de usuario y contraseña" y el genio de usuario cumple.

3) Cada proveedor de un federado ID tiene la capacidad (y algunos dirían que la responsabilidad) para el seguimiento de todas las actividades de sus usuarios, independientemente de qué sitio se utiliza el ID.Esta es la razón por la que Google y Yahoo son gung-ho a proporcionar federada IDs, pero no tan entusiasmados consumir ellos.

4) a diferencia de un comentario de arriba, es comúnmente el caso de que el uso de OpenID reduce la barrera de registro, especialmente cuando una útil interfaz de usuario señala que un nuevo usuario probablemente ya tiene un OpenID.Esto es aún más cierto cuando se usa una combinación de OpenID / OAuth solución como RPX.

Así que, desde mi punto de vista, los riesgos de usar OpenID están en el usuario, no en el sitio web.Yo no puedo evitar que el usuario se interceptado por hacer de ellos trate de recordar otro ID de usuario y contraseña.Además, Sombreros Negros no necesita hacer nada más nefasto que almacenar las contraseñas de los usuarios de su sitio en formato de texto para obtener acceso a un usuario a otras cuentas.¿Cuántas personas usan una contraseña diferente para cada sitio web del registro en?

La mayoría de los proyectos que he hecho han sido de propiedad de las aplicaciones para su uso dentro de las grandes empresas, y en esos casos la autenticación externa de los servicios que rara vez son una opción, pero es la autenticación en lugar de manejarse a través de un servicio interno (tales como Active Directory).

Debo pasar a formar parte de un proyecto para construir un sitio web público, me gustaría definitivamente tratar de hacer uso de algo como OpenID en lugar de presentar mi propia autenticación.

Un problema es una combinación de No Inventado Aquí y la desconfianza de que se exteriorizan autoridades (incluso pseudonomous) de identidad.Una buena redacción es la siguiente:

También, creo que puede ser de inercia.Sin una killer app para poder, la gente es lento para migrar.Dado el aumento en el número de Facebook-integraciones he visto últimamente creo que estamos en la cima de una empinada pendiente, a punto de entrar en ese mundo.

Como otro cartel indica, la autorización es generalmente específica de la aplicación.Lo que usted puede HACER en una aplicación varía significativamente de lo que se puede HACER en otro.Especialmente en el cliente de off-the-shelf aplicaciones, la autorización es generalmente la forma más natural manejado por la aplicación.

El rendimiento es otro motivo de preocupación.Esto puede ser visto por la obtención del Sol XACML aplicación, y lo utiliza para externalizar algunos de autorización.De incurrir en los costes de la red en ambos lados de la petición de que (dependiendo de la forma de arquitecto de solicitud/respuesta, etc.) pueden superar con creces el costo real de la decisión de autorización.Construir en un CUNAS de la aplicación, donde tiene menos libertad para la optimización del rendimiento y las cosas van de mal en peor.

Sin embargo, creo que algunas de las áreas prometedoras son alrededor de cumplimiento regulatorio.Hay algunas autorizaciones que no varían según la aplicación.La transferencia de la propiedad o de la información clasificada o de los materiales, por ejemplo.En estos casos, un caso fuerte puede ser hecho por el mismo control existentes en cada aplicación, porque lo contrario es tan malo.Tener cualquier número de implantaciones y las reglas para el mismo control de acceso es una pesadilla.Un lugar fácil para empezar con un marco de control como XACML se puede empezar con lo que alguien puede ver y, a continuación, el trabajo a lo que alguien puede hacer.

Creo que depende del tipo de proyecto en el que trabajar.Si el cliente desea almacenar la autorización no hay manera de usar OpenID...Puedo desarrollar un pequeño proyecto el uso de google apps engine y para ello, yo uso google para hacer la autorización.Así que depende fuertemente del tipo de proyecto.

Varias razones:

  1. Como algunos de los comentarios que demostrado, hay una percepción general de que "la autorización es local", lo que implica que hay poco potencial de re-uso de la caro-para-mantener-a-la-alta-calidad "atributos de objeto" que se necesita para importante las decisiones de acceso.(Creo que hay un alto nivel de reutilización potencial ya que algunas de las leyes/reglas son ampliamente aplicables, pero la discusión completa de este es demasiado largo para este formato.)
  2. La falta de infraestructura de datos:para aplicar la política de control de acceso basado entre las organizaciones (yo uso/confiando algunos otros org autorización ("AuthZ") de datos para desbloquear el acceso a mis datos) requiere, como mínimo, que yo entiendo que la semántica de los atributos (lo que es una "ley-enforcemment oficial"?¿Qué es un "Ciudadano de los EE.UU.".) Después de eso, sería bueno tener un fácil para entender atributo estándares de calidad y la certificación de tercera parte de la misma.(Algunos pueden observar que estos requisitos son análogos a los requisitos para la PKI de interoperabilidad:¿cómo es que viene a lo largo de?Y eso es sólo una pieza de datos, además de apoyar cosas.)
  3. Impacto en los roles/responsabilidades:la externalización de la autorización, si a "funciones" o "atributos" o "atributos con los digitales de la política", significa que el local de "datos del propietario" pierde el control de los recursos.Él también repercute en un considerable trabajo y la responsabilidad para el mantenimiento de listas de usuarios.Este tipo de cambio eleva la aplicación externa de AuthZ de un problema técnico en una organización con un lado de la política.
  4. La mayoría de las organizaciones no sabe y no he escrito lo que en sus políticas.El acceso puede ser "quien pide" o "quien pide y me gusta" o "quien me puede dar algo, como el acceso a sus datos." El real reglas que se aplican pueden ser muy feo, cuando son forzados a entrar en el abierto expresando ellos en una política del lenguaje.Y el conjunto de habilidades para la buena interpretación de las políticas escritas en políticas digitales no crece en los árboles, ya sea.De hecho, el conjunto de habilidades es analista de negocios o abogado, no ES chico, y herramientas para esas personas son raros o inexistentes.
  5. Cuando usted tiene una sólida política de la regla, es probable que descubra que los atributos necesarios para el proceso que no existen, que no son típicamente el tipo de cosa que se encuentra ya en el año.Número de teléfono NO es útil como un AuthZ atributo, e incluso la "Organización", probablemente no es adecuado para la mayoría de las leyes o reglas que usted puede realmente documento.Que no es ni siquiera mencionar las soluciones y aproximaciones que se han de aplicar (y aprobado) para expresar los requerimientos de la política como "causa probable".
  6. Relativamente manejable, pero siendo real, es que muchos, muy difundida, CUNAS aplicaciones no admiten autorización externa, y muchas app-los desarrolladores no están acostumbrados a hacer con la externalización, y por lo tanto (a) tratar de hablar con usted fuera de ella;o (b) aprender en su moneda de diez centavos, y hacerlo mal.

Suena bastante mal, ¿verdad?Así que, permítanme terminar diciendo creo que es el juego vale la pena la vela a pesar de todo esto.La lista de potenciales beneficios es para otro post en otro momento.

Buena suerte!

De acuerdo con Joseph el punto sobre la autorización de ser altamente específica de la aplicación.

Pero además de eso, la subcontratación de autorización también trae un riesgo importante de preocupación:dado que la autorización es altamente específica de la aplicación y granular, una vez externalizar la autorización a un proveedor de servicios, migrar o sustitución de que el proveedor se convierte en una tarea casi imposible.Usted está en el gancho de manera irrevocable.

Así, en la evaluación de sus riesgos y beneficios, negocios razonamiento que te lleva a evitar ir con una dependencia de disco duro.

Para mí, personalmente, esta es la primera cosa que he oído acerca de Autorización externa..Así que sólo podría ser la falta de conciencia.

Google ahora..

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top