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

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









最近、多くの Win11 ユーザーが、シャットダウン時に、taskhostwindow タスク ホストがシャットダウン タスクを実行しているというメッセージが表示されると報告しています。ユーザーは、ローカル レジストリ エディターの下のデスクトップ フォルダーに入り、右側のウィンドウで AutoEndTasks を選択して設定できます。このサイトは、シャットダウン時にこの問題の解決策をユーザーに丁寧に紹介します。 Windows 11 のシャットダウンでは、taskhostwindow タスク ホストがシャットダウン タスクを実行していることを示すメッセージが表示されます。 解決策 1. 次の図に示すように、win キー + r キーの組み合わせを使用し、「regedit」と入力して Enter キーを押します。 2. [HKEY]を検索します

タスクを終了したりアプリケーションを停止したりするためにタスク マネージャーを起動すると、通常、多数のプロセスが実行されていることがわかります。これはまったく正常なことです。ただし、まったく気づいていないシステム リソースを使用しているプログラムが存在することがあります。これらのプロセスの 1 つはアグリゲーター host.exe であり、最近ユーザーの間で混乱を引き起こしています。これらのプロセスの一部は正当な Windows 要件である可能性がありますが、その他のプロセスはバックグラウンドで実行され、ユーザーの認識や同意なしに問題を引き起こす悪意のあるプログラムである可能性があります。 Windows 11 でタスク マネージャーを起動する 5 つの方法を説明した後、aggregator host.exe が安全かウイルスかを確認する方法を説明します。ついていく

マスターとホストの違いは次のとおりです: 1. ホストはクライアントまたはサーバーの役割を果たすことができますが、マスターは分散システム内の他のスレーブ サーバーの調整と管理を担当する中央サーバーです; 2. ホストは通常のコンピュータ デバイスであり、マスターです通常、より高い処理能力を持ち、タスクの処理と分散、データの管理、システム全体の安定性の維持にリソースが使用されます; 3. ホストはネットワーク内のノードであり、マスターはネットワーク内で中心的な役割を果たすサーバーです。分散システム。

「ホストへのルートがありません」の解決策には、ネットワーク接続の確認、IP アドレスとポートの確認、ファイアウォール構成の確認、ルーティング構成の確認、ネットワーク デバイス構成の確認、ネットワーク サービス ステータスの確認、ネットワーク構成の確認と連絡先が含まれます。ネットワーク管理者。詳細な紹介: 1. ネットワーク接続をチェックして、クライアントとターゲット ホスト間のネットワーク接続が正常であることを確認します。ping コマンドまたはその他のネットワーク ツールを使用してネットワーク接続をテストし、ネットワーク ケーブルなどのハードウェア デバイスが接続されているかどうかを確認します。 、ワイヤレス ネットワーク、ルーターが正常に動作していることを確認してください。ネットワーク接続が安定していることなどを確認してください。

1. LDAP インジェクション LDAP (Light Directory Access Portocol) は、X.500 標準に基づく軽量のディレクトリ アクセス プロトコルです。ディレクトリ データベースにアクセスするためのサービスとプロトコルを提供します。ディレクトリ データベースでディレクトリ サービスを形成するためによく使用されます。このディレクトリは、クエリ、参照、検索用に最適化された専門的な分散データベースであり、Linux/Unix システムのファイル ディレクトリに似たツリー構造でデータを編成します。公開証明書、セキュリティ キー、会社の物理デバイス情報など、頻繁に変更されないデータは、ディレクトリへの保存に適しています。 LDAP は、SQL に似ていてクエリ構文を備えた検索プロトコルとして理解できますが、インジェクション攻撃のリスクもあります。 LDAP インジェクションはクライアントを指します

SQL インジェクションの本質が文字列の結合である場合、注入できるすべての本質は文字列の結合です。LDAP インジェクションも一種のインジェクションとして例外ではありません。さらに興味深いのは、括弧の結合であることです (SQL インジェクションは括弧も連結しますが、文字列を連結すると言ったほうが一般的です)。環境構築編ではbee-boxのldap環境構築について詳しく解説しており、射撃練習編ではphpとldapの接続処理や途中で使用する特殊機能の紹介、括弧を接続するためのいくつかのテクニック。まず、bwapp での LDAP 射撃場のログイン プロセスについて説明します。まず、これは LDAP ログイン インターフェイスであり、URL は http://192.168.3.184/bW です。

ホスト ファイルはパス「C:\Windows\System32\drivers\etc」にあります。ホスト ファイルはメモ帳などの通常のテキスト編集ソフトウェアで開くことができるプレーン テキスト ファイルです。ホスト ファイルの機能は次のとおりです。 IP アドレスとホスト名とのマッピング関係を含めます。

1. 概要 私の学習プロセスによれば、Web 攻撃のモデルと脆弱性が何であるかを知る必要がありました。今、私は予期せぬ状況に遭遇しました。私が初めて LDAP を目にしたのは、ある国営企業でのペネトレーション テスト中でした。人気のないもの(公認)を見つけて興味をそそられました。 LDAPの概念:正式名称:Lightweight Directory Access Protocol(Lightweight Directory Access Protocol)、特徴:プロトコルについては難解すぎるので説明しませんが、データを保存するデータベースとして理解できます、その特徴はそれはツリーです データベースの形式をとったデータベースです まず、データベースの名前はツリーのルート (つまり DB=dc) に相当し、ルートからリーフ ノードまでのプロセスは次のようになります。
