Autenticación en el servidor cliente

1

Tengo los siguientes requisitos para el sistema:

  1. Mis administradores se autentican en los servidores cliente
  2. sobre http
  3. Servidor de autorización central

Mi solución se basa en O-Auth:

  1. el usuario se redirige al servidor de autenticación para comprobar sus credenciales (certificado / contraseña), el servidor guarda el token de autenticación en db con la marca de tiempo y el ID de usuario
  2. el servidor redirige al usuario al cliente con el token de autenticación en la url
  3. el cliente se conecta al servidor a través de https que pasan el identificador de autenticación, es secreto e id
  4. el servidor comprueba si los credenciales del cliente están bien, y si tiene el token de autenticación no caducado en la base de datos (el token de autenticación se elimina)
  5. si es así, toma las reclamaciones de los usuarios y las devuelve al servidor del cliente
  6. el servidor cliente luego usa una cookie para autenticar al usuario

¿Es buena idea? ¿Quizás algo como esto ya esté disponible (estoy usando C # mvc)?

¿Pasar el token de autenticación a través del gran riesgo de http?

    
pregunta user83288 12.08.2015 - 18:12
fuente

1 respuesta

2

Esto no es una buena idea. El uso de los protocolos OAuth 2.0 o OAuth 2.0 para autenticación no es correcto. OAuth 2.0 fue diseñado como un protocolo de Autorización . El uso de OAuth 2.0 como protocolo de autenticación conlleva varias implicaciones de seguridad. OpenID Connect fue desarrollado para corregir estas deficiencias en OAuth 2.0, por lo que OAuth 2.0 se puede usar para la autenticación. La fundación OpenID Connect recomienda utilizar enlace para OpenID Connect en C #.

Además, si termina implementando su solución, pasar el token de autenticación mediante HTTP y no HTTPS es un gran riesgo para la seguridad. Si un atacante puede interceptar el token en transmisión mientras el servidor está redirigiendo al usuario al cliente, el atacante puede usar el token para autenticarse como el usuario sin necesidad de la contraseña del usuario. Cada parte de un flujo de OAuth 2.0 tiene que suceder a través de HTTPS.

    
respondido por el Justin Moore 12.08.2015 - 21:28
fuente

Lea otras preguntas en las etiquetas