2017-05-09 3 views
1

Ich versuche gitlab auf Linux-Rechner zu installieren. Und ich stecke auf LDAP-Konfiguration in /etc/gitlab/gitlab.rb Datei. Ich möchte den Zugriff für Mitglieder von schwarzen und grünen Teams erlauben, den Zugriff auf alle anderen verweigern.Zugriff auf gitlab basierend auf ldap-Gruppen

meine conf sieht wie folgt aus:

gitlab_rails['ldap_enabled'] = true 

###! **remember to close this block with 'EOS' below** 
gitlab_rails['ldap_servers'] = YAML.load <<-'EOS' 
main: 
    label: 'LDAP' 
    host: 'hidden' 
    port: 'hidden' 
    uid: 'sAMAccountName' 
    method: 'plain' 
    bind_dn: 'hidden' 
    password: 'hidden' 
    active_directory: true 
# allow_username_or_email_login: true 
# block_auto_created_users: false 
    base: "cn=Black Team,OU=hidden2,OU=hidden3,OU=hidden4,OU=hidden5,OU=hidden6,DC=ad,DC=companyname,DC=com" 
    base: "cn=Green Team,OU=hidden2,OU=hidden3,OU=hidden4,OU=hidden5,OU=hidden6,DC=ad,DC=companyname,DC=com" 
# user_filter: '' 
# attributes: 
# username:['uid', 'userid', 'sAMAccountName'] 
# email: ['mail', 'email', 'userPrincipalName'] 
# name:  'cn' 
# first_name: 'givenName' 
# last_name: 'sn' 
# ## EE only 
# admin_group: '' 
# sync_ssh_keys: false 
EOS 

aber es funktioniert nicht. Höchstwahrscheinlich, weil diese Konfiguration den Zugriff für die Gruppe, nicht aber für die Mitglieder der Gruppe gewährt. Gibt es eine Möglichkeit, auch Untergruppen-/Unterelemente/Unterelementen Zugriff zu gewähren?

Ich weiß, dass wir etwas tun können:

base: '' 
    user_filter: '(|(memberOf=cn=Black Team,OU=hidden2,OU=hidden3,OU=hidden4,OU=hidden5,OU=hidden6,DC=ad,DC=companyname,DC=com)(memberOf=cn=Green Team,OU=hidden2,OU=hidden3,OU=hidden4,OU=hidden5,OU=hidden6,DC=ad,DC=companyname,DC=com))' 

, die sein wird: „jeden erlauben, und schneiden Ergebnisse nur Mitglieder des schwarzen & grünen Teams“ und es funktioniert richtig so weit, aber nach das Hinzufügen von ein paar mehr Teams Filter wird veeeeeery lang, und es wird nicht einfach sein, im Falle von komplizierteren Filtern zu aktualisieren.

Daher interessiere ich mich für eine Lösung, die jedes Mitglied der aufgeführten Gruppen (in "Basis" -Felder) erlaubt. Ist es möglich, mehrere Gruppen über das "Basis" -Feld zu definieren? Ist es möglich, Zugriff für Mitglieder von Gruppen zu erlauben, die in "Basis" -Feldern aufgeführt sind?

Antwort

0

Ich glaube nicht, dass Sie das tun können, um Basis-Feld und sollte nur 1 Basis, aber würde mehrzeilige Hilfe den sehr langen Filter mehr bearbeitbar machen?

Newline werden als Leerzeichen behandelt, daher kann es hilfreich sein, wenn Sie den Gruppennamen pro Zeile sehen.

user_filter: '(|(memberOf=cn=Black Team,OU=hidden2,OU=hidden3,OU=hidden4,OU=hidden5,OU=hidden6,DC=ad,DC=companyname,DC=com) 
       (memberOf=cn=Green Team,OU=hidden2,OU=hidden3,OU=hidden4,OU=hidden5,OU=hidden6,DC=ad,DC=companyname,DC=com)) 
       (memberOf=cn=Another Team,OU=hidden2,OU=hidden3,OU=hidden4,OU=hidden5,OU=hidden6,DC=ad,DC=companyname,DC=com))' 
Verwandte Themen