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))'
OmnibusパッケージからインストールされたGitlab CEバージョン9.5.5。
LDAPグループメンバーシップに基づいてGitlabへのアクセスを制限するにはどうすればよいですか?
私はそれを考え出した。すべての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)))'