Nginx接入LDAP

news/2024/11/6 16:27:11/文章来源:https://www.cnblogs.com/wangyuanguang/p/18530487

一、nginx添加ldap模块

接入ldap,nginx服务需要添加nginx-auth-ldap-master模块,我是用的yum安装的nginx,没有这个模块

1.1 查看nginx现有模块

]# nginx -V
nginx version: nginx/1.24.0
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)
built with OpenSSL 1.0.2k-fips  26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-compat --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-mail --with-mail_ssl_module --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -fPIC' --with-ld-opt='-Wl,-z,relro -Wl,-z,now -pie'

1.2 下载相同版本的1.24.0的nginx

]# cd /root/soft
]# wget https://nginx.org/download/nginx-1.24.0.tar.gz
## 解压
]# tar -zxvf nginx-1.24.0.tar.gz

1.3 下载模块

]# cd /root/soft/nginx-1.24.0
]# git clone https://github.com/kvspb/nginx-auth-ldap.git

1.4 编译模块

]# ./configure --add-module=/root/soft/nginx-1.24.0/nginx-auth-ldap --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-compat --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-mail --with-mail_ssl_module --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -fPIC' --with-ld-opt='-Wl,-z,relro -Wl,-z,now -pie'
编译
]# make

1.5 替换原有的nginx服务命令

]# mv /usr/sbin/nginx /usr/sbin/nginx.bak20240123
]# cp -a objs/nginx /usr/sbin/nginx
]# nginx -V
nginx version: nginx/1.24.0
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)
built with OpenSSL 1.0.2k-fips  26 Jan 2017
TLS SNI support enabled
configure arguments: --add-module=/root/soft/nginx-1.24.0/nginx-auth-ldap --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-compat --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-mail --with-mail_ssl_module --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -fPIC' --with-ld-opt='-Wl,-z,relro -Wl,-z,now -pie'

二、配置ldap

2.1 在nginx的http域下加入ldap的配置

    ldap_server ngldap {url ldap://192.168.100.101:389/dc=wyg,dc=com?uid?sub?(objectClass=*);#uid可以换成cnbinddn "cn=admin,dc=wyg,dc=com";binddn_passwd "123456";group_attribute memberuid;##与require valid_user一起用
#        group_attribute member;##与require group一起用group_attribute_is_dn on;require valid_user;  ##不做限制,使用所有"cn=admin,dc=wyg,dc=com"的用户都可以登录,注释掉require group配置项
#        require group "cn=jenkins,ou=Group,dc=wyg,dc=com"; ##限制在ou=jenkins的组织内的members用户}

2.2 在server或者localtion中添加ldap_server项

代理http://192.168.100.101:666/的示例

server {listen 8666;server_name localhost;# Web logaccess_log /var/log/nginx/h5ai.log;error_log /var/log/nginx/h5ai-error.log;# Proxy Settingslocation / {auth_ldap "Forbidden";auth_ldap_servers ngldap;proxy_pass http://192.168.100.101:666/;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-Proto $scheme;proxy_set_header X-Forwarded-Host $server_name;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}
}

默认的示例

server {listen 8000;server_name localhost;location / {root html;index index.html index.htm;auth_ldap "Forbidden";auth_ldap_servers ngldap;}
}

2.3 检查配置

]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

2.4 重启nginx

]# nginx -s relaod

2.5 验证

如下需要使用ldap用户登录

image-20240517154910998

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/827719.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

精准、智能、高效:AI平台如何提升医疗数据处理效率50%

思通数科的大模型是一款集成自然语言处理、多模态分析与知识图谱技术的智能系统,专为提升行业信息处理效率和决策支持而设计。该模型依托深度学习与数据驱动,能够在合同审查、智能问答、医疗文本处理等场景中实现精准的文本分类、信息抽取与风险识别。特别在多模态数据处理方…

MySQL 8.0 执行COUNT()很慢原因分析

MySQL 8.0 执行COUNT()很慢原因分析 1.1 问题描述 线上 MySQL8.0.32 环境在执行 SELECT COUNT (1) FROM t0 获取表行数很慢,同样场景下该 SQL 在 MySQL5.7 环境很快就能拿到结果 1.2 问题复现 测试版本:8.0.25 MySQL Community Server - GPL 和 5.7.21-log MySQL Community S…

DAC控制LM358输出4~20ma电路

在带负载0~800Ω左右,电流并不会发生偏差使用注意事项有些时候LM358内部的运放不一定都使用到在使用画PCB和原理图的时候要注意输入端不能直接接地,否则芯片会发烫。并且给出TI的LM358部分说明以及未使用时的处理方法。

mac 关闭所有浏览器的前进后退功能

系统偏好设置 => 触控板 => 更多手势 => 在页面之间轻扫 取消勾选即可。如下图所示:

科陆电子:从卷到赢,连接型CRM助力营销服全链路质、效双飞跃

深圳市科陆电子科技股份有限公司是美的集团旗下企业,于1996年在深圳成立,主板上市企业(2007年在深交所上市,股票代码002121)、国家高新技术企业,拥有国家认定企业技术中心和多个国家级、省级技术中心、实验室。公司主营业务聚焦在智能电网和新型电化学储能两大板块,战略愿景是成…

bug解决记录:前端解密后的中文是问号的解决办法

最近的项目中,遇到了这个问题,我们的容灾环境要进行演练,但是进行切换到容灾环境的时候,发现返回的中文都是?问号 解决思路: 1.先看下接口的请求头和响应头是不是指定了这个编码格式。排查出来发现都是有的 2.看下解密和加密是否有指定编码格式设置字符 byte[] bytes = s…

sqlserver 数据库连接异常 SqlClient.SqlException (0x80090325): 证书链是由不受信任的颁发机构颁发的

异常 解决方案: 数据库连接增加“TrustServerCertificate=True;” 完整连接Server=.;Database=TestDb;User Id=sa;Password=aaaaa;Encrypt=True;TrustServerCertificate=True;TrustServerCertificate=True 表示这将强制客户端在不验证的情况下信任证书参考

Frequent Directions

目录概Frequent DirectionsFrequent Directions over Slidding Windows代码Ghashami M., Liberty E., Phillips J. M. and Woodruff D. P. Frequent directions : Simple and deterministic matrix sketching. 2015.Yin H., Wen D., Li J., Wei Z., Zhang X., Huang Z. and Li …

Nuxt.js 应用中的 prerender:routes 事件钩子详解

title: Nuxt.js 应用中的 prerender:routes 事件钩子详解 date: 2024/11/6 updated: 2024/11/6 author: cmdragon excerpt: prerender:routes 是 Nuxt.js 中的一个钩子,允许开发者在预渲染过程中扩展要预渲染的路由列表。这对于静态站点生成(SSG)尤为重要,开发者可以根据…

Springboot 容器启动之后初始化操作

在项目开发中,有时候会在 Spring 应用启动后做一些初始化的操作,比如数据字典缓存,状态通知,配置读取等操作。 SpringBoot 提供了多种方式可以让开发者在容器启动后来执行一个任务:使用 @PostConstruct 注解 通过 ApplicationListener 监听SpringBoot 启动过程中的发布的 …

RAID

1.RAIDRAID0:最少1块硬盘、总容量=硬盘数x硬盘容量、没有数据冗余备份。坏1块则全部数据坏。但是读写性能很高RAID1:2块硬盘、总容量 = 总硬盘容量的一半、数据镜像备份。坏1块硬盘不影响全盘存储。读取性能提升,但写入性能略有降低RAID5:至少需要3块硬盘组成、总容量 = n-…