Pour préparer l'autorisation via ESIA, nous avons besoin de
nginx lui-même et de ses plugins
session cryptée ,
headers-more ,
auth_request ,
uuid4 ,
set-misc ,
echo ,
json ,
sign ,
jwt . (J'ai donné des liens vers mes fourches, car j'ai apporté des modifications qui n'ont pas encore été entassées dans les référentiels d'origine. Vous pouvez également utiliser l'
image prête à l'
emploi .)
Pour commencer, réglons
encrypted_session_key "abcdefghijklmnopqrstuvwxyz123456";
Ensuite, juste au cas où, désactivez l'en-tête d'autorisation
more_clear_input_headers Authorization;
Maintenant, nous protégeons tout avec autorisation
auth_request /auth; location =/auth { internal; set_decode_base64 $auth_decode $cookie_auth;
Pour les utilisateurs autorisés, nous affichons le contenu de leur dossier
location / { alias html/$remote_user/; }
Et en l'absence d'autorisation, nous redirigeons vers ESIA
error_page 401 = @error401; location @error401 { set $client_id ;
Après autorisation réussie de l'utilisateur dans ESIA, il est redirigé vers l'adresse de retour
location =/login { auth_request off;