Um die Autorisierung über ESIA vorzubereiten, benötigen wir
nginx selbst und seine Plugins
verschlüsselte Sitzung ,
Header-more ,
auth_request ,
uuid4 ,
set-misc ,
echo ,
json ,
sign ,
jwt . (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 .)
Zunächst setzen wir
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 Genehmigung leiten wir an ESIA weiter
error_page 401 = @error401; location @error401 { set $client_id ;
Nach erfolgreicher Autorisierung des Benutzers in ESIA wird er an die Absenderadresse weitergeleitet
location =/login { auth_request off;