لإعداد التفويض من خلال ESIA ، نحتاج إلى
nginx بحد ذاته
وجلساته الإضافية
المشفرة ،
والمزيد من الرؤوس ،
auth_request ،
uuid4 ،
set-misc ،
echo ،
json ،
sign ،
jwt . (لقد قدمت روابط إلى شوكة بلدي ، لأنني أجريت بعض التغييرات التي تعذر دفعها إلى المستودعات الأصلية حتى الآن. يمكنك أيضًا استخدام
الصورة الجاهزة .)
للبدء ، دعنا نضبط
encrypted_session_key "abcdefghijklmnopqrstuvwxyz123456";
بعد ذلك ، فقط في حالة تعطيل رأس التفويض
more_clear_input_headers Authorization;
الآن نحن نحمي كل شيء بإذن
auth_request /auth; location =/auth { internal; set_decode_base64 $auth_decode $cookie_auth;
للمستخدمين المصرح لهم ، نعرض المحتوى من مجلدهم
location / { alias html/$remote_user/; }
وفي غياب الترخيص ، نعيد التوجيه إلى ESIA
error_page 401 = @error401; location @error401 { set $client_id ;
بعد التفويض الناجح للمستخدم في ESIA ، تتم إعادة توجيهه إلى عنوان المرسل
location =/login { auth_request off;