3

Windows ドメイン (Active Directory) の TeamCity 7.1.2 で LDAP 認証を構成しています。

基本的には機能します (ドメイン ユーザーでログインできます!) が、会社全体のすべてのユーザーがログインできます。
--> 現在、アクセスを開発者のみに制限しようとしています。

TeamCity ドキュメントでこの例を見つけました。

# filtering only users with specified name and belonging to LDAP group "Group1" with DN "CN=Group1,CN=Users,DC=example,DC=com"
teamcity.users.login.filter=(&(sAMAccountName=$capturedLogin$)(memberOf=CN=Group1,CN=Users,DC=example,DC=com))

CN=Group1,CN=Users,DC=example,DC=comそのため、ユーザーがいる LDAP グループに置き換えるだけです。
しかし、LDAP のクエリは私にとってまったく新しいものなので、正しい構文を理解することはできません。

私のユーザーはここにいます:

Active Directory のスクリーンショット

っていうことは:

CompanyName.de/CompanyName/IT/Entwickler/

「CompanyName」、「IT」、および「Entwickler」は組織単位です。
構文は次のようになることを理解しています。

OU=Entwickler,OU=IT,OU=CompanyName,DC=CompanyName,DC=de

それを TeamCity の構成ファイルに入れると、ログインできず、TeamCity はこれをログファイルに書き込みます。

LDAP で検索: base='DC=CompanyName,DC=de', filter='(&(sAMAccountName=MyUser)(memberOf=OU=Entwickler,OU=IT,OU=CompanyName,DC=CompanyName,DC=de)) '、scope=2、attributes=[sAMAccountName、distinguishedName] でエラーが発生しました

と:

ユーザー "MyUser" のログインに失敗しました: javax.security.auth.login.LoginException: [LDAP: エラー コード 32 - 0000208D: NameErr: DSID-031001CD、問題 2001 (NO_OBJECT)、データ 0、最適一致: 'DC=CompanyName ,DC=de'

私は何を間違っていますか?

注:私のクエリが正しい可能
があります。 これは TeamCity の問題です。 (私が使用ているバージョンには LDAP に関するいくつかの問題がありますが、私以外のエラー メッセージが表示されます) TeamCity の問題トラッカーにこれを投稿するかもしれませんが、エラーが発生しないことを確認する前に、 LDAP クエリが間違っているため、ここで質問します。

4

1 に答える 1

4

memberOfは、OUではなくグループを探しています。アクセスを制限するグループを作成し、適切なユーザーをグループに追加して、フィルターでグループの識別名を指定する必要があります。単純な'memberOf= {DN}'フィルターは、ネストされたグループメンバーシップを考慮しないことに注意してください。

編集:本当にOU内のユーザーに制限したい場合は、検索のベースDNをOUに変更し、memberOfパラメーターを検索に削除する必要があります。

于 2012-11-29T17:08:16.987 に答える