要准备中央授权服务,我们需要
nginx本身及其插件
cryptod -session ,
echo ,
headers-more ,
auth_request ,
eval ,
set-misc 。 (我提供了到fork的链接,因为我做了一些尚未塞入原始存储库的更改。您还可以使用
现成的图像 。)
对于服务器部分,将令牌生成从
ESIA ,
基本或
LDAP授权添加到服务器配置中
location =/service { set_decode_base64 $auth_decode $cookie_auth;
和令牌验证
location =/serviceValidate { set_unescape_uri $token_unescape $arg_token;
在客户端服务器的配置中,我们首先设置
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/; }
在没有授权的情况下,我们将重定向到中央授权服务
error_page 401 = @error401; location @error401 { set_escape_uri $request_uri_escape $request_uri;
成功授权后,中央授权服务会将我们重定向到指定的
location =/login { eval $auth {