¿Qué protocolo de autenticación web?

2

Necesito implementar un protocolo de autenticación basado en la web para que los usuarios que conozco puedan acceder a una aplicación web de terceros. Trabajaré con los desarrolladores de esa aplicación web para implementar ambas partes, ya que actualmente no son compatibles con la delegación de autenticación.

Al principio, pensé que iba a implementar un IdP OpenID 2.0, ya que creo que el protocolo es simple y está bien diseñado. Pero el otro desarrollador está preocupado de que OpenID 2.0 se considere obsoleto, y cree que deberíamos usar el nuevo OpenID Connect ...

Dado que no tenemos necesidad de una delegación de autorización que OAuth pueda proporcionar, OpenID Connect me parece exagerado.

Entonces, ¿debería considerar que es peligroso implementar OpenID 2.0 obsoleto ahora y elegir OpenID Connect o debo insistir en usar el protocolo OpenID 2.0 más antiguo y más simple?

Y si selecciono OpenID Connect, ¿hay alguna buena razón para no usar el flujo implícito (con "response_mode" configurado como "consulta")? Prefiero evitar el viaje de ida y vuelta extra de servidor a servidor que me parece inútil, para un protocolo que solo proporciona identidad ...

    
pregunta user2233709 04.03.2017 - 00:26
fuente

1 respuesta

2

Tomaré esta pregunta desde el punto de vista de usabilidad y extensibilidad. Por ejemplo, si planeo usar un protocolo para intercambiar datos, digamos mensajes de texto entre usuarios, a través de la red entre dos aplicaciones, mi primera opción sería HTTP.

¿Por qué elegiría HTTP en lugar de algo más simple, por ejemplo, TCP sin formato con un encabezado hecho a mano en la parte superior? Porque la aplicación crece, y sé que dentro de dos meses extenderé este simple encabezado hecho a mano para agregar codificación de texto. Dentro de cuatro meses extenderé el encabezado nuevamente para permitir la transferencia fragmentada. Y dentro de 3 años terminaré con un horrible mantenimiento y documento de encabezado hecho a mano que probablemente tenga muchos errores (incluidas las implicaciones de seguridad).

Si elijo usar HTTP, al principio se verá hinchado. Pero después de 3 años, descubriré que el 80% de las extensiones que he agregado son conformes con alguna parte del protocolo HTTP. Así que necesito documentar menos cosas, y necesito mantener menos código yo mismo.

Y ahora, de vuelta a OpenID 2.0 vs. OpenID Connect.

OpenID Connect se coloca sobre OAuth 2.0, OpenID 2.0 no. Durante mucho tiempo, OpenID fue un sistema concurrente para OAuth, sin embargo, ambos tienen una filosofía de uso ligeramente diferente:

  • OpenID es una forma de tener un único conjunto de credenciales para varios lugares.

  • OAuth es una forma de acceder a los datos que se almacenan en un lugar desde varios lugares.

Entonces, sí, está buscando una solución en la que los usuarios de un lugar puedan acceder a otro lugar utilizando las mismas credenciales. Usted está detrás de OpenID no OAuth.

Sin embargo, es muy probable que en algún momento en el futuro desee ampliar esta interacción entre los dos sitios web y compartir no solo las credenciales sino también los datos entre los dos . Si implementas OpenID 2.0 ahora, necesitarás implementar OAuth en ese punto y tendrás un software de mal humor en el que hay dos tipos diferentes de credenciales flotando alrededor. Y eso es bastante propenso a errores.

Si opta por OpenID Connect, entonces, cuando los usuarios quieran compartir datos, ya habrá construido los andamios. Todo lo que deberá hacer es agregar un procesamiento adicional de la clave de valet y su aplicación estará limpia.

Por supuesto, es solo probable que en algún momento en el futuro la interacción entre los sitios web deberá aumentar. Y evaluar esta semejanza va más allá de la información que se puede escribir en una discusión sobre la comparación de las ventajas y desventajas de los dos protocolos. Sin embargo, prefiero tener un as en el hoyo para cuando llegue una situación así, en lugar de arriesgarme a terminar con una extensión fea y propensa a errores.

    
respondido por el grochmal 05.03.2017 - 03:33
fuente

Lea otras preguntas en las etiquetas