LDAP (Lightweight Directory Access Protocol) は、分散ディレクトリ サービスにアクセスするために使用されるプロトコルです。ユーザーの認証、認可、アカウントの保守、データの保存などのタスクに使用できます。 PHP アプリケーションでは、LDAP を強力な認証メカニズムとして使用して、アプリケーションに強力な認証および認可機能を提供できます。
この記事では、PHP でのユーザー認証に LDAP を使用する方法を紹介します。具体的な内容は次のとおりです:
LDAP を使用する前に、LDAP をインストールして設定する必要があります。 LDAPサーバーを設定します。 LDAP サーバーには、OpenLDAP、Active Directory など、多くの選択肢があります。この記事では、OpenLDAP を例として取り上げます。
Ubuntu システムでは、次のコマンドを使用して OpenLDAP をインストールできます:
sudo apt-get install sawd ldap-utils
LDAP 管理者を入力するように求められます。インストールプロセス中に、実際の状況に応じてパスワードやその他の情報を設定できます。
設定が完了したら、LDAP サーバー上にルート ディレクトリを作成する必要があります。次のコマンドを使用できます:
sudo ldapadd -x -D cn=admin,dc=example ,dc=com -W -f root.ldif
このうち、-D cn=admin,dc=example,dc=com は LDAP 管理者アカウントです。-W は管理者パスワードの入力を求めます。 root.ldif は、ルート ディレクトリ構成ファイルの作成に使用されます。
PHP アプリケーションでは、PHP の LDAP 拡張機能を使用して LDAP サーバーに接続できます。次のコードを使用してサーバーに接続できます:
$ldap_server = "ldap://localhost";
$ldap_port = "389";
$ldap_conn = ldap_connect($ldap_server, $ldap_port) または die("LDAP サーバーに接続できませんでした。");
このうち、$ldap_server と $ldap_port はそれぞれ LDAP サーバーのアドレスとポート番号です。
LDAP サーバーに接続した後、次のコードを使用してユーザーを認証できます:
$ldap_dn = "cn ={$ ユーザー名},ou=people,dc=example,dc=com";
$ldap_password = $password;
$ldap_bind = @ldap_bind($ldap_conn, $ldap_dn, $ldap_password);
このうち、$username は検証が必要なユーザー名、$password はユーザーのパスワードです。 $ldap_dn はユーザーの識別名 (DN) 情報であり、LDAP ディレクトリ ツリー内の場所を決定するために使用されます。
ユーザー認証が成功した場合、$ldap_bind は true を返し、それ以外の場合は false を返します。
ユーザー認証に加えて、LDAP を使用してユーザーを追加および変更することもできます。次のコードを使用してユーザーを追加できます:
$ldap_dn = "cn={$username},ou=people,dc=example,dc=com";
$ldap_record"objectClass" = " person" ;
$ldap_record["cn"][0] = $username;
$ldap_record["sn"][0] = $lastname;
$ldap_record["userPassword"][0] = $password;
$ldap_add = ldap_add($ldap_conn, $ldap_dn, $ldap_record);
このうち、$username、$password、$lastname は、新しいユーザーのユーザー名、パスワード、姓です。それぞれのユーザー。
ユーザーが正常に追加された場合、$ldap_add は true を返し、それ以外の場合は false を返します。
ユーザー情報を変更するには、次のコードを使用できます:
$ldap_dn = "cn={$username},ou=people,dc=example,dc=com";
$ ldap_record["sn"][0] = $new_lastname;
$ldap_modify = ldap_modify($ldap_conn, $ldap_dn, $ldap_record);
このうち、$new_lastname はユーザーの姓です。更新する必要があります。
ユーザー情報が正常に変更された場合、$ldap_modify は true を返し、それ以外の場合は false を返します。
概要
この記事の導入部を通じて、PHP でのユーザー認証に LDAP を使用する方法について学びました。 LDAP には強力な認証および認可機能があり、アプリケーションに強力なセキュリティ保護を提供できます。ただし、LDAP サーバーのインストールと構成、および PHP でプログラミングするための LDAP 拡張機能の正しい使用に注意する必要があります。
以上がPHP でのユーザー認証に LDAP を使用するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。