Para preparar a autorização através da ESIA, precisamos do próprio
nginx e de seus plugins
sessão criptografada ,
cabeçalhos-mais ,
auth_request ,
uuid4 ,
set-misc ,
echo ,
json ,
sign ,
jwt . (Forneci links para meus garfos, porque fiz algumas alterações que até agora não puderam ser enviadas para os repositórios originais. Você também pode usar a imagem
pronta .)
Para começar, definimos
encrypted_session_key "abcdefghijklmnopqrstuvwxyz123456";
Em seguida, por precaução, desative o cabeçalho da autorização
more_clear_input_headers Authorization;
Agora protegemos tudo com autorização
auth_request /auth; location =/auth { internal; set_decode_base64 $auth_decode $cookie_auth;
Para usuários autorizados, mostramos o conteúdo da pasta
location / { alias html/$remote_user/; }
E, na falta de autorização, redirecionamos para a ESIA
error_page 401 = @error401; location @error401 { set $client_id ;
Após a autorização bem-sucedida do usuário na ESIA, ele é redirecionado para o endereço de retorno
location =/login { auth_request off;