Um den zentralen Autorisierungsdienst vorzubereiten, benötigen wir
nginx selbst und seine Plugins
verschlüsselte Sitzung ,
Echo ,
Header-more ,
auth_request ,
eval ,
set-misc . (Ich habe Links zu meinen Gabeln angegeben, da ich einige Änderungen vorgenommen habe, die bisher nicht in die ursprünglichen Repositorys übernommen werden konnten. Sie können auch das
vorgefertigte Image verwenden .)
Fügen Sie für den Serverteil der Serverkonfiguration eine Token-Generierung aus der
ESIA- ,
Basis- oder
LDAP- Autorisierung hinzu
location =/service { set_decode_base64 $auth_decode $cookie_auth;
und Token-Validierung
location =/serviceValidate { set_unescape_uri $token_unescape $arg_token;
Und in der Konfiguration des Client-Servers setzen wir zuerst
encrypted_session_key "abcdefghijklmnopqrstuvwxyz123456";
Deaktivieren Sie als Nächstes für alle Fälle den Autorisierungsheader
more_clear_input_headers Authorization;
Jetzt schützen wir alles mit Genehmigung
auth_request /auth; location =/auth { internal; set_decode_base64 $auth_decode $cookie_auth;
Für autorisierte Benutzer zeigen wir Inhalte aus ihrem Ordner
location / { alias html/$remote_user/; }
Und ohne Autorisierung leiten wir an den zentralen Autorisierungsdienst weiter
error_page 401 = @error401; location @error401 { set_escape_uri $request_uri_escape $request_uri;
Nach erfolgreicher Autorisierung leitet uns der zentrale Autorisierungsdienst an die angegebene weiter
location =/login { eval $auth {