Ldap

如何通過 LDAP 組(使用 LDAP 搜尋過濾器)限制對 Gitlab 的訪問?

  • October 5, 2017

我有一個正在執行的帶有 LDAP 身份驗證的 Gitlab CE 安裝。現在我想根據組成員身份限制訪問。

該選項user_filter似乎是可以選擇的。但是,我似乎無法讓任何人根據組成員身份登錄。

我嘗試的是這個(gitlabaccess應該被允許登錄的組):

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

或者:

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

文件說明了以下內容,但它也不起作用,我不知道數字應該是什麼:

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))'

從綜合包安裝的 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))'

正如評論中所指出的,上述查詢僅返回該組的直接成員。如果您還想包含嵌套組的成員,則必須: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)))'

引用自:https://serverfault.com/questions/874182