web-dev-qa-db-ja.com

LDAPグループ(LDAP検索フィルターを使用)によってGitlabへのアクセスを制限する方法

LDAP認証を使用してGitlab CEインストールを実行しています。ここで、グループメンバーシップに基づいてアクセスを制限したいと思います。

オプション user_filterはオプションであるようです。しかし、グループメンバーシップに基づいて、誰にもログインを許可することはできません。

私が試したのはこれです(gitlabaccessはログインを許可するグループです):

user_filter: '(&(objectclass=group)(samaccountname=gitlabaccess))'

または:

user_filter: '(memberOf=cn=gitlabaccess,DC=my,DC=domain,DC=com)'

documentation は次のように述べていますが、これも機能せず、数字がどうあるべきかわかりません。

user_filter: '(memberOf:1.2.840.113556.1.4.1941:=cn=gitlabaccess,DC=my,DC=domain,DC=com)'

特定のユーザーは次のように機能します。

user_filter: '(&(objectclass=user)(samaccountname=jon.doe))'

Omn​​ibusパッケージからインストールされたGitlab CEバージョン9.5.5。

LDAPグループメンバーシップに基づいてGitlabへのアクセスを制限するにはどうすればよいですか?

5
Sethos II

私はそれを考え出した。すべてのOUを含むグループへの完全なパスを指定する必要があります。私の場合、これは:

user_filter: '(&(objectClass=user)(memberOf=CN=gitlabaccess,OU=mail-distribution-groups,OU=staff,DC=my,DC=domain,DC=com))'

comments で指摘されているように、上記のクエリはグループの直接のメンバーのみを返します。ネストされたグループのメンバーも含めたい場合は、次のように:1.2.840.113556.1.4.1941:memberOfに追加する必要があります。

user_filter: '(&(objectClass=user)(memberOf:1.2.840.113556.1.4.1941:=CN=gitlabaccess,OU=mail-distribution-groups,OU=staff,DC=my,DC=domain,DC=com))'

特定のユーザーを追加する場合は、次のようにします。

user_filter: '(|(&(objectClass=user)(memberOf=CN=gitlabaccess,OU=mail-distribution-groups,OU=staff,DC=my,DC=domain,DC=com))(&(objectClass=user)(sAMAccountName=jon.doe)))'
4
Sethos II