2012-01-04 8 views
0

クライアントのIT担当者がSSL証明書を持たないLDAPサーバーに接続しようとしています。これは、SSLがインストールされているドメイン上のテストファイル上にあります。私は、コードを実行している場合で、ドメインからセキュアドメイン上のPHP経由で非セキュアLDAPサーバーに接続する

ldap_set_option(NULL, LDAP_OPT_DEBUG_LEVEL, 7); 

define("LDAP_SERVER","ldap://name.their.junk"); 
define("LDAP_BASE","CN=Users,DC=their,DC=junk"); 

$username = 'CN=Username,'.LDAP_BASE; 
$password = "Password"; 

$ldap = ldap_connect(LDAP_SERVER, 389) or die("Can't connect to LDAP server"); 

ldap_set_option($ldap, LDAP_OPT_PROTOCOL_VERSION, 3) ; 

if (ldap_bind($ldap, $username, $password)) { 
    ldap_unbind($ldap); 
    echo 'OK - Login valid'; 
} else { 
    die(ldap_error($ldap) . ' (' . ldap_errno($ldap) . ')'); 
} 

:のファイルは、私は過去の月に別のクライアントにうまく働いています接続するために非常に簡単なコードを、使用https://client.org/test_LDAP.phpので

であるとしましょうSSLをインストールすると、クライアントのADサーバーに証明書がない場合でも、LDAPとポート636を使用する必要がありますか?私は両方のポートと両方のldapsでコードを試しました:そしてldap:安全でない起動ドメインと彼の保護されたライブドメイン。何も動作していないようです。しかし、彼はユーザー名とパスワードを誓って、すべての変数が正しいとし、ホスト名のIPインスタンス(例:ldap:000.000.000.00)を使用するように指示しました。

ここで何か問題がありますか?

はい、私はちょうど別のクライアントと全く同じことを最近できたので、私のサーバー側で正しく構成されています。

いずれの洞察も高く評価されます。

+0

あなたはすべてのエラーを取得していますか?ログに何か?試した接続を見てみましたか(tcpdumpなど) – Jakub

+0

私の最後か彼の終わりですか?私は彼に彼のログをチェックして聞いたことがないと頼んだ。私のログは何を確認すべきですか? –

+0

あなたのアプリケーションの標準ログを調べる必要があります(例えば、PHPエラーログ、必要に応じてADのログを冗長にする)、実際には動作していないと言っています。あなたはこれまでに試しましたか? "ログは、(ログに記録されている場合は)エラーを指すことが多いため、ヘルプを依頼する前にレビューするものでなければなりません。これは、より良い質問書式のための示唆にすぎません。 – Jakub

答えて

1

あなたは上記のWindows Server 2003のActive Directoryまたは上で検索を実行しようとした場合、あなたが0にLDAP_OPT_REFERRALSオプションを設定する必要がいるようです:

ldap_connect(..) 
ldap_set_option ($ldap, LDAP_OPT_REFERRALS, 0); 
ldap_set_option($ldap, LDAP_OPT_PROTOCOL_VERSION, 3); 
ldap_bind(..) 
+0

これはまだ私のために働いていないようです。彼が実行しているバージョンはWindows 2003 Server x64 SP2です。しかし、それはショットの価値があった、ありがとう。 –

+0

私は先に進んで、これを正しい答えと記しておきます。サーバーに関する詳細を私に知らせるまで、これ以上のことはできません。私は暗闇の中で彼らが持っているものを完全に撮影しています。私はそれが私たちのサーバーを通さないファイアウォールの問題だと思います。 –

+0

なぜネットワーク上で何が起こったかを知るためにwireSharkを使用しないでください。 – JPBlanc

関連する問題