Inicio de sesión de flujo implícito desde SPA

1

Mirando el flujo implícito para iniciar sesión con enlace y enlace . El proceso comienza con el reenvío a una página de inicio de sesión del lado del servidor.

Soy consciente de que hay ventajas en no tener que realizar cambios en el SPA si se utilizan proveedores adicionales, pero ¿existen otras razones por las que se recomienda utilizar una página de inicio de sesión en el servidor? Parece que la implicación es que es más seguro, pero no entiendo por qué.

    
pregunta ChrisFletcher 04.04.2018 - 19:17
fuente

1 respuesta

1

Supongo que se refiere a un Flujo implícito OAuth 2.0 .

Creo que se está preguntando por qué necesita alejarse de su SPA para que el usuario autorice su aplicación (iniciando sesión y, por lo general, seleccionando los permisos para otorgar su solicitud).

OAuth, como protocolo, está diseñado para permitir que un tercero autentique la identidad de un usuario. Para usar Google OAuth como ejemplo, el usuario abandona su sitio y va a Google, por lo que no puede robar su contraseña ni realizar otras acciones en nombre del usuario. Abandonaron su sitio e ingresaron al sitio de su proveedor de identidad de confianza, en el que también confían implícitamente al permitirles autenticar la identidad de su usuario.

Si se está autenticando con su propio servidor, es posible que no sea necesario utilizar el protocolo OAuth. Solo permítales enviar su nombre de usuario y contraseña directamente. Ya confían en usted para manejar su nombre de usuario y contraseña al registrarse en su servicio.

Las únicas buenas razones que conozco para usar su propio proveedor de OAuth en su sitio son:

  • Centralización de la identidad en una arquitectura de microservicios
  • Exponer un proveedor de identidad para que lo utilicen terceros
  • Usar una solución de software preempaquetada como proveedor de identidad, para que no tenga que utilizar su propia solución de identidad y autenticación.

Editar: Aquí hay un mejor recurso en el flujo implícito. RFC 6749 Sección 4.2

Y aquí hay un diagrama de ascii-art de cómo funciona el flujo implícito. Tenga en cuenta que el servidor de autorización es claramente una entidad separada en este diagrama, y que el paso de autenticación se dirige hacia este servidor.

 +----------+
 | Resource |
 |  Owner   |
 |          |
 +----------+
      ^
      |
     (B)
 +----|-----+          Client Identifier     +---------------+
 |         -+----(A)-- & Redirection URI --->|               |
 |  User-   |                                | Authorization |
 |  Agent  -|----(B)-- User authenticates -->|     Server    |
 |          |                                |               |
 |          |<---(C)--- Redirection URI ----<|               |
 |          |          with Access Token     +---------------+
 |          |            in Fragment
 |          |                                +---------------+
 |          |----(D)--- Redirection URI ---->|   Web-Hosted  |
 |          |          without Fragment      |     Client    |
 |          |                                |    Resource   |
 |     (F)  |<---(E)------- Script ---------<|               |
 |          |                                +---------------+
 +-|--------+
   |    |
  (A)  (G) Access Token
   |    |
   ^    v
 +---------+
 |         |
 |  Client |
 |         |
 +---------+
    
respondido por el nbering 05.04.2018 - 06:05
fuente

Lea otras preguntas en las etiquetas