OpenSso ejecutándose detrás del problema de redirección de proxy inversa
-
26-10-2019 - |
Pregunta
Estamos utilizando OpenSSO para autenticar a los usuarios en nuestras aplicaciones. Cada aplicación vive detrás del proxy inverso para que OpenSSO y cuando el usuario se autenticó, el nombre de usuario de SSO solía crear sesión de usuario en la aplicación.
OpenSSO implementado en el embarcadero en el puerto 8080 en el host admin.mynet, por lo que cuando se ejecuta sin proxy inverso es accesible a través de HTTP Admin.Mynet: 8080/OpenSSO
El servidor SSO debe ser accesible a través de un proxy inverso solamente y a través de HTTPS en el puerto 443, que sería traducido por Nginx a una resumen HTTP interna al puerto 8080. El nombre del host debe resolverse para proxy en lugar del servidor SSO. Por lo tanto, presionar HTTPS admin.mynet/OpenSso debería mostrar páginas SSO.
El problema es que tener esta configuración en funcionamiento, presionando https: //admin.mynet/opensso/ui/login SSO envía 302 con la ubicación http: //admin.mynet: 8080/opensso/ui/inicio de sesión. Por lo tanto, SSO no quiere manejar las solicitudes provenientes de
Solución
Suponiendo una dirección IP de 10.0.0.10 para admin.mynet, el siguiente bloque debería funcionar:
server {
listen 443;
server_name admin.mynet;
ssl on;
location / {
proxy_pass http://10.0.0.10:8080;
proxy_set_header X-Real-IP $remote_addr;
}
location /opensso {
proxy_pass http://10.0.0.10:8080;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host admin.mynet:8080;
}
}