PHPを使用したLDAPの必需品

Jennifer Aniston
Jennifer Anistonオリジナル
2025-02-19 10:34:12292ブラウズ

Essentials of LDAP with PHP

構造化されたデータとともにアドレス帳スタイルのデータとネットワーク情報を保存するための簡単な方法が必要ですか? 1993年に遡るテクノロジーであるLDAPは、ソリューションを提供します。 node.jsやGoなどの新しいテクノロジーの「クールな」要因が不足していますが、その機能は非常に関連性が高いままです。

重要な概念:

1993年にミシガン大学で作成されたLDAP(LightWeight Directory Access Protocol)は、ディレクトリサービスを管理するためのインターネットプロトコルです。 アドレス帳の情報、ネットワークの詳細、およびその他の編成データを効率的に保存および管理しています。 広く使用されているオープンソースLDAPサーバーであるOpenLdapはスキーマに依存しているため、データ構造やコンテンツに制限を課さないことを意味します。 コマンドライン命令を使用して、Debianベースのシステムに簡単にインストールおよび構成されています。
    PHPは、Zend-LDAPコンポーネントを介してLDAPサーバーと相互作用します(Zend Framework 2から)。これにより、サーバークエリ、接続管理、およびデータベース検索、エントリの更新、削除などの基本的な操作が可能になります。
  • LDAPディレクトリは、階層的な木のような構造を採用し、上部レベルはルートまたはベースと呼ばれます。各エントリは属性で構成されています。それぞれのタイプと1つ以上の値があります。
  • LDAPの理解:
  • LDAP、または1993年頃にミシガン大学で生まれたLightweight Directory Access Protocolは、Tim Howes、Steve Kille、Colin Robbins、およびWengyik Yeongの努力のおかげで発信されました。 本質的には、電話ディレクトリを管理するために国際電気通信連合(ITU)によって設計された古いX.500プロトコル(1980年代から)のインターネットに優しいバージョンです。
  • 「LDAP」とは技術的にはプロトコルを指しますが、クライアントとサーバーの両方のコンポーネントを記述するためによく使用されます。 それをディレクトリサーバーのSQLと考えてください。LDAP対応サーバーと対話するための言語。
人気のあるLDAPサーバーには、MicrosoftのActive Directory(Windows 2000以降Windowsに統合されています)と、このチュートリアルシリーズで使用するオープンソースOpenLDAPが含まれます。 OpenLDAPの柔軟性により、多様なスキーマとデータストレージが可能になります この最初の部分がカバーしています:

openldapセットアップの基本。

データレコードの読み込み。

PHP。

を使用した基本操作の接続と実行の実行

本質的な用語:

先に進む前に、いくつかの重要な用語を明確にしましょう:
    LDAP Term Description
    dn Distinguished Name: A record's unique identifier, similar to a primary key in relational databases.
    Directory Schema Defines the structure and constraints of the directory information.
    entry A record containing attributes that store data.
    attribute Similar to an associative array element or database column; specifies the data type, sorting rules, case-sensitivity, and other criteria.
    cn Common Name (e.g., "John Smith")
    sn Surname (e.g., "Smith")

    より深い理解については、O'ReillyのLDAPガイドまたはLDAPのウィキペディアエントリに相談してください。 LDAPサーバーのセットアップ

    OpenLDAPのインストールと構成は多少複雑になる可能性があります。 Debianベースのサーバー向けに最適化されたこれらの手順は、明確さと簡潔さを目指しています:

    1. コアサーバーとユーティリティをインストールしてください:

      <code class="language-bash">sudo apt-get install slapd ldap-utils</code>
    2. サーバーを構成:

      <code class="language-bash">dpkg-reconfigure slapd</code>
      次のようにプロンプ​​トに答えます:

        openldapサーバーの構成を省略しますか?
      • いいえ
      • dnsドメイン名:
      • (またはドメイン)homestead.localdomain 組織の名前:(組織名)
      • 管理者パスワード:(強力なパスワードを選択してください)
      • パスワードの確認:(パスワードを繰り返します)
      • ok
      • bdb(バークレーdb)
      • SLAPDがパージされたときにデータベースを削除したいですか?
      • いいえ
      • 古いデータベースを移動しますか?
      • はい
      • LDAPV2プロトコルを許可しますか?
      • いいえ
    検証:

    実行してインストールを確認してください:

    エラーが発生した場合は、OpenLDAPが実行されていることを確認してください:
    <code class="language-bash">ldapsearch -x -b dc=homestead,dc=localdomain</code>

    <code class="language-bash">sudo netstat -tlnp | grep slapd</code>
    データベースの入力:

    次のコンテンツを使用してを作成します

    データを読み込みます:

    users.ldif

    (管理者のパスワードが求められるようになります。)
    <code class="language-ldif">dn: cn=Sheldon Cooper,ou=People,dc=homestead,dc=localdomain
    cn: Sheldon Cooper
    objectClass: person
    objectClass: inetOrgPerson
    sn: Cooper
    
    dn: cn=Leonard Hofstadter,ou=People,dc=homestead,dc=localdomain
    cn: Leonard Hofstadter
    objectClass: person
    objectClass: inetOrgPerson
    sn: Hofstadter
    
    dn: cn=Howard Wolowitz,ou=People,dc=homestead,dc=localdomain
    cn: Howard Wolowitz
    objectClass: person
    objectClass: inetOrgPerson
    sn: Wolowitz
    
    dn: cn=Rajesh Koothrappali,ou=People,dc=homestead,dc=localdomain
    cn: Rajesh Koothrappali
    objectClass: person
    objectClass: inetOrgPerson
    sn: Koothrappali</code>

    を使用してレコードを確認します
    <code class="language-bash">ldapadd -x -W -D "cn=admin,dc=homestead,dc=localdomain" -f users.ldif</code>

    (PHP相互作用、サーバーへの接続、長さの制限により、後続のセクションで検索、更新、削除が続きます。

以上がPHPを使用したLDAPの必需品の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。