0

UnboundID LDAP SDK を使用して LDAP ローカル サーバーに接続し、認証する Java アプリケーションがあります。
サーバーは Active Directory を備えた Windows Server 2008 R2 であり、匿名認証を許可しないように構成されています。
しかし、アプリケーションを使用して匿名バインドを実行しようとすると、BindResult が成功します。JAVADOCが言うように、SimpleBindRequest()メソッドを使用して接続しています。これが私のコードです:

 public boolean autenticarAnonimamente() throws AutenticacaoExcecao
 {       
    GerenciadorConexaoLdap gerenciadorLdap = new GerenciadorConexaoLdap();
    LDAPConnection connection;
    try {
        connection = gerenciadorLdap.conectarServidorLdap(ldap);
        SimpleBindRequest request = new SimpleBindRequest();

        BindResult result = connection.bind(request);
        boolean retorno = result.getResultCode().equals(ResultCode.SUCCESS);
        connection.close();
        return retorno;
    } catch (LDAPException | GeneralSecurityException ex) {
        throw new AutenticacaoExcecao(ex);            
    }   
}

Google Apps Directory Sync を使用してサーバーをテストしようとしましたが、匿名バインドが拒否されました。匿名接続を許可するようにサーバーを構成すると、Google アプリケーションは問題なく動作します。
誰が何ができるか知っていますか?

4

1 に答える 1

2

違いが何であるかは明らかではありませんが、connection.bind(new SimpleBindRequest()) を呼び出すと、匿名の単純なバインド要求がサーバーに送信され、クライアントがサーバーからの応答を読み取るようになることは間違いありません。

ほとんどの場合、Google Apps Directory Sync が別のバインド リクエストを送信している (SASL ANONYMOUS バインド リクエストであるか、DN が空ではなくパスワードが空のリクエストである可能性があります) か、 Google Apps Directory Sync で見られるのは、実際にはバインドの失敗ではなく、バインド後に実行しようとしているものです。

クライアントとサーバー間のトラフィックを調べて、Google クライアントが何をしようとしているのかを確認することをお勧めします。UnboundID LDAP SDK で提供される ldap-debugger ツールを使用して、これを実行できます。これは、通過するトラフィックに関する詳細情報を表示する非常に単純な LDAP プロキシとして機能します。また、snoop、tcpdump、Wireshark などの任意の種類のネットワーク パケット キャプチャ メカニズムを使用して、分析のためにネットワーク通信をキャプチャすることもできます。

于 2014-05-21T07:25:41.817 に答える