検索

LDAP とは何ですか
LDAP は、ディレクトリ情報をさまざまなリソースに公開するために使用されるプロトコルです。通常、集中アドレス帳として使用されますが、主催者のニーズに応じて、より強力にすることができます。
LDAP の最も基本的な形式は、データベースに接続する標準的な方法です。データベースは読み取りクエリ用に最適化されています。そのため、クエリ結果は非常に迅速に取得できますが、更新などの他の側面でははるかに遅くなります。 LDAP は通常、リレーショナル データベースではなく、階層データベースとして使用されることに注意することが重要です。したがって、その構造はテーブルよりもツリーの方がよく表現されます。このため、SQL文は使用できません。

簡単に言えば、LDAP は人やリソースに関する一元化された静的データを迅速に取得する方法です。

LDAP は Lightweight Directory Access Protocol の略称で、実際には、NIS (ネットワーク情報サービス)、DNS (ドメイン ネーム サービス) などのツリーに使用されるネットワーク ディレクトリに似ています。庭。
LDAP は特別なデータベースです。ただし、LDAP は一般的なデータベースとは異なるため、これを理解することが重要です。 LDAP はクエリを最適化しており、読み取りパフォーマンスは書き込みパフォーマンスよりもはるかに優れています。
1.1 LDAP ストレージ ルール
識別名 (DN、識別名)
自然界の木とは異なり、ファイル システム/LDAP/電話ディレクトリの各枝と葉には少なくとも 1 つの一意の属性があり、この属性はこれらの枝と葉を区別するのに役立ちます。葉。
ファイル システムでは、これらの一意の属性はフルパスを含むファイル名です。たとえば、/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 は組織単位で、最大 4 つのレベルを持つことができ、各レベルは最大 80 文字です。最大 32 文字、中国語も可能
O=Organization は組織名で、長さは 3 ~ 64 文字です
C=country は国名で、長さは 2 文字です

LDAP ディレクトリにはレコード項目が保存されます一連の「属性ペア」の形式で、各レコード項目には属性タイプと属性値が含まれます (これは、行と列を使用してデータにアクセスするリレーショナル データベースとは根本的に異なります)。
mail = testmail@mccc.net
othermailbox = testmailother@mccc.com
givenname = Givenname
sn = test sn
属性を追加でき、次の属性のいずれかに値を割り当てる必要があります:
objectclass=person (値は: 個人、サーバー、組織、またはその他のカスタマイズされた値です)

2 Php が LDAP を操作する方法
2.1 Php が LDAP に接続して閉じる方法
$ds=ldap_connect("ServerName")
ServerName は LDAP のサーバー名です。

例:
$ds=ldap_connect(

");
//まずサーバーに接続します
$justthese = array("cn","userpassword","location");
//検索関数のパラメータ、どのような情報を返す必要があります。
//上記はアップロードされて返されます。cn、userpassword、location、これらはすべて小文字が必要です
$sr=ldap_search($ds,"o=jite", "cn=dom*",$justthese) ;
//最初のパラメータは LDAP を有効にするためのコードネームです
// 2 番目のパラメータは最も基本的な dn 条件の値です。例: "o=jite,c=cn"
//3 番目のパラメータのフィルタはブール条件です、その構文は、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"]."Pen:

";
for ($i=0; $iecho "dn は:". $info[$i] ["dn"] ."
";
echo "cn は: ". i]["cn"][0] ."
"; //ユーザー名を表示
echo "email is:". $info[$i]["mail"][0] ."

echo "email is: ". $info[$i]["userpassword"][0] ."

"; //暗号化されたパスワードを表示します
}
2.3 userを追加します
$ds=ldap_connect("10.31 . 172.30:1000");
//まずサーバーに接続します
$r=ldap_bind($ds,"cn=domadmin,o=ji​​te","password");
//管理者を縛ります、何か書かれています 権限
// cn=domadmin, o=jite の順序は変更できません
$info["cn"]="aaa"; //必須
$info["userpassword"]="aaa"; ]="shanghai";
$info["objectclass"] = "person" //必須人物は個人、サーバー...
ldap_add($ds, "cn=".$info["cn"; .",o=ji​​te", $info);
ldap_unbind($ds);
//Unbind
ldap_close($ds);
//接続を閉じる
2.4 ユーザーを削除する
$ds=ldap_connect("10.31. 172.30 :1000");
//まずサーバーに接続します
ldap_bind($ds,"cn=domadmin,o=ji​​te","password");
//管理者を削除権限でバインドします
$dn= " cn=dingxf,o=ji​​te";
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=ji​​te","password");
/ /バインド管理者、変更権限あり
$dn="cn=dingxf,o=ji​​te";
//User 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=ji​​te ","dingxf")){
echo "検証に合格しました";
}else{
echo "検証に失敗しました";
}
ldap_unbind($ds);
//アンバインド
ldap_close($ ds);
//閉じる接続




注: この方法は比較的シンプルで実用的ですが、欠点もあります。失敗すると、ldap_bind() によって独自のプロンプトが表示されます。「警告: LDAP: サーバーにバインドできません: / での認証が不適切です。 home/htdocs/jldl.net/ldap/test.php3 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ヘンタイを無料で生成します。

ホットツール

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません