location =/service { set_decode_base64 $auth_decode $cookie_auth; # set_decrypt_session $auth_decrypt $auth_decode; # if ($auth_decrypt) { # , encrypted_session_expires 60; # 1 (1 * 60 = 60) set_encrypt_session $token_encrypt $auth_decrypt; # set_encode_base64 $token_encode $token_encrypt; # set_escape_uri $token_escape $token_encode; # set_unescape_uri $service_unescape $arg_service; # return 303 $service_unescape&token=$token_escape; # }
and check token location =/serviceValidate { set_unescape_uri $token_unescape $arg_token; # set_decode_base64 $token_decode $token_unescape; # set_decrypt_session $token_decrypt $token_decode; # return 200 $token_decrypt; # }
encrypted_session_key "abcdefghijklmnopqrstuvwxyz123456";
more_clear_input_headers Authorization;
auth_request /auth; location =/auth { internal; set_decode_base64 $auth_decode $cookie_auth; # set_decrypt_session $auth_decrypt $auth_decode; # if ($auth_decrypt = "") { return 401 UNAUTHORIZED; } # , more_set_input_headers "Authorization: Basic $auth_decrypt"; # basic ( $remote_user) echo -n OK; # }
location / { alias html/$remote_user/; }
error_page 401 = @error401; location @error401 { set_escape_uri $request_uri_escape $request_uri; # set_escape_uri $service_escape $scheme://$server_name:$server_port/login?request_uri=$request_uri_escape; # return 303 https://$cas/service?service=$service_escape; # , $cas - }
location =/login { eval $auth { # ( ) proxy_set_header X-Real-IP $remote_addr; # proxy_pass $scheme://$cas:$server_port/serviceValidate?token=$arg_token; # } if ($auth = "") { return 401 UNAUTHORIZED; } # , encrypted_session_expires 43200; # 12 (12 * 60 * 60 = 43200) set_encrypt_session $auth_encrypt $auth; # - set_encode_base64 $auth_encode $auth_encrypt; # add_header Set-Cookie "Auth=$auth_encode; Max-Age=43200"; # 12 (12 * 60 * 60 = 43200) set $arg_request_uri_or_slash $arg_request_uri; # set_if_empty $arg_request_uri_or_slash "/"; # , set_unescape_uri $request_uri_unescape $arg_request_uri_or_slash; # return 303 $request_uri_unescape; # }
Source: https://habr.com/ru/post/456634/
All Articles