TeamCity On-Premises 2026.2 Help

一般的な LDAP 構成文字列

このページには、さまざまな構成ケース用の ldap-config.properties ファイルのサンプルが含まれています。

基本的な LDAP ログイン

最小限の動作構成の例を以下に示します。 より安全なオプションとして、TLS/SSL 暗号化 LDAPS を使用することをお勧めします。

Windows Active ディレクトリ

java.naming.provider.url=ldaps://dc.example.com:636/DC=example,DC=com java.naming.security.principal=<username> java.naming.security.credentials=<password> teamcity.users.login.filter=(sAMAccountName=$capturedLogin$) teamcity.users.username=sAMAccountName

sAMAccountName は 20 シンボルに制限されていることに注意してください。 ユーザー名全体を含む別の属性を使用することをお勧めします。

UNIX

java.naming.provider.url=ldaps://dc.example.com:636/DC=example,DC=com java.naming.security.principal=<username> java.naming.security.credentials=<password> teamcity.users.login.filter=(uid=$capturedLogin$) teamcity.users.username=uid

この場合、TeamCity はユーザーパスワードを保存しません。 ユーザーがログインするたびに、ログインフォームに入力された資格情報を使用して LDAP に直接ログインすることによって認証が実行されます。

バックアップ LDAP サーバーの指定

次のように、 java.naming.provider.url プロパティでバックアップ LDAP サーバーを指定できます。

# The second URL is used when the first server is down. java.naming.provider.url=ldaps://example.com:636/DC=example,DC=com ldaps://failover.example.com:636/DC=example,DC=com

特定の LDAP グループ内のユーザーのみを対象とした基本的な LDAP ログイン

特定のユーザグループのユーザだけがログインを許可されます。 ユーザはログインするためにドメインなしの部分のみにユーザ名を入力する必要があります。 例は Windows Active Directory の場合です。

java.naming.provider.url=ldaps://example.com:636/DC=example,DC=com java.naming.security.principal=<username> java.naming.security.credentials=<password> # 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)) #teamcity.users.username=sAMAccountName # Allow only username part without domain (optional) teamcity.auth.loginFilter=[^/\\\\@]+ # No synchronization, just login. teamcity.options.users.synchronize=false teamcity.options.groups.synchronize=false

ユーザー詳細同期を伴う Active ディレクトリ

ユーザーは、ドメイン部分を除いたドメインのお名前で TeamCity にログインできます。また、すべての Active ディレクトリのエントリを読み取れる、パスワードが "secret" の "teamcity" アカウントがあります。 TeamCity ユーザーの表示お名前とメールアドレスは、Active ディレクトリから同期されます。

java.naming.provider.url=ldaps://example.com:636/DC=example,DC=com java.naming.security.principal=CN=teamcity,CN=Users,DC=example,DC=com java.naming.security.credentials=secret teamcity.users.login.filter=(sAMAccountName=$capturedLogin$) teamcity.users.username=sAMAccountName # User synchronization: on, synchronize display name and email. teamcity.options.users.synchronize=true teamcity.users.filter=(objectClass=user) teamcity.users.property.displayName=displayName teamcity.users.property.email=mail

ユーザー詳細同期とユーザー作成を伴う Active ディレクトリ

ユーザーは、ドメイン部分を除いたドメインのお名前で TeamCity にログインできます。また、すべての Active ディレクトリのエントリを読み取れる、パスワードが "secret" の "teamcity" アカウントがあります。 TeamCity ユーザーの表示お名前とメールアドレスは、Active ディレクトリから同期されます。 TeamCity データベースに存在しないユーザーが作成されます。 Active ディレクトリに存在しなくなったユーザーは、TeamCity ユーザーデータベースから削除されます。

java.naming.provider.url=ldaps://example.com:636/DC=example,DC=com java.naming.security.principal=CN=teamcity,CN=Users,DC=example,DC=com java.naming.security.credentials=secret teamcity.users.login.filter=(sAMAccountName=$capturedLogin$) teamcity.users.username=sAMAccountName # User synchronization: on, synchronize display name and email. teamcity.options.users.synchronize=true teamcity.users.filter=(objectClass=user) teamcity.users.property.displayName=displayName teamcity.users.property.email=mail # Automatic user creation and deletion during user synchronization teamcity.options.createUsers=true teamcity.options.deleteUsers=true

グループ同期を伴う Active ディレクトリ

1 つ以上のグループマッピングが定義された ldap-mapping.xml ファイルがあるはずです。

ldap-config.properties ファイル:

java.naming.provider.url=ldaps://example.com:636/DC=example,DC=com java.naming.security.principal=CN=teamcity,CN=Users,DC=example,DC=com java.naming.security.credentials=secret teamcity.users.login.filter=(sAMAccountName=$capturedLogin$) teamcity.users.username=sAMAccountName # User synchronization is on, synchronize display name and email. teamcity.options.users.synchronize=true teamcity.users.filter=(objectClass=user) teamcity.users.property.displayName=displayName teamcity.users.property.email=mail # Automatic user creation and deletion during users synchronization teamcity.options.createUsers=true teamcity.options.deleteUsers=true # Groups synchronization is on teamcity.options.groups.synchronize=true # The group search LDAP filter used to retrieve groups to synchronize. # The result includes all the groups configured in the ldap-mapping.xml file. teamcity.groups.filter=(objectClass=group) # The LDAP attribute of a group storing its members. teamcity.groups.property.member=member

同期するグループ数の制限

teamcity.users.filter プロパティは、ユーザーの同期中に処理されるユーザーアカウントの数を制限できます。

Active ディレクトリに "TeamCity Users" グループを作成し、必要なすべてのグループをこのグループに含めることをおすすめします。たとえば、次のような Active ディレクトリ構造になる場合があります:

  • メンバー A、ユーザー 2 を持つグループ A

  • メンバー B、メンバー 3、ユーザー 4

  • メンバーとして Group A、Group B を持つグループ "TeamCity Users"

その後、 teamcity.users.filter プロパティを更新します。 例:

teamcity.users.filter=(&(objectClass=user)(memberOf:1.2.840.113556.1.4.1941:=CN=TeamCity Users,OU=Accounts,DC=domain,DC=com))

この場合、TeamCity は、ユーザーが対応する Active ディレクトリグループのメンバーである場合にのみアカウントを作成します。 入れ子になったグループがサポートされています。

あるいは、いくつかのグループをリストすることができます。

teamcity.users.filter=(&(objectClass=user)(|(memberOf=CN=GroupOne,OU=myou,DC=company,DC=tld)(memberOf=CN=GroupTwo,OU=myou,DC=company,DC=tld)))

TeamCity にサインインできるユーザーを制限するには、 teamcity.users.login.filter プロパティも変更する必要があります:

teamcity.users.login.filter=(&(sAMAccountName=$capturedLogin$)(memberOf:1.2.840.113556.1.4.1941:=CN=TeamCity Users,OU=Accounts,DC=domain,DC=com))

フィルター構文の詳細については、 Microsoft のドキュメント(英語)を参照してください。 AD 属性の詳細については、 Microsoft のドキュメント(英語)を参照してください。

2026 年 9 月 11 日