php教程 php手册 什么是LDAP

什么是LDAP

Jun 21, 2016 am 09:14 AM
ds info ldap quot

LDAP是什么
LDAP是一个用来发布目录信息到许多不同资源的协议。通常它都作为一个集中的地址本使用,不过根据组织者的需要,它可以做得更加强大。
  LDAP最基本的形式是一个连接数据库的标准方式。该数据库为读查询作了优化。因此它可以很快地得到查询结果,不过在其它方面,例如更新,就慢得多。要特别注意的是,LDAP通常作为一个hierarchal数据库使用,而不是一个关系数据库。因此,它的结构用树来表示比用表格好。正因为这样,就不能用SQL语句了。

  简单说来,LDAP是一个得到关于人或者资源的集中、静态数据的快速方式。

LDAP是轻量目录访问协议(Lightweight Directory Access Protocol)的缩写,其实是一话号码簿,类似于我们所使用诸如NIS(Network Information Service)、DNS (Domain Name Service)等网络目录,也类似于你在花园中所看到的树木。
LDAP是一种特殊的数据库。但是LDAP和一般的数据库不同,明白这一点是很重要的。 LDAP对查询进行了优化,与写性能相比LDAP的读性能要优秀很多。
1.1 LDAP的存储规则
区分名(DN,Distinguished Name)
和自然界中的树不同,文件系统/LDAP/电话号码簿目录的每一片枝叶都至少有一个独一无二的属性,这一属性可以帮助我们来区别这些枝叶。
在文件系统中, 这些独一无二的属性就是带有完整路径的文件名。比如/etc/passwd,该文件名在该路径下是独一无二的。当然我们可以有/usr/passwd, /opt/passwd,但是根据它们的完整路径,它们仍然是唯一的。
在LDAP中,一个条目的区分名称叫做“dn”或者叫做区分名。在一个目录中这个名称总是唯一的。比如,我的dn是"uid=aghaffar, ou=People, o=developer.ch"。不可能有相同的dn,但是我们可以有诸如"uid=aghaffar, ou=Administrators, o=developer.ch"的dn。这同上面文件系统中/etc/passwd 和 /usr/passwd的例子很类似。
我们有独一无二的属性,在"ou=Administrators, o=developer.ch" 中uid和在"ou=People, o=developer.ch"中的uid。这并不矛盾。
CN=Common Name 为用户名或服务器名,最长可以到80个字符,可以为中文;
OU=Organization Unit为组织单元,最多可以有四级,每级最长32个字符,可以为中文;
O=Organization 为组织名,可以3—64个字符长
C=Country为国家名,可选,为2个字符长

LDAP目录以一系列“属性对”的形式来存储记录项,每一个记录项包括属性类型和属性值(这与关系型数据库用行和列来存取数据有根本的不同)。
mail = testmail@mccc.net
othermailbox = testmailother@mccc.com
givenname = givenname
sn = test sn
属性可添加,以下一个属性必须赋值:
objectclass=person (值为:person 或 server 或 organization 或 其他自定义的值)

2 Php如何操作LDAP
2.1 Php如何与LDAP连接和关闭
$ds=ldap_connect("ServerName")
ServerName是LDAP的服务器名,

例:
$ds=ldap_connect(“10.31.172.30:1000”)
返回值是:true 或 false

关闭连接
ldap_close($ds);

2.2 在php中如何搜索用户信息

$ds=ldap_connect("10.31.172.30:1000");
//首先连接上服务器
$justthese = array("cn","userpassword",”location”);
//搜索函数中的一个参数,要求返回哪些信息,
//以上传回cn,userpassword,location,这些都要求小写
$sr=ldap_search($ds,"o=jite", "cn=dom*",$justthese);
//第一个参数开启LDAP的代号
//第二个参数最基本的 dn 条件值 , 例:”o=jite,c=cn”
//第三个参数 filter 为布林条件,它的语法可以在 Netscape 站上找一份 dirsdkpg.pdf 档案.
// ’o’为组织名,’cn’ 为用户名,用户名可用通配符 ’*’
echo "domadmin姓氏有".ldap_count_entries($ds,$sr)." 个

";
//ldap_count_entries($ds,$sr)传回记录总数

$info = ldap_get_entries($ds, $sr);
//LDAP的全部传回资料
echo "资料传回 ".$info["count"]."笔:

