Nginx 集成 OpenLDAP

基于nginx-auth-ldap

LDAP group需要使用groupOfUniqueNames用户组属性,请参考上一遍文章进行配置

1.1 下载模块包

1
# git clone https://github.com/kvspb/nginx-auth-ldap.git

1.2 nginx编译安装的时候,把模块编译进去。

1
2
# ./configure --prefix=/work/admin/nginx --add-module=path_to_http_auth_ldap_module
make & make install

1.3 在nginx主配置文件的http标签中添加如下代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
http {
ldap_server openldap {
auth_ldap_cache_enabled on;
auth_ldap_cache_expiration_time 10000;
auth_ldap_cache_size 1000;
connect_timeout 5s;
bind_timeout 5s;
request_timeout 5s;
satisfy any;
url ldap://192.168.48.138:389/dc=sys,dc=com?uid?sub?(objectClass=person);
binddn "ou=nginx,ou=groups,cn=admin,dc=sys,dc=com";
binddn_passwd "abc.nginx";
group_attribute uniquemember;
group_attribute_is_dn on;
require group "cn=nginx,ou=nginx,ou=groups,dc=sys,dc=com";
}
}

group_attribute uniquemember这个是验证的时候,访问组中的属性;require group过滤cn=nginx组中的用户允许访问。

更多配置参数参考:https://github.com/kvspb/nginx-auth-ldap/blob/master/example.conf

1.4 然后再起一个可以访问的server进行验证

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
server {
listen 8000;
server_name localhost;
access_log logs/prometheus.log;
client_body_timeout 21600;
client_max_body_size 1024m;
send_timeout 60;
client_header_buffer_size 16k;
large_client_header_buffers 4 64k;
proxy_headers_hash_bucket_size 1024;
proxy_headers_hash_max_size 4096;
proxy_read_timeout 60;
proxy_send_timeout 60;

location / {
auth_ldap "Forbidden";
auth_ldap_servers openldap;
proxy_pass http://192.168.48.132:9090;
proxy_redirect off;
}
}

1.5验证权限

图片1

-------------本文结束感谢您的阅读-------------