nginx实现ldap认证

1、安装依赖。

yum -y install openldap-devel
yum install pcre pcre-devel -y
yum -y install openssl openssl-devel
yum groupinstall "Development Tools" -y

2、下载nginx-auth-ldap模块。

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

3、下载tengine压缩包。

wget http://tengine.taobao.org/download/tengine-2.2.2.tar.gz

4、编译安装tengine。

tar -xf tengine-2.2.2.tar.gz
cd tengine-2.2.2
./configure
make && make install
tengine默认安装目录为:/usr/loca/nginx.

5、编译nginx ldap模块。

假设此处ldap认证模块文件目录为:/usr/local/nginx-auth-ldap.

编译nginx ldap认证模块
cd /usr/loca/nginx/sbin
./dso_tool --add-module=/usr/local/nginx-auth-ldap

6、加载nginx ldap模块。

vim nginx.conf

添加dso动态模块加载。
events {
  worker_connections  1024;
}
dso {
  load ngx_http_auth_ldap_module.so;
}

7、配置nginx ldap认证。

以下两段配置均在http段进行配置。
配置ldap认证服务器信息.

ldap_server xxx-ldap {
    url ldap://ldap服务器ip:port/DC=xxx,DC=com?cn?sub?(objectClass=person);
    binddn "cn=xxx,dc=xxx,dc=xxx";
    binddn_passwd "binddn密码";
    group_attribute uniquemember;
    group_attribute_is_dn on;
    require valid_user;
}
配置location段使用ldap认证.

server {
  listen       80;
  server_name  localhost;
  location /status {
    stub_status on;
    auth_ldap "Forbidden";
    auth_ldap_servers xxx-ldap;
}
此处ldap认证使用cn作为用户名进行认证。

 

posted @ 2018-08-13 20:06  运维小兵  阅读(3327)  评论(0编辑  收藏  举报