[Other doc versions]
[Doc downloads]
You can connect Stash to an existing LDAP user directory, so that your existing users and groups in an enterprise directory can be used in Stash. The LDAP directory is used for both user authentication and account management.
Stash is able to connect to the following LDAP directory servers:
See also this information about deleting users and groups in Stash.
Connecting Atlassian Stash to your external directory is not sufficient to allow your users to log in to Stash. You must explicitly grant them access to Stash in the global permission screen.
We recommend that you use groups instead of individual accounts when granting permissions.
When connecting Stash to an external directory, be careful not to allow access to Stash by more users than your Stash license allows. If the license limit is exceeded, your developers will not be able to push commits to repositories, and Stash will display a warning banner. See this FAQ.
When you first connect Stash to an existing LDAP directory, the Stash internal directory is synchronised with the LDAP directory. User information, including groups and group memberships, is copied across to the Stash directory.
When we performed internal testing of synchronisation with an Active Directory server on our local network with 10 000 users, 1000 groups and 200 000 memberships, we found that the initial synchronisation took about 5 minutes. Subsequent synchronisations with 100 modifications on the AD server took a couple of seconds to complete. See the option below.
Note that when Stash is connected to an LDAP directory, you cannot update user details in Stash. Updates must be done directly on the LDAP directory, perhaps using a LDAP browser tool such as Apache Directory Studio.
You can use LDAP filters to restrict the users and groups that are synchronised with the Stash internal directory. You may wish to do this in order to limit the users or groups that can access Stash, or if you are concerned that synchronisation performance may be poor.
For example, to limit synchronisation to just the groups named "stash_user" or "red_team", enter the following into the Group Object Filter field (see Group Schema Settings below):
(&(objectClass=group)(|(cn=stash_user)(cn=red_team)))
For further discussion about filters, with examples, please see How to write LDAP search filters. Note that you need to know the names for the various containers, attributes and object classes in your particular directory tree, rather than simply copying these examples. You can discover these container names by using a tool such as Apache Directory Studio.
When a user attempts to log in to Stash, once synchronisation has completed, Stash confirms that the user exists in it's internal directory and then passes the user's password to the LDAP directory for confirmation. If the password matches that stored for the user, LDAP passes a confirmation back to Stash, and Stash logs in the user. During the user's session, all authorisations (i.e. access to Stash resources such as repositories, pull requests and administration screens) are handled by Stash, based on permissions maintained by Stash in its internal directory.
To connect Stash to an LDAP directory:
設定 | 説明 |
---|---|
名前 | LDAP ディレクトリ サーバーを識別するのに役立つわかりやすい名前を入力します。例:
|
ディレクトリ タイプ | 接続する LDAP ディレクトリのタイプを選択します。新しい LDAP 接続を追加する場合、ここで選択した値によって、画面の残りのオプションの多くのデフォルト値が決定します。例:
|
ホスト名 | ディレクトリ サーバのホスト名。例:
|
ポート | ディレクトリ サーバーがリスンするポート。例:
|
SSL を使用する | ディレクトリ サーバーへの接続が SSL (Secure Sockets Layer) 接続の場合は、オンにします。この設定を使用するには、SSL 証明書を設定する必要があります。 |
ユーザ名 | ディレクトリ サーバーに接続する際にアプリケーションが使用するユーザーの識別名。例:
デフォルトでは、すべてのユーザーが uSNChanged 属性を読み取ることができます。ただし、管理者または関連する権限を持つユーザーのみが削除済みオブジェクト コンテナにアクセスすることができます。ユーザーが LDAP に接続するのに必要な特定の権限は、「バインド」および「読み取り」(ユーザー情報、グループ情報、グループ メンバーシップ、更新シーケンス番号、削除済みオブジェクト)です。これらは、Active Directory の組み込みの管理者グループのメンバーであるユーザーが取得することができます。 Note that the incremental sync will fail silently if the Active Directory is accessed by a user without these privileges. This has been reported as CWD-3093. |
パスワード | 上記で指定したユーザーのパスワード。 注: LDAP サーバーへの接続では、このアプリケーションがここで設定されたユーザー名とパスワードでサーバーにログインする必要があります。結果として、このパスワードは一方向にハッシュ化することができません。このアプリケーションのコンテキストで回復可能である必要があります。パスワードは現在、難読化されていないプレーン テキストでデータベースに保存されています。セキュリティを保証するには、他のプロセスがこのアプリケーションのデータベースまたは設定ファイルに対する OS レベルの読み取り権限を持っていないことを確認する必要があります。 |
設定 | 説明 |
---|---|
ベース DN | ディレクトリ サーバーに対してクエリを実行する場合に使用するルート識別名(DN)。例:
|
追加のユーザー DN | この値は、ユーザーの検索および読み込み時に、ベース DN に加えて使用されます。値が提供されない場合、サブツリー検索はベース DN から開始されます。例:
|
追加のグループ DN | この値は、グループの検索および読み込み時に、ベース DN に加えて使用されます。値が提供されない場合、サブツリー検索はベース DN から開始されます。例:
|
追加のユーザー DN または追加のグループ DN に値が指定されていない場合、サブツリー検索がベース DN から始まります。ディレクトリ構造が巨大な場合、ログインおよび実施されるログインに依存する操作について、パフォーマンスの問題が生じる可能性があります。
設定 | 説明 |
---|---|
読み取り専用 | LDAP ユーザー、グループ、メンバーシップは、ディレクトリ サーバーから取得され、ディレクトリ サーバーを介してのみ変更することができます。アプリケーション管理画面から LDAP ユーザー、グループ、またはメンバーシップを変更することはできません。 |
ローカル グループでの読み取り専用 | LDAP ユーザー、グループ、メンバーシップは、ディレクトリ サーバーから取得され、ディレクトリ サーバーを介してのみ変更することができます。アプリケーション管理画面から LDAP ユーザー、グループ、またはメンバーシップを変更することはできません。ただし、内部ディレクトリにグループを追加したり、そのグループに LDAP ユーザーを追加することができます。 |
設定 | 説明 |
---|---|
Enable Nested Groups | 入れ子グループのサポートを有効または無効にします。 いくつかのディレクトリサーバーは、グループを別のグループのメンバーとして定義することを許可します。このような構造のグループは入れ子グループと呼ばれます。入れ子グループは、1 つの親グループからそのサブグループへの権限の継承を許可し、権限をシンプルにします。 |
ユーザー ステータスをローカルで管理する | true の場合、ディレクトリ サーバー内のステータスに関係なく、Crowd でユーザーをアクティブ化/非アクティブ化できます。 |
期限切れのユーザーを除外する | true の場合、ActiveDirectory で期限切れとしてマークされたユーザー アカウントが自動的に削除されます。キャッシュされたディレクトリの場合、ユーザーの削除は、アカウントの有効期限日後の最初の同期中に行われます。 注: これは組み込み Crowd 2.0.0 以上で利用可能であり、2.0.0 m04 リリースでは利用できません。 |
ページングされた結果を使用 | 検索結果をシンプルにページングする LDAP 制御拡張機能の使用を有効または無効にします。ページングが有効になっている場合、検索によって一度にすべての検索結果が取得されるのではなく、データのセットが取得されます。必要なページサイズ、つまり、ページングされた結果が有効である場合、ページごとに返される検索結果の最大数を入力します。既定は 1000 です。 |
照会に従う | ディレクトリ サーバーがリクエストを別のサーバーにリダイレクトすることを許可するかどうかを選択します。このオプションは、ノード照会 (JNDI ルックアップ |
ネイティブ DN マッチング | ディレクトリ サーバーが返す DN の文字列表現が一貫している場合、ネイティブ DN マッチングを有効化できます。ネイティブ DN マッチングはパフォーマンスを大幅に改善させます。そのため、可能な場合は有効化することをお勧めします。
|
Enable Incremental Synchronization | ディレクトリの同期時に、前回の同期が照会されてからの変更のみが必要な場合、インクリメンタル同期を有効化します。 このオプションを使用する場合、同期するように設定されたユーザーアカウントは以下への読み取り権限を持っている必要があることに注意してください。
これらの条件の少なくとも1つが満たされない場合、Active Directory に追加された(または削除された)ユーザーは、アプリケーション内でそれぞれ追加(または削除)されずに終わります。 この設定は、ディレクトリのタイプが「Microsoft Active Directory」に設定されている場合に利用できます。 |
グループ メンバーシップをログイン時に更新する | この設定によって、グループ メンバーシップを認証中に更新できるようになります。次のようなオプションを設定できます。
|
Synchronization Interval (minutes) | 同期とは、アプリケーションがユーザー データの内部ストアをディレクトリ サーバ上のデータで更新するプロセスです。アプリケーションは x 分ごとにディレクトリ サーバーにリクエストを送信します。x はここで指定する数値です。既定値は60分です。 |
読み込みタイムアウト(秒) | The time, in seconds, to wait for a response to be received. If there is no response within the specified time period, the read attempt will be aborted. A value of 0 (zero) means there is no limit. The default value is 120 seconds. |
検索タイムアウト(秒) | 検索操作からのレスポンスを受信するまでに待機する時間 (秒)。値を 0 (ゼロ) にすると、無制限になります。既定値は 60 秒です。 |
接続タイムアウト(秒) | この設定は2つの操作に影響します。デフォルト値は10です。
|
設定 | 説明 |
---|---|
ユーザー オブジェクト クラス | これは LDAP ユーザー オブジェクトに使用されるクラス名です。例:
|
ユーザー オブジェクト フィルタ | ユーザー オブジェクトを検索するときに使用するフィルター。例:
More examples can be found in our knowledge base. See How to write LDAP search filters. |
ユーザー名属性 | ユーザー名を読み込むときに使用する属性フィールド。例:
備考: Active Directory では、「sAMAccountName」が「ユーザー ログイン名(Windows 2000 以前)」フィールドです。ユーザー ログイン名フィールドは「cn」で参照されます。 |
ユーザー名 RDN 属性 | ユーザー名をロードするときに使用する RDN (相対識別名)。各 LDAP エントリの DN は 2 つの部分 (記録が格納される RDN および LDAP ディレクトリ内の場所) で構成されます。RDN はディレクトリツリー構造と関係ない DN の一部です。例:
|
ユーザの名属性 | ユーザーの名を読み込むときに使用する属性フィールド。例:
|
ユーザーの姓属性 | ユーザーの姓を読み込むときに使用する属性フィールド。例:
|
ユーザーの表示名属性 | ユーザーの氏名を読み込むときに使用する属性フィールド。例:
|
ユーザーのメール属性 | ユーザーのメールアドレスを読み込むときに使用する属性フィールド。例:
|
ユーザーのパスワード属性 | ユーザーのパスワードを読み込むときに使用する属性フィールド。例:
|
User Unique ID Attribute | 属性は、ユーザー オブジェクトに対する一意かつ不変の ID として使用されます。これは、オプションであり、ユーザー名の変更の追跡に使用されます。この属性が設定されていない場合 (または無効な値に設定されている場合)、ユーザー名は検出されません。ユーアーの削除後の新しいユーザーの追加として解釈されます。 This should normally point to a UUID value. Standards-compliant LDAP servers will implement this as 'entryUUID' according to RFC 4530. This setting exists because it is known under different names on some servers, e.g. 'objectGUID' in Microsoft Active Directory. |
設定 | 説明 |
---|---|
グループ オブジェクト クラス | これは LDAP グループ オブジェクトに使用されるクラス名です。例:
|
グループ オブジェクト フィルター | グループ オブジェクトを検索するときに使用するフィルター。例:
|
グループ名属性 | グループ名を読み込むときに使用する属性フィールド。例:
|
グループ説明属性 | グループ名を読み込むときに使用する属性フィールド。例:
|
設定 | 説明 |
---|---|
グループ メンバー 属性 | グループのメンバーを読み込むときに使用する属性フィールド。例:
|
ユーザー メンバーシップ属性 | ユーザーのグループを読み込むときに使用する属性フィールド。例:
|
ユーザーのグループ メンバーシップを検索する際に、ユーザー メンバーシップ属性を使用する | ディレクトリ サーバーがユーザーのグループ メンバーシップをサポートしている場合に、このボックスを選択します (既定では、これが "
|
グループのメンバーを検索する際に、ユーザー メンバーシップ属性を使用する | ディレクトリ サーバーがユーザーのグループ メンバーシップをサポートしている場合に、このボックスを選択します (既定では、これが "
|