Solicitudes del servidor proxy + reenvío de información de autenticación de manera segura

2

Estamos utilizando PassportJS con un par de servidores Node.js. Passport es solo una biblioteca que es popular para la autenticación del servidor Node.js, pero tenemos algunas preguntas sobre cómo usar Passport con solicitudes "proxy". Mi pregunta principal es ¿cómo podemos (y deberíamos nosotros) enviar los encabezados y las cookies en la solicitud original a la solicitud de proxy?

Por ejemplo, hacemos una solicitud de cliente de navegador al servidor A, que a su vez hace una solicitud al servidor B, queremos que el mismo cliente se autentique de la misma manera en ambos servidores. Actualmente, si el cliente web realiza una solicitud directamente a ambos servidores, el cliente se autentica, pero si el cliente se autentica con A y luego A envía una solicitud completamente nueva al servidor B, entonces, por supuesto, esa segunda solicitud no contiene la información de autenticación. que se necesita para autenticar el cliente en el servidor B.

Teniendo en cuenta que somos propietarios de los servidores A y B, ¿deberíamos incluir los encabezados y las cookies de la solicitud original en nuestra solicitud del servidor A a B?

¿Se considera esto una buena práctica? Cualquier información sería útil, gracias

Le hice una pregunta similar a Jared Hannson de PassportJS fame:

enlace

Dada una buena respuesta aquí, podría copiarla allí

    
pregunta Alexander Mills 03.11.2015 - 02:30
fuente

1 respuesta

2

Esta pregunta es realmente una específica para sus necesidades comerciales.

En general, lo que has propuesto se hace comúnmente. Siempre se enfrenta al desafío de equilibrar la usabilidad con la seguridad. Tomemos Yahoo o Google por ejemplo. Lo autentican una vez y luego almacenan la información en una (o más) cookies que se pasan a otros sitios con los que se integran. Luego, mire la billetera de Yahoo (cuando era lo más importante para el pago en Internet a fines de los años 90 y principios de los 2000), se requería otra autenticación con credenciales diferentes. Ellos pensaron, y estoy de acuerdo, que esta parte de su infraestructura necesitaba una capa adicional que fuera del resto. Es decir, no confiaron en las credenciales del sitio principal.

Tenga en cuenta que ni Google ni Yahoo pasan las contraseñas de los usuarios en sus sitios ni las almacenan directamente en cookies o bases de datos. Más bien, establecen un sistema de verificación. Por ejemplo, el hash que se convierte en la cookie puede contener fragmentos de información que identifican al cliente del navegador, una fracción de la dirección de origen, tokens de autorización, ++++. Hay muchos esquemas suficientes.

Entonces, ¿la seguridad de su sitio necesita que el usuario realice la autenticación para los servidores A y B? Sólo tú puedes responder eso. Si la respuesta es negativa, debe confiar en el resultado de la autenticación del servidor A. Si su respuesta es afirmativa, autentíquese en ambos lugares.

    
respondido por el UDude 07.11.2015 - 17:05
fuente

Lea otras preguntas en las etiquetas