3

Active Directory (Windows Server 2008 R2) と Java に基づく適切な認証の実装に問題があります。

想定されるフローは、AD でアカウントが無効になっている場合 (プロパティ → アカウント → アカウント オプション → [アカウントが無効になっています] チェックボックス)、次を使用して接続するときに AD から次の例外を取得する必要があるというものですcom.sun.jndi.ldap.LdapCtxFactory

[LDAP: error code 49 - 80090308: LdapErr: DSID-0C0903A9, comment: AcceptSecurityContext error, data 533, v1db1

これ533は、アカウントがロック/無効になっていることを示しています。そして、少なくとも私の開発環境では問題なく動作します。アカウントを有効または無効にすると、すぐに認証結果が変わります。

ただし、顧客のマシンの本番環境では機能しません... InitialContext(no ) を正常に作成できますが、このバインドが成功し533た直後に検索操作が終了し、ルックアップを実行するために必要な権限がないというエラーが表示されます。

Active Directory 構成で何を探すべきですか? プーリングもADレプリケーションもありません...

[編集]: Wireshark ダンプ

無効なアカウントにバインドするリクエストは次のとおりです (LDAP プロトコルのみがデコードされます)。

0000   30 50 02 01 01 60 4b 02 01 03 04 3c 43 4e 3d 67  0P...`K....<CN=g
0010   72 7a 65 67 6f 72 7a 20 67 72 7a 79 62 65 6b 2c  rzegorz grzybek,
0020   63 6e 3d 75 73 65 72 73 2c 64 63 3d xx xx xx xx  cn=users,dc=xxxx
0030   xx xx xx xx xx 2c 64 63 3d xx xx 2c 64 63 3d xx  xxxxx,dc=xx,dc=x
0040   xx xx 2c 64 63 3d 70 6c 80 08 xx xx xx xx xx xx  xx,dc=pl..xxxxxx
0050   xx xx                                            xx

そして、これが応答です-通常resultCode: success (0)

0000   30 84 00 00 00 10 02 01 01 61 84 00 00 00 07 0a  0........a......
0010   01 00 04 00 04 00                                ......

無効なパスワードへの応答は次のとおりです。

0000   30 84 00 00 00 68 02 01 01 61 84 00 00 00 5f 0a  0....h...a...._.
0010   01 31 04 00 04 58 38 30 30 39 30 33 30 38 3a 20  .1...X80090308: 
0020   4c 64 61 70 45 72 72 3a 20 44 53 49 44 2d 30 43  LdapErr: DSID-0C
0030   30 39 30 33 41 39 2c 20 63 6f 6d 6d 65 6e 74 3a  0903A9, comment:
0040   20 41 63 63 65 70 74 53 65 63 75 72 69 74 79 43   AcceptSecurityC
0050   6f 6e 74 65 78 74 20 65 72 72 6f 72 2c 20 64 61  ontext error, da
0060   74 61 20 35 32 65 2c 20 76 31 64 62 31 00        ta 52e, v1db1.

変更後に正しいパスワードを送信すると、すぐにバインドが成功します。

ちなみに、LDAPS (ポート 636) を使用しても何も変わりません。無効なアカウントにバインドできます。

編集:仮想サーバーで再現された問題

LDAP/AD イベントの詳細なログ記録を有効にしました。

無効なアカウントの場合、LDAP バインドが Active Directory に正しくない場合、単一のイベントが発生します。

An account failed to log on.

Subject:
    Security ID:        SYSTEM
    Account Name:       CENTRALA$
    Account Domain:     XXX
    Logon ID:       0x3e7

Logon Type:         3

Account For Which Logon Failed:
    Security ID:        NULL SID
    Account Name:       MY_ACTUAL_DOMAIN_NAME_OF_BLOCKED_USER
    Account Domain:     XXX

無効なアカウントの場合、Active Directoryに正しくLDAP バインドすると、次のイベントが発生します。

1:

The computer attempted to validate the credentials for an account.

Authentication Package: MICROSOFT_AUTHENTICATION_PACKAGE_V1_0
Logon Account:  Guest
Source Workstation: CENTRALA
Error Code: 0x0

2:

An account was successfully logged on.

Subject:
    Security ID:        SYSTEM
    Account Name:       CENTRALA$
    Account Domain:     MS
    Logon ID:       0x3e7

Logon Type:         3

New Logon:
    Security ID:        MS\Guest
    Account Name:       Guest
    Account Domain:     MS
    Logon ID:       0x38cd57
    Logon GUID:     {00000000-0000-0000-0000-000000000000}

LDAP経由で無効なアカウントに正しくログインすると、Guestアカウントにログインする可能性はありますか??

4

1 に答える 1