基于ngx_http_auth_request_module的Nginx反向代理LDAP认证。Golang实现
usageBuildfromsource# git clone https://github.com/shanghai-edu/nginx-ldap-auth# go get ./...# chmod +x control# ./control build# ./control pack这里会pack出一个tar包,拿去部署即可也可以直接从 release 下载编译好的版本
Install# tar -zxvf nginx-ldap-auth-0.1.tar.gz # cp nginx.conf /etc/nginx/nginx.conf# mv cfg.example.json cfg.json // and change it # service nginx reload# ./control start根据自己的实际配置情况修改cfg.json
{ // ldap config "ldap": { "addr": "ldap.example.org:389", "baseDn": "dc=example,dc=org", "bindDn": "cn=manager,dc=example,dc=org", "bindPass": "password", "authFilter": "(&(uid=%s))", "attributes": ["uid", "cn", "mail"], "tls": false, "startTLS": false }, // control config "control":{ "ipAcl":{ "deny":["127.0.0.1","192.168.0.0/24","192.168.1.0-192.168.1.255"], // 这些 IP 会被直接干掉 "direct":[] // 直通的 IP 不需要认证 }, "timeAcl":{ "deny":["00:00-08:00","17:00-23:59"], // 这些时间范围的访问会被 deny "direct":[] // 这些时间访问会直通 }, "allowUser":["user1"] // 允许认证通过的用户名,如果允许所有的 LDAP 用户通过认证,那么这里留空。 }, "http": { "debug":false, "ips":["127.0.0.1"], // 调用 API 所信任的 IP 范围 "listen": "0.0.0.0:8080" }}
评论