CNF 属性を含む LDAP ディレクトリとの同期でエラー コード 34 BAD_NAME が発生する
プラットフォームについて: Server および Data Center のみ。この記事は、Server および Data Center プラットフォームのアトラシアン製品にのみ適用されます。
Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.
*Fisheye および Crucible は除く
問題
Crowd または埋め込み Crowd を使用する別のアトラシアン アプリが Active Directory と同期しようとすると、失敗してエラー メッセージが生成されます。atlassian-crowd.log
または他のアトラシアン アプリのログに、次の内容が表示されます。
[atlassian.crowd.directory.DbCachingDirectoryPoller] Error occurred while refreshing the cache for directory [ XXXXX ].
org.springframework.ldap.InvalidNameException: cn=XXXXXXXXXXXXX
cnf:XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX,ou=XXXXX,ou=XXXX,dc=XXXXX,dc=XXXXXX: [LDAP: error code 34 - 0000208F: NameErr: DSID-031001F7, problem 2006 (BAD_NAME), data 8349
診断
LDAP ディレクトリと同期するときに、ログのエラーを確認します。オブジェクト DN に CNF 属性が見つかるはずです。
原因
これは、オブジェクトの DN にある CNF 属性が、無効な名前の例外エラーを発生させたことが原因の可能性があります。こちらの Microsoft ナレッジ ベースには、次のことが記載されています。
Active Directory は、ドメイン内のすべてのドメイン コントローラー間で行われるディレクトリ オブジェクトのマルチマスター複製をサポートしています。オブジェクトの複製によって名前の競合 (同じコンテナーにある 2 つのオブジェクトの名前が同じ) が発生すると、システムは該当するアカウントのうち 1 つの名前を自動的に一意の名前に変更します。たとえば、オブジェクト ABC の名前は「CNF:guid」に変更されます。ここで、「」は予約文字を表し、「CNF」は競合解決を示す定数で、「guid」は objectGuid 属性値の印刷可能な表明を表します。
ソリューション
CNF 属性を見つけたらこのエラーを正常に処理できるように、Crowd に改善リクエストが作成されました。
このディレクトリと同期するには、次の代替手段をお試しください。
- AD ツリーから重複したエントリを削除し、AD ドメイン間で重複が複製されていないことを確認します。このオプションについては、AD 管理者にご確認ください。
- CNF 属性を含むオブジェクト (ユーザーとグループ) との同期を避ける LDAP フィルターを作成します。グループの場合は次のようになります。
Should become something like:
(&(objectClass=group)(!(cnf=*)))
OR
(&(objectCategory=Group)(!(cn=*cnf=*)))
OR
(&(objectCategory=Group)(!(cn=*cnf:*)))
LDAP フィルターの記述方法に関する詳細は、「LDAP 検索フィルターの作成方法」をご確認ください。