Identificar de forma segura a los clientes mediante la aplicación web

3

Tengo un servicio web S que proporciona ciertos servicios. Hay dos aplicaciones web, A1 y A2, ambas en diferentes servidores dentro de la misma VPN, en las que confío y deseo otorgar acceso a mi servicio web.

+------+     HTTPS   +-----+     HTTPS   +------+
|  A1  | <---------> |  S  | <---------> |  A2  |
+------+             +-----+             +------+
   ^                                         ^       VPN
. .|. . . . . . . . . . . . . . . . . . . . .|. . . . . . . .
   |                                         |       Internet
   |          +----------+                   |
   |        +----------+ |-------------------+
   +--------| Browsers |-+
            +----------+

Sin embargo, quiero poder distinguir en S entre los clientes A1 y A2. Es posible que A1 no tenga los mismos privilegios en S que en A2. Además, no puedo estar seguro de que no haya alguna otra aplicación web A3 en torno a ese tipo malvado instalado en la misma VPN. Entonces, el problema básico es que S necesita saber con quién está hablando.

Algunas aclaraciones más: A1 está basado en JavaScript. Un JavaScript en un navegador está hablando con el servidor web A1. El JavaScript nunca está hablando directamente con S, sin embargo. El servidor web A1 tiene algunos medios para reenviar mensajes a S, por ejemplo, un script PHP simple. Probablemente no haya manera de evitar que los usuarios malvados se pongan en contacto con S a través de A1 de la misma manera que lo hace JavaScript. Para evitar el abuso de esto, S es un servicio basado en sesión que requiere un nombre de usuario y una contraseña para generar una clave de sesión. Los navegadores pasan la clave de sesión a A1 o A2, que luego la pasa a S.

La pregunta es: ¿Cómo puede S identificar de manera segura A1 y A2 y bloquear cualquier otra llamada?

    
pregunta digory doo 12.02.2015 - 08:45
fuente

1 respuesta

1

Defina reglas basadas en claves de API (algo así como RESTful API)

A1SA2

Si nadie corta la conexión https, las claves están bien. Ej: enlace

    
respondido por el user2379099 26.02.2015 - 02:13
fuente

Lea otras preguntas en las etiquetas