¿Podemos enviar un token de autenticación de formularios desde una API HMAC?

1

Tenemos una aplicación ASP.NET MVC utilizada por personas de otras organizaciones. Algunas de las funciones son accesibles a través de un formulario de inicio de sesión. Se puede acceder a otras funciones como métodos de API autenticados por SHA256-HMAC.

Tenemos dos clientes que solicitan algo como SSO para sus usuarios:

  • Los usuarios de un cliente inician sesión actualmente utilizando WebSeal . Ninguno de estos usuarios conoce sus contraseñas; el cliente las administra a través de nuestra API de administración de usuarios. No hemos tenido que hacer nada especial para estos usuarios hasta ahora, pero dicen que cuando deshabilitamos TLS1.0 en un futuro próximo, su configuración de WebSeal no funcionará más (no estoy seguro de por qué, ya que WebSeal parece ser compatible con TLS1). 2, pero confío en que estén bien informados).

  • Otro grupo pregunta si pueden omitir la página de inicio de sesión de formularios después de que sus usuarios hayan iniciado sesión en su propio portal.

Me pregunto si podemos satisfacer a ambos grupos al proporcionar una API autenticada por HMAC que devuelve un token de autenticación para el nombre de usuario proporcionado, que luego pueden usar para conectarse al sitio web. Crearíamos un rol (quizás llamado ClientAuthAdmin), y solo los miembros de ese rol (un usuario del sistema por cliente) estarían autorizados para llamar al método API.

Las preguntas que me he hecho sobre esto, y mis propias respuestas de seguridad para principiantes son:

  • ¿Está bien pasar un token de autenticación? Esta respuesta menciona el pasarlos como un beneficio de tokens de autenticación. Esta pregunta parece ser sobre haciendo algo similar.

  • ¿Está bien permitir que un usuario obtenga un token de autenticación para otro? No implica la divulgación de contraseñas. El único daño que puedo imaginar podría hacerse sería si el token de autenticación se utilizara para realizar una acción no realizada por el usuario autorizado. Evitar eso sería responsabilidad de la organización cliente.

  • ¿Esto funcionará para nuestros clientes? Todavía no lo he descubierto. Tendrían que obtener el token de nuestra API utilizando cualquier portal interno que estén usando, y luego adjuntarlo como una cookie a su solicitud de una de nuestras páginas web. Suena simple al menos, aunque todavía no he descubierto los detalles.

Mi pregunta es: ¿sería esto tan seguro como el inicio de sesión de nuestros formularios existentes?

    
pregunta OutstandingBill 31.07.2017 - 14:37
fuente

0 respuestas

Lea otras preguntas en las etiquetas