認証のみを探している場合は、数行のコードだけで済む場合があります。
まず、php でLDAP が有効になっていることを確認します。
純粋な php の実装は次のとおり
です。
$link = ldap_connect('domain.com'); // Your domain or domain server
if(! $link) {
// Could not connect to server - handle error appropriately
}
ldap_set_option($link, LDAP_OPT_PROTOCOL_VERSION, 3); // Recommended for AD
// Now try to authenticate with credentials provided by user
if (! ldap_bind($link, 'username@domain.com', 'SomeSecret')) {
// Invalid credentials! Handle error appropriately
}
// Bind was successful - continue
現在ログインしているユーザーに関する情報を取得するなど、Active Directory でもっと楽しいことを行う予定がある場合は、フレームワークを使用して面倒な作業を行うことを強くお勧めします。すでに述べたように、adLDAP は優れたツールです。PHP 5.4 を実行する場合は、私が積極的に開発しているAD-Xライブラリをお勧めします (Composer 経由でインストールできます)。
AD-X ライブラリを使用すると、次のコードを使用してユーザーの資格情報を確認できます。
try {
$link = new ADX\Core\Link('domain.com'); // Establish connection to AD
$link->bind('username@domain.com', 'SomeSecret'); // Authenticate user
}
catch (ADX\Core\ServerUnreachableException $e) {
// Unable to connect to server, handle error
}
catch (ADX\Core\InvalidCredentialsException $e) {
// Invalid credentials supplied
}
catch (Exception $e) {
// Something else happened, check the exception and handle appropriately
}
// Successfully authenticated if no exception has been thrown
あなたに一番合ったものを自由に選んでください。ただし、認証以上のことを期待している場合は、ldap 作業にライブラリを使用することを強くお勧めします。ライブラリを使用すると、時間を大幅に節約でき、期待どおりに動作しない場合にフラストレーションを感じる可能性があります。
また、接続と認証に使用できる/すべき情報が不明な場合は、このトピックに関する以前の回答を自由に確認してください。