Para preparar el servicio de autorización central, necesitamos
nginx y sus complementos
encriptado-sesión ,
echo ,
encabezados-más ,
auth_request ,
eval ,
set-misc . (Di enlaces a mis bifurcaciones, porque hice algunos cambios que hasta ahora no se pudieron insertar en los repositorios originales. También puede usar la imagen
preparada ).
Para la parte del servidor, agregue la generación de tokens a la configuración del servidor desde
ESIA , autorización
básica o
LDAPlocation =/service { set_decode_base64 $auth_decode $cookie_auth;
y validación de token
location =/serviceValidate { set_unescape_uri $token_unescape $arg_token;
Y en la configuración del servidor cliente, primero establecemos
encrypted_session_key "abcdefghijklmnopqrstuvwxyz123456";
A continuación, por si acaso, deshabilite el encabezado de autorización
more_clear_input_headers Authorization;
Ahora protegemos todo con autorización
auth_request /auth; location =/auth { internal; set_decode_base64 $auth_decode $cookie_auth;
Para usuarios autorizados, mostramos contenido de su carpeta
location / { alias html/$remote_user/; }
Y en ausencia de autorización, redirigimos al servicio de autorización central
error_page 401 = @error401; location @error401 { set_escape_uri $request_uri_escape $request_uri;
Después de una autorización exitosa, el servicio de autorización central nos redirige a la especificada
location =/login { eval $auth {