Untuk menyiapkan layanan otorisasi pusat, kita perlu
nginx sendiri dan
sesi terenkripsi ,
gema ,
header-more ,
auth_request ,
eval ,
set-misc plugins . (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 bagian server, tambahkan pembuatan token ke konfigurasi server dari
ESIA , otorisasi
dasar atau
LDAPlocation =/service { set_decode_base64 $auth_decode $cookie_auth;
dan validasi token
location =/serviceValidate { set_unescape_uri $token_unescape $arg_token;
Dan dalam konfigurasi server klien, pertama-tama 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 layanan otorisasi pusat
error_page 401 = @error401; location @error401 { set_escape_uri $request_uri_escape $request_uri;
Setelah otorisasi berhasil, layanan otorisasi pusat mengarahkan kami ke yang ditentukan
location =/login { eval $auth {