LDAPとは

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

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; $i<$ info["count"]; $i++) {
echo "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ヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Bee-box LDAP インジェクションを使用して範囲練習を行う方法 Bee-box LDAP インジェクションを使用して範囲練習を行う方法 May 13, 2023 am 09:49 AM

SQL インジェクションの本質が文字列の結合である場合、注入できるすべての本質は文字列の結合です。LDAP インジェクションも一種のインジェクションとして例外ではありません。さらに興味深いのは、括弧の結合であることです (SQL インジェクションは括弧も連結しますが、文字列を連結すると言ったほうが一般的です)。環境構築編では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 を使用して Web アプリケーションを開発する場合、多くの場合、アプリケーションのアクセスを保護するために LDAP 認証を使用する必要があります。ただし、場合によっては、PHP の LDAP 機能を使用して認証を実装しようとすると、次のエラー メッセージが表示されることがあります。このエラー メッセージは通常、アプリケーションが ldap_bind() 関数を呼び出したときに発生します。

Bee-box LDAP インジェクションの環境を構成する方法 Bee-box LDAP インジェクションの環境を構成する方法 May 12, 2023 pm 08:37 PM

1. 概要 私の学習プロセスによれば、Web 攻撃のモデルと脆弱性が何であるかを知る必要がありました。今、私は予期せぬ状況に遭遇しました。私が初めて 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 を使用する方法を紹介します。具体的な内容は次のとおりです。 インストールと構成 L

Nginx を使用して LDAP インジェクション攻撃から保護する方法 Nginx を使用して LDAP インジェクション攻撃から保護する方法 Jun 10, 2023 pm 08:19 PM

ネットワーク セキュリティの脆弱性の増加に伴い、LDAP インジェクション攻撃は多くの Web サイトが直面するセキュリティ リスクとなっています。 Web サイトのセキュリティを保護し、LDAP インジェクション攻撃を防ぐには、いくつかのセキュリティ対策を使用する必要があります。中でも、Nginx は、高性能 Web サーバーおよびリバース プロキシ サーバーとして、多くの利便性と保護を提供します。この記事では、Nginx を使用して LDAP インジェクション攻撃を防ぐ方法を紹介します。 LDAP インジェクション攻撃 LDAP インジェクション攻撃は、LDAP データベースをターゲットとする攻撃手法です。

See all articles