Maison 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”



Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment effectuer un entraînement sur le stand avec l'injection LDAP bee-box Comment effectuer un entraînement sur le stand avec l'injection LDAP bee-box May 13, 2023 am 09:49 AM

Si l'essence de l'injection SQL est d'épisser des chaînes, alors l'essence de tout ce qui peut être injecté est d'épisser des chaînes. L'injection LDAP ne fait pas exception en tant que type d'injection. Ce qui est plus intéressant, c'est qu'il s'agit d'épisser des parenthèses (l'injection SQL l'est). concatène également les parenthèses, mais il est plus conventionnel de dire qu'il concatène les chaînes). Dans le chapitre sur la configuration de l'environnement, la configuration de l'environnement ldap dans bee-box a été discutée en détail. Le chapitre pratique sur le stand de tir porte davantage sur le processus de connexion entre php et ldap, l'introduction des fonctions spéciales utilisées au milieu et quelques techniques pour épisser les parenthèses. Parlons d'abord du processus de connexion du stand de tir LDAP dans bwapp : Tout d'abord, il s'agit d'une interface de connexion LDAP, l'URL est http://192.168.3.184/bW

Comment comprendre l'injection LDAP Comment comprendre l'injection LDAP May 22, 2023 pm 09:47 PM

1. Injection LDAP LDAP (Light Directory Access Portocol) est un protocole d'accès aux annuaires léger basé sur la norme X.500. Il fournit des services et des protocoles pour accéder aux bases de données d'annuaire. Il est souvent utilisé pour former des services d'annuaire avec des bases de données d'annuaire. Le répertoire est une base de données distribuée professionnelle optimisée pour les requêtes, la navigation et la recherche. Il organise les données dans une structure arborescente, similaire au répertoire de fichiers des systèmes Linux/Unix. Les données qui ne sont pas fréquemment modifiées, telles que les certificats publics, les clés de sécurité et les informations sur les appareils physiques de l'entreprise, peuvent être stockées dans l'annuaire. LDAP peut être compris comme un protocole de recherche similaire à SQL et doté d'une syntaxe de requête, mais qui présente également un risque d'attaques par injection. L'injection LDAP fait référence au client

Solution à l'erreur fatale PHP : appel à la fonction non définie ldap_bind() Solution à l'erreur fatale PHP : appel à la fonction non définie ldap_bind() Jun 22, 2023 pm 11:37 PM

Lors du développement d'applications Web à l'aide de PHP, nous devons souvent utiliser l'authentification LDAP pour protéger l'accès aux applications. Cependant, dans certains cas, lorsque nous essayons d'utiliser la fonctionnalité LDAP de PHP pour implémenter l'authentification, nous pouvons rencontrer le message d'erreur suivant : "PHPFatalerror:Calltoundefinedfunctionldap_bind()". Ce message d'erreur se produit généralement lorsqu'une application appelle la fonction ldap_bind()

Comment configurer l'environnement pour l'injection LDAP bee-box Comment configurer l'environnement pour l'injection LDAP bee-box May 12, 2023 pm 08:37 PM

1. Présentation Selon mon processus d'apprentissage, je dois connaître le modèle et la vulnérabilité de mon attaque Web. La première fois que j'ai vu LDAP, c'était lors d'un test d'intrusion dans une entreprise publique. j’en ai trouvé un impopulaire (autorisé) et j’ai piqué mon intérêt pour celui-ci. Le concept de LDAP : nom complet : Lightweight Directory Access Protocol (Lightweight Directory Access Protocol), caractéristiques : je ne parlerai pas du protocole, c'est trop ésotérique, on peut le comprendre comme une base de données pour stocker des données, sa particularité est que c'est un arbre Une base de données en forme de

Comment résoudre le problème de ne pas pouvoir utiliser DS4 - version Win11 Comment résoudre le problème de ne pas pouvoir utiliser DS4 - version Win11 Jan 05, 2024 pm 02:24 PM

De nombreux joueurs aiment désormais utiliser les contrôleurs DS4 car ils peuvent installer un DS4Windows dans les systèmes Windows pour étendre les paramètres. Cependant, après la mise à jour du système, ils constatent que Win11 ne peut pas utiliser DS4. Pour le moment, nous pouvons essayer de mettre à jour le pilote pour résoudre le problème. problème. Solution pour laquelle Win11 ne peut pas utiliser DS4 : 1. Tout d'abord, nous connectons le contrôleur DS4 à l'ordinateur. 2. Après la connexion, cliquez avec le bouton droit sur "Cet ordinateur" pour ouvrir "Gestion" 3. Entrez "Gestionnaire de périphériques" dans la colonne de gauche 4. Développez "Périphériques d'interface humaine" et double-cliquez pour ouvrir le périphérique "Contrôleur de jeu compatible HID". . 5. Après ouverture, entrez dans l'onglet « Pilote » et cliquez sur « Désinstaller le périphérique » pour le désinstaller. 6. Une fois la désinstallation terminée, on débranche le DS

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

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

Utiliser LDAP pour l'authentification des utilisateurs en PHP Utiliser LDAP pour l'authentification des utilisateurs en PHP Jun 20, 2023 pm 10:25 PM

LDAP (LightweightDirectoryAccessProtocol) est un protocole permettant d'accéder aux services d'annuaire distribués. Il peut être utilisé pour des tâches telles que l'authentification des utilisateurs, l'autorisation, la maintenance des comptes et le stockage des données. Dans les applications PHP, LDAP peut être utilisé comme un puissant mécanisme d'authentification pour fournir de puissantes fonctions d'authentification et d'autorisation aux applications. Cet article explique comment utiliser LDAP pour l'authentification des utilisateurs en PHP. Le contenu spécifique comprend : Installation et configuration.

Comment utiliser Nginx pour se protéger contre les attaques par injection LDAP Comment utiliser Nginx pour se protéger contre les attaques par injection LDAP Jun 10, 2023 pm 08:19 PM

Avec l’augmentation des vulnérabilités de sécurité des réseaux, les attaques par injection LDAP sont devenues un risque de sécurité auquel sont confrontés de nombreux sites Web. Afin de protéger la sécurité du site Web et de prévenir les attaques par injection LDAP, certaines mesures de sécurité doivent être utilisées. Parmi eux, Nginx, en tant que serveur Web hautes performances et serveur proxy inverse, peut nous offrir beaucoup de commodité et de protection. Cet article explique comment utiliser Nginx pour empêcher les attaques par injection LDAP. Attaque par injection LDAP L'attaque par injection LDAP est une méthode d'attaque ciblant la base de données LDAP.

See all articles