";
for ($i=0; $iecho "dn为:". $info[$i]["dn"] ."
";
echo "cn为:". $info[$i]["cn"][0] ."
"; //显示用户名
echo "email为:". $info[$i]["mail"][0] ."

"; //显示mail
echo "email为:". $info[$i][“userpassword"][0] ."

"; //显示加密后的密码
}
2.3 添加用户
$ds=ldap_connect("10.31.172.30:1000");
//首先连接上服务器
$r=ldap_bind($ds,"cn=domadmin,o=jite","password");
//系住一个管理员,有写的权限
// cn=domadmin,o=jite顺序不能变
$info["cn"]="aaa"; //必填
$info["userpassword"]="aaa";
$info["location"]="shanghai";
$info["objectclass"] = "person"; //必填person为个人,还有server…
ldap_add($ds, "cn=".$info["cn"].",o=jite", $info);
ldap_unbind($ds);
//取消绑定
ldap_close($ds);
//关闭连接
2.4 删除用户
$ds=ldap_connect("10.31.172.30:1000");
//首先连接上服务器
ldap_bind($ds,"cn=domadmin,o=jite","password");
//绑定管理员,有删除的权限
$dn="cn=dingxf,o=jite";
ldap_delete($ds, $dn);
//删除用户
ldap_unbind($ds);
//取消绑定
ldap_close($ds);
//关闭连接
2.5 修改用户资料
$ds=ldap_connect("10.31.172.30:1000");
//首先连接上服务器
ldap_bind($ds,"cn=domadmin,o=jite","password");
//绑定管理员,有修改的权限
$dn="cn=dingxf,o=jite";
//用户dn
$info["userpassword"]="aaa"; //要修改的信息,放在数组变量中
$info["location"]="shanghaisdaf";

ldap_modify($ds, $dn , $info);
//修改函数
ldap_unbind($ds);
//取消绑定
ldap_close($ds);
//关闭连接
2.6 用户登录验证
$ds=ldap_connect("10.31.172.30:1000");
//首先连接上服务器
if (ldap_bind($ds,"cn=dingxf,o=jite","dingxf")){
echo "验证通过";
}else{
echo "验证不通过";
}
ldap_unbind($ds);
//取消绑定
ldap_close($ds);
//关闭连接




注:此方法比较简单,实用,它也有不足之处,如果不通过,ldap_bind()提示它自带的提示语:”Warning: LDAP: Unable to bind to server: Inappropriate authentication in /home/htdocs/jldl.net/ldap/test.php3 on line 16”



본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Bee-Box LDAP 인젝션을 이용한 사격장 연습 방법 Bee-Box LDAP 인젝션을 이용한 사격장 연습 방법 May 13, 2023 am 09:49 AM

sql 인젝션의 본질이 문자열을 이어붙이는 것이라면, 인젝션할 수 있는 모든 것의 본질은 스트링을 이어붙이는 것인데, 일종의 인젝션으로서 LDAP 인젝션도 예외는 아니다. 또한 괄호를 연결하지만 문자열을 연결한다고 말하는 것이 더 관례적입니다. 환경 설정 장에서는 Bee-Box의 LDAP 환경 구성에 대해 자세히 다루었습니다. 사격장 실습 장에서는 PHP와 LDAP의 연결 과정, 중간에 사용되는 특수 기능 소개, 괄호를 연결하는 몇 가지 기술. 먼저 bwapp의 LDAP 사격장의 로그인 프로세스에 대해 이야기하겠습니다. 먼저 이것은 LDAP 로그인 인터페이스이며 URL은 http://192.168.3.184/bW입니다.

LDAP 주입을 이해하는 방법 LDAP 주입을 이해하는 방법 May 22, 2023 pm 09:47 PM

1. LDAP 주입 LDAP(Light Directory Access Portocol)는 X.500 표준을 기반으로 하는 경량 디렉터리 액세스 프로토콜로 디렉터리 데이터베이스에 액세스하기 위한 서비스와 프로토콜을 제공합니다. 디렉토리는 질의, 탐색, 검색에 최적화된 전문 분산 데이터베이스로, Linux/Unix 시스템의 파일 디렉토리와 유사한 트리 구조로 데이터를 구성합니다. 공인 인증서, 보안 키, 회사의 물리적 장치 정보 등 자주 수정되지 않는 데이터는 디렉터리에 저장하는 것이 적합합니다. LDAP는 SQL과 유사하고 쿼리 구문이 있지만 주입 공격의 위험이 있는 검색 프로토콜로 이해될 수 있습니다. LDAP 주입은 클라이언트를 참조합니다.

PHP 치명적인 오류에 대한 해결 방법: 정의되지 않은 함수 ldap_bind() 호출 PHP 치명적인 오류에 대한 해결 방법: 정의되지 않은 함수 ldap_bind() 호출 Jun 22, 2023 pm 11:37 PM

PHP를 사용하여 웹 애플리케이션을 개발할 때 애플리케이션 액세스를 보호하기 위해 LDAP 인증을 사용해야 하는 경우가 많습니다. 그러나 어떤 경우에는 인증을 구현하기 위해 PHP의 LDAP 기능을 사용하려고 할 때 "PHPFatalerror:Calltoundefinitivefunctionldap_bind()"라는 오류 메시지가 나타날 수 있습니다. 이 오류 메시지는 일반적으로 응용 프로그램이 ldap_bind() 함수를 호출할 때 발생합니다.

bee-box LDAP 주입을 위한 환경을 구성하는 방법 bee-box LDAP 주입을 위한 환경을 구성하는 방법 May 12, 2023 pm 08:37 PM

1. 개요 학습 과정에 따라 웹 공격의 모델과 취약점이 무엇인지 알아야 합니다. 이제 처음으로 LDAP를 접한 것은 공기업의 침투 테스트였습니다. 인기가 없는 것(승인된 것)을 발견하고 그것에 대한 나의 관심을 불러일으켰습니다. LDAP의 개념: 전체 이름: Lightweight Directory Access Protocol(Lightweight Directory Access Protocol), 특징: 프로토콜에 대해서는 언급하지 않겠습니다. 너무 난해하며, 데이터를 저장하기 위한 데이터베이스로 이해할 수 있습니다. 특징은 다음과 같습니다. 데이터베이스 형태의 데이터베이스입니다. 먼저 데이터베이스의 이름은 트리의 루트(즉, DB=dc)와 동일하며 루트에서 리프 노드까지의 프로세스는 다음과 같습니다.

DS4 - Win11 버전을 사용할 수 없는 문제를 해결하는 방법 DS4 - Win11 버전을 사용할 수 없는 문제를 해결하는 방법 Jan 05, 2024 pm 02:24 PM

이제 많은 플레이어들이 Windows 시스템에 ds4Windows를 설치하여 설정을 확장할 수 있기 때문에 ds4 컨트롤러를 사용하고 싶어합니다. 그러나 시스템을 업데이트한 후에는 win11에서 ds4를 사용할 수 없다는 사실을 알게 되었으며, 이 문제를 해결하기 위해 드라이버를 업데이트해 볼 수 있습니다. 문제. win11이 ds4를 사용할 수 없는 이유에 대한 해결 방법: 1. 먼저 ds4 컨트롤러를 컴퓨터에 연결합니다. 2. 연결 후 "이 컴퓨터"를 마우스 오른쪽 버튼으로 클릭하여 "관리"를 엽니다. 3. 왼쪽 열에 "장치 관리자"를 입력합니다. 4. "휴먼 인터페이스 장치"를 확장하고 두 번 클릭하여 "HID 호환 게임 컨트롤러" 장치를 엽니다. . 5. 연 후 "드라이버" 탭으로 들어가서 "장치 제거"를 클릭하여 제거합니다. 6. 제거가 완료되면 ds의 플러그를 뽑습니다.

php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 Jun 13, 2016 am 10:23 AM

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

PHP에서 사용자 인증을 위해 LDAP 사용 PHP에서 사용자 인증을 위해 LDAP 사용 Jun 20, 2023 pm 10:25 PM

LDAP(LightweightDirectoryAccessProtocol)는 분산 디렉터리 서비스에 액세스하기 위한 프로토콜입니다. 사용자 인증, 권한 부여, 계정 유지, 데이터 저장 등의 작업에 사용할 수 있습니다. PHP 애플리케이션에서 LDAP는 애플리케이션에 대한 강력한 인증 및 권한 부여 기능을 제공하는 강력한 인증 메커니즘으로 사용될 수 있습니다. 이 기사에서는 PHP에서 사용자 인증을 위해 LDAP를 사용하는 방법을 소개합니다. 구체적인 내용은 다음과 같습니다. 설치 및 구성.

Nginx를 사용하여 LDAP 주입 공격으로부터 보호하는 방법 Nginx를 사용하여 LDAP 주입 공격으로부터 보호하는 방법 Jun 10, 2023 pm 08:19 PM

네트워크 보안 취약점이 증가함에 따라 LDAP 주입 공격은 많은 웹사이트에서 직면한 보안 위험이 되었습니다. 웹사이트 보안을 보호하고 LDAP 주입 공격을 방지하려면 몇 가지 보안 조치를 사용해야 합니다. 그 중 Nginx는 고성능 웹 서버이자 역방향 프록시 서버로서 우리에게 많은 편의성과 보호 기능을 제공할 수 있습니다. 이 기사에서는 Nginx를 사용하여 LDAP 주입 공격을 방지하는 방법을 소개합니다. LDAP 주입 공격 LDAP 주입 공격은 공격자가 LDAP 데이터베이스를 대상으로 하는 공격 방법입니다.

See all articles