Untuk menyiapkan otorisasi melalui ESIA, kita perlu
nginx sendiri dan plugin
-nya sesi terenkripsi ,
header-lebih ,
auth_request ,
uuid4 ,
set-misc ,
echo ,
json ,
tanda ,
jwt . (Saya memberi tautan ke garpu saya, karena saya membuat beberapa perubahan yang tidak dapat didorong ke repositori asli sejauh ini. Anda juga dapat menggunakan
gambar yang sudah jadi .)
Untuk memulai, mari kita atur
encrypted_session_key "abcdefghijklmnopqrstuvwxyz123456";
Selanjutnya, untuk berjaga-jaga, nonaktifkan header otorisasi
more_clear_input_headers Authorization;
Sekarang kami melindungi semuanya dengan otorisasi
auth_request /auth; location =/auth { internal; set_decode_base64 $auth_decode $cookie_auth;
Untuk pengguna yang berwenang, kami menampilkan konten dari folder mereka
location / { alias html/$remote_user/; }
Dan dengan tidak adanya otorisasi, kami mengalihkan ke ESIA
error_page 401 = @error401; location @error401 { set $client_id ;
Setelah otorisasi yang berhasil dari pengguna di ESIA, ia dialihkan ke alamat kembali
location =/login { auth_request off;