LDAP基础:3:通过389端口对openldap进行操作
在前面的文章中介绍了如何使用docker快速搭建ldap服务并进行确认,以及在java中如何使用jndi对ldap进行访问,但是按照官方github上的示例,由于没有将端口暴露出来,所以在宿主机对容器内运行的openldap服务进行访问只能通过容器IP,而且前提是宿主机和容器是能够互通的。但是只需要将服务的端口暴露出来,在外部也可以直接访问了。
端口及说明
缺省ldap使用389端口,加密使用636
启动
使用 -p将389端口进行暴露
docker run --name openldap -p 389:389 --detach osixia/openldap:1.2.2
确认宿主机IP
liumiaocn:openldap liumiao$ ifconfig |grep 192inet 192.168.31.242 netmask 0xffffff00 broadcast 192.168.31.255
liumiaocn:openldap liumiao$
连接方式1: 通过ldapuri
通过ldapsearch的ldapuri进行访问,形式如下:
ldapsearch -x -H ldap://IP地址或者可解析的地址:端口 -b 指定的baseDN -D 绑定的服务器的DN -w 简单认证方式的密码
- 使用示例
liumiaocn:openldap liumiao$ ldapsearch -x -H ldap://192.168.31.242:389 -b dc=example,dc=org -D "cn=admin,dc=example,dc=org" -w admin
# extended LDIF
#
# LDAPv3
# base <dc=example,dc=org> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
## example.org
dn: dc=example,dc=org
objectClass: top
objectClass: dcObject
objectClass: organization
o: Example Inc.
dc: example# admin, example.org
dn: cn=admin,dc=example,dc=org
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator
userPassword:: e1NTSEF9TE5GaU0rZVZXNGlRR3FDdzQ5UzRMNjRlb2xjMjY5OU4=# search result
search: 2
result: 0 Success# numResponses: 3
# numEntries: 2
liumiaocn:openldap liumiao$
另外,如果端口为389,在ldapuri中可以省略,上述例子则变为:
ldapsearch -x -H ldap://192.168.31.242 -b dc=example,dc=org -D “cn=admin,dc=example,dc=org” -w admin
连接方式2: 使用hostname和ip的方式
这里继续使用ldapsearch作为连接验证方式,除了-H指定ldapuri,也可以直接通过-h和-p来指定hostname和ip的方式进行
ldapsearch -x -h IP地址或者可解析的地址 -p 端口 -b 指定的baseDN -D 绑定的服务器的DN -w 简单认证方式的密码
- 使用实例
liumiaocn:openldap liumiao$ ldapsearch -x -h 192.168.31.242 -p 389 -b dc=example,dc=org -D "cn=admin,dc=example,dc=org" -w admin
# extended LDIF
#
# LDAPv3
# base <dc=example,dc=org> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
## example.org
dn: dc=example,dc=org
objectClass: top
objectClass: dcObject
objectClass: organization
o: Example Inc.
dc: example# admin, example.org
dn: cn=admin,dc=example,dc=org
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator
userPassword:: e1NTSEF9TE5GaU0rZVZXNGlRR3FDdzQ5UzRMNjRlb2xjMjY5OU4=# search result
search: 2
result: 0 Success# numResponses: 3
# numEntries: 2
liumiaocn:openldap liumiao$
同样,port为389时也可以省略,上述方式可以变为:
ldapsearch -x -h 192.168.31.242 -b dc=example,dc=org -D “cn=admin,dc=example,dc=org” -w admin
连接方式3: 使用JNDI方式连接
使用java的JNDI可以对LDAP进行操作,前面的文章中给除了简单的示例代码进行验证,详细参看:
- LDAP基础:2:使用Java验证OpenLdap用户登录:https://blog.csdn.net/liumiaocn/article/details/83720115
这里接着使用对刚刚启动的OpenLdap容器的服务进行连接确认, 首先确认连接信息
- Ldap使用的IP: 192.168.31.242
- 用户名(DN):cn=admin,dc=example,dc=org
- 用户密码:admin
使用IP+port的ldapuri
liumiaocn:~ liumiao$ java LdapDemo "192.168.31.242:389" "cn=admin,dc=example,dc=org" "admin"
IPAdress: 192.168.31.242:389
Username: cn=admin,dc=example,dc=org
Password: admin
env setting
login verification begins...
login successfully.
liumiaocn:~ liumiao$
port为389的情况下也可以省略
liumiaocn:~ liumiao$ java LdapDemo "192.168.31.242" "cn=admin,dc=example,dc=org" "admin"
IPAdress: 192.168.31.242
Username: cn=admin,dc=example,dc=org
Password: admin
env setting
login verification begins...
login successfully.
liumiaocn:~ liumiao$
总结
这样可以看到,一个通过docker方式快速启动的OpenLdap服务,简单的使用方式已经就绪,可以通过ldapsearch从客户端进行访问,也可以通过代码的编程接口进行访问。
LDAP基础:3:通过389端口对openldap进行操作相关推荐
- LDAP基础安装与简单入门使用
0x00 前言简述 主要产品 基本模型 应用场景 0x01 环境安装 基于 yum 安装 基于 Docker 安装 0x02 LDAP配置&命令 slapd 命令 ldapsearch 命令 ...
- 端口基础常识大全+常用端口对照
端口基础常识大全+常用端口对照 [color=Red][size=4][b]端口基础常识大全[/b][/size][/color] [color=Green]1) 公认端口(Well Known Po ...
- LDAP基础:8:ldap用户密码确认和修改
ldap用户密码的修改可以使用ldappasswd命令,也可以使用万能的ldapmodify结合ldif文件来实现,但所修改的都是普通的用户,cn=admin的管理员用户的修改一般可以通过slappa ...
- LDAP基础功能(重点为搜索:ldapsearch)
LDAP基础功能(重点为搜索:ldapsearch) 主目录http://407711169.blog.51cto.com/6616996/1439944 一.基本操作 连接 连接操作作用于应用程序与 ...
- 网络工程基础- -mac地址以及端口安全
网络工程基础-mac地址以及端口安全 前言 MAC地址(英语:Media Access Control Address),直译为媒体存取控制位址,也称为局域网地址(LAN Address)物理地址(P ...
- 计算机AL教程笔记,计算机系统基础学习笔记(2)-数据的位运算操作
C语言的位运算操作包括两类,逻辑运算操作和逻辑移位操作. 逻辑运算操作 C语言提供了四种按位逻辑操作符,分别是按位取反,按位与,按位或,按位异或.在编译时,编译器会根据操作数的宽度分别转换为不同的指令 ...
- c# 找出目录下的所有子目录_C# 基础知识系列- 14 IO篇 文件的操作(2)
前接上一篇内容. 如果是第一次捧场的小伙伴,为了您阅读的连贯性,烦请扫一眼<C# 基础知识系列- 14 IO篇 文件的操作(1)>.本篇是IO之文件操作的第二篇,介绍一下目录和路径的相关类 ...
- 2022施工员-土建方向-通用基础(施工员)理论题库模拟考试平台操作
题库来源:安全生产模拟考试一点通公众号小程序 2022施工员-土建方向-通用基础(施工员)考试题库为施工员-土建方向-通用基础(施工员)模拟考试题库仿真模拟预测!2022施工员-土建方向-通用基础(施 ...
- 数据库应用程序开发基础篇—— .NET中SQL Server数据库的操作C#篇之一
数据库应用程序开发基础篇-- .NET中SQL Server数据库的操作C#篇之一 写在前面:前面介绍了数据库系统的基本概念,SQl语句基本使用方法,接下来通过学习具体语言和具体数据库结合的应用开发来 ...
最新文章
- Handler消息机制(十):HandlerThread源码解析
- 【翻译】24款界面精美的免费UI工具包
- 电子词典系统vc++_电子词典系统
- Oracle一定有sqlplus吗,oracle sqlplus执行sql文件
- 盘点三个JavaScript案例——实现限时秒杀、定时跳转、改变盒子大小
- 三种方法实现轮播图配置,史上最简方法~
- 引领PCB行业变革 捷配开启免费打样新时代
- OSG仿真案例(0)
- BZOJ3881 Coci2015 Divljak fail树+差分
- android ndk opencv 3,opencv_and_opencv_contrib
- 机器学习- 吴恩达Andrew Ng 编程作业技巧 for Week3
- win7系统备份怎么做的几种方法
- 学拳录 23退步压肘
- Python「剪藏」网页为 PDF
- ERDAS 2015 64位破解安装教程
- python获取网页图片_python抓取网页中的图片示例
- yolov5s-5.0网络模型结构图
- (二)Python Excel 操作
- 搜狗词库scel格式转为txt格式(python3版本)
- java 魔鬼数字_程序中的魔鬼数字
热门文章
- 安装vm12+CentOS7+Docker以及常见问题解决
- Apple Watch 中国应用初体验:勇气可嘉,但缺乏存在感
- 「Activiti精品 悟纤出品」Activiti7数据库表 - 第332篇
- 用户账号管理和组管理
- 碰撞检测之Sphere-Box检测
- 木星协定_木星笔记本简介
- 山财计算机考试科目,山东财经大学考研——22考研儿注意了,这几所高校发布了初试科目变更通知...
- 第八章 对立统一——异步时钟同步化
- 电脑插了两根内存条只读出来一根,另一条是为硬件保留的内存空间
- week16 CSP-M4-B ZJM要抵御宇宙射线