検索
ホームページphp教程php手册Linux LDAP 認証: Windos および Linux での PHP および LDAP ID 認証


現在の上司から、企業イントラネット上の Web サービスに標準の認証方法を提供するように頼まれました。私が遭遇した主な問題の 1 つは、当社が主に UNIX と Windows という 2 つのプラットフォームを使用していたことでした。したがって、私の最初のアイデアはあまり成功しませんでした。すべての従業員が Windows の代わりに UNIX または Linux を使用する必要がありました。
現在の UNIX/Windows の問題を解決する最善の方法は、PHP の LDAP 機能を使用することだと思います。 LDAP サーバーでは既存のシステムを使用する必要があるため、主に巨大な Microsoft Exchange Server システムを意味します。 Exchange の使用に非常に満足しています。Exchange は信頼性が高く、LDAP 機能は使用と構成が非常に簡単です。ただし、本人確認の観点から見ると、このソリューションは最も安全ではないことに注意してください。より高いレベルのセキュリティ要件がある場合は、LDAP と SSL を使用することを強くお勧めします。
どこから学習を始めるべきか
すぐに始められるように、PHP LDAP 関数のリストとその関数の簡単な説明を示しました。次に、LDAP サーバーへの接続を確立し、ユーザーを認証する方法を説明します。コードを簡単にするために、PHP 接続の機能と LDAP サーバーにバインドする方法を示します。
完璧な組み合わせ: PHP と LADP
以下は、この例で使用する関数のリストです。関連情報がオンラインにあります。
ldap_connect - LDAP サービスへの接続に使用されます。
ldap_bind - 特定の LDAP ディレクトリにバインドするために使用されます。
ldap_error - LDAP サーバーからエラー情報を取得します。
ldap_search - 検索を開始するために使用されます。
ldap_get_entries - 検索結果から複数の結果を取得します。
ldap_close - LDAP 接続を閉じます。
次に、例 (コード リスト A) の最初の関数の使用方法を示し、関数の機能を適切に紹介します。
// LDAP 変数
$ldap['user'] = 'uname';
$ldap['pass'] = 'password';
$ldap[ 'host'] = 'ldap.example.com';
$ldap['port'] = 389;
$ldap['dn'] = 'cn'.$ldap['user'].' ,ou=部門,o=会社名';
$ldap['base'] = '';
// ldap に接続します
$ldap['conn'] = ldap_connect( $ldap[' host'], $ldap['port'] )
または die( “Could not connect to {$ldap['host']}” );
?>
は LDAP サーバーに 1 を返します接続 (リソースとも呼ばれます)。 ldap_connect 関数には、host と port という 2 つのパラメータがあります。最初のパラメータ: host は LDAP ホスト名で、2 番目のパラメータは LDAP が実行されるポートです。デフォルトでは、LDAP で使用されるポート番号は 389 です。 LDAP サーバーへの安全な接続が必要な場合は、次のように、ホスト パラメーターをアクセス可能な LDAP サーバーの URL に変更できます。
$ldap['conn'] = ldap_connect( "ldaps:// ldap.example.com” );
サーバー名の代わりに URL を指定するため、このメソッドでは port パラメーターを使用する必要はありません。留意すべき点の 1 つは、正確な名前が SSL 証明書に対応している必要があるということです。
// LDAP 変数
$ldap['user'] = 'uname';
$ldap['pass'] = 'password';
$ldap[ 'host'] = 'ldap.example.com';
$ldap['port'] = 389;
$ldap['dn'] = 'cn'.$ldap['user'].' ,ou=部門,o=会社名';
$ldap['base'] = '';
// ldap に接続します
$ldap['conn'] = ldap_connect( $ldap[' host'], $ldap['port'] )
or die( “{$ldap['host']}に接続できませんでした” );
// ldap
$ldap[' にバインドしますbind'] = ldap_bind( $ldap['conn'], $ldap['dn'], $ldap['pass'] );
?>
は、ユーザー名とパスワードを使用して、サーバ。適切なドメイン名 (DN) を作成し、ユーザーのパスワードを使用して LDAP に正当に接続しました。ドメイン名とパスワードを使用すると、LDAP サーバーを認証し、バインド接続を許可できるため、正常にバインドできます。 ldap_bind の戻り値はブール型です。戻り値に基づいて、ユーザーのログイン証明書が有効かどうかを判断できます。このプロセスが完了すると、ユーザーの ID が認証されたかどうかがわかります。
エラーが発生した場合はどうなりますか? ldap_error 関数を呼び出すことは、どのようなエラーが発生したかを判断する良い方法です。 ldap_error 関数は、LDAP サーバーで発生した最後のエラーに関する情報を含む文字列を返します。
In
// LDAP 変数
$ldap['user'] = 'uname';
$ldap['pass'] = 'password';
$ldap['host'] = 'ldap.example.com';
$ldap['port'] = 389;
$ldap['dn'] = 'cn'.$ldap['user '].',ou=Department,o=Company Name';
$ldap['base'] = '';
// ldap に接続します
$ldap['conn'] = ldap_connect( $ldap['host'], $ldap['port'] )
or die( “サーバー {$ldap['host']} に接続できませんでした);
// ldap へのバインディング
$ldap['bind'] = ldap_bind( $ldap['conn'], $ldap['dn'], $ldap['pass'] );
if( !$ldap['bind'] )
{
echo ldap_error( $ldap['conn'] );
exit;
}
?>
, I ldap_error LDAP サーバーにバインドされているユーザーの ID が確認されない場合にコードが終了するように、関数がスクリプトに追加されました。この関数は、LDAP サーバーに送信された最後のコマンドによって生成されたエラー メッセージを含む文字列を返します。指定されたユーザー名とパスワードでログインできなかった場合、エラー メッセージには、最後の例の
/ の無効なユーザー名とパスワードのペアが含まれます。 /LDAP 変数
$ldap['user '] = 'uname';
$ldap['pass'] = 'password';
$ldap['host'] = 'ldap.example.com '; この記事へのリンク http://www .cxybl.com/html/wlbc/Php/20121126/34395.html



声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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ヘンタイを無料で生成します。

ホットツール

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

SublimeText3 中国語版

SublimeText3 中国語版

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

EditPlus 中国語クラック版

EditPlus 中国語クラック版

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

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

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

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境