GitLab & FreeIPA (389-DS)

Moi,
olen tässä virittelemässä GitLabia käyttöön ja se tuntuisi toimivan paikallisilla tunnuksilla ihan ok.
Kuitenkin tuolla taustalla olisi myös FreeIPA:lla luotu directory service ja tähän olisi erittäin kiva
saada GitLab kytkettyä. FreeIPA taitaa käytellä 389-DS:ää.

Tällä hetkellä saankin kaikki FreeIPAn kannassa olevat käyttäjät sisään Gitlabiin ja heillä on
oletuksena oikeudet luoda omia projekteja ja ryhmiä.

Kuitenkin olisi erittäin tärkeätä rajoitella oikeuksia, eli käytännössä päästää sisään ne henkilöt,
jotka kuuluu FreeIPAssa ryhmään nimeltä Gitlab.

tällä hetkellä saan tuotettua katsottavaksi seuraavanlaista dataa:

gitlab.yml

#
  # 2. Auth settings
  # ==========================

  ## LDAP settings
  ldap:
    enabled: true
    host: 'freeipa.verkko.local'
    base: 'cn=groups,cn=accounts,dc=verkko,dc=local'
    port: 389
    uid: 'uid'
    method: 'plain' # "ssl" or "plain"
    #bind_dn: 'cn=gitlab,dc=verkko,dc=local'
    #password: ''

Infoa jaakosta

[root@ipaclient ~]# ipa user-find jaakko --all
--------------
1 user matched
--------------
  dn: uid=jaakko,cn=users,cn=accounts,dc=verkko,dc=local
  User login: jaakko
  First name: Jaakko
  Last name: Pekka
  Full name: Jaakko Pekka
  Display name: Jaakko Pekka
  Initials: JP
  Home directory: /home/jaakko
  GECOS field: Jaakko Pekka
  Login shell: /bin/sh
  Kerberos principal: jaakko@VERKKO.LOCAL
  Email address: jaakko@verkko.local
  UID: 1730400006
  GID: 1730400006
  Account disabled: False
  Password: True
  Member of groups: ipausers, gitlab
  Kerberos keys available: True
  ipauniqueid: 279d60e0-ea30-11e2-8c0f-b63e6128612b
  krbextradata: AAL7tt5Rcm9vdC9hZG1pbkBCSU9WRVJLS08uTE9DQUwA
  krblastpwdchange: 20130711134531Z
  krblastsuccessfulauth: 20130712135155Z
  krbloginfailedcount: 0
  krbpasswordexpiration: 20130711134531Z
  krbpwdpolicyreference: cn=global_policy,cn=VERKKO.LOCAL,cn=kerberos,dc=verkko,dc=local
  mepmanagedentry: cn=jaakko,cn=groups,cn=accounts,dc=verkko,dc=local
  objectclass: top, person, organizationalperson, inetorgperson, inetuser,
               posixaccount, krbprincipalaux, krbticketpolicyaux, ipaobject,
               ipasshuser, ipaSshGroupOfPubKeys, mepOriginEntry
----------------------------
Number of entries returned 1
----------------------------
[root@ipaclient ~]#

Infoa Pekasta

  dn: uid=pekka,cn=users,cn=accounts,dc=verkko,dc=local
  User login: pekka
  First name: Pekka
  Last name: Puupää
  Full name: Pekka Puupää
  Display name: Pekka Puupää
  Initials: PP
  Home directory: /home/pekka
  GECOS field: Pekka Puupää
  Login shell: /bin/sh
  Kerberos principal: pekka@VERKKO.LOCAL
  Email address: pekka@verkko.local
  UID: 1730400007
  GID: 1730400007
  Account disabled: False
  Password: True
  Member of groups: ipausers
  Kerberos keys available: True
  ipauniqueid: c1762fb8-eafc-11e2-a3e2-b63e6128612b
  krbextradata: AAI/DuBRcm9vdC9hZG1pbkBCSU9WRVJLS08uTE9DQUwA
  krblastpwdchange: 20130712141007Z
  krbpasswordexpiration: 20130712141007Z
  krbpwdpolicyreference: cn=global_policy,cn=VERKKO.LOCAL,cn=kerberos,dc=verkko,dc=local
  mepmanagedentry: cn=pekka,cn=groups,cn=accounts,dc=verkko,dc=local
  objectclass: top, person, organizationalperson, inetorgperson, inetuser, posixaccount, krbprincipalaux, krbticketpolicyaux,
               ipaobject, ipasshuser, ipaSshGroupOfPubKeys, mepOriginEntry
----------------------------
Number of entries returned 2
----------------------------
[root@ipaclient ~]#

Molemmat testikäyttäjät, sekä Jaakko että Pekka pääsevät kirjautumaan sisään. Näistä Jaakko kuuluu joukkoon gitlab ja Pekka ei kuulu.

Ja itseltäni alkaa kohta usko mennä, kun en saa millään onnistumaan. Olen tuota gitlab.yml:n host riviä modannut vaikka millaiseen muotoon (esim tyyliin base: ‘cn=gitlab,cn=groups,cn=accounts,dc=verkko,dc=local’), mutta ei toimi. Suluissa oleva esimerkki ei päästä enää ketään käyttäjiä sisään.

Sen lisäksi olen todennut, että tuolla bind_dn rivillä ei taida olla mitään vaikutusta mihinkään.

Eli, osaisiko joku valistunut sysadmin nyt auttaa aloittelijaa, että kuinka hemmetissä voisin taikoa ryhmän gitlab jäsenet sisään ja jättää muut ulos. Perjantaina alkaa usko mennä :slight_smile:

EDIT:
Ainiin, distrona CentOS 6.4

Vastaanpa itse itselleni :stuck_out_tongue:
Vaikuttaa siltä, että kyseistä featurea ei edes ole GitLabissa. Pitänee asentaa patch, kokeilen kun kerkeän. Jostain myös sattui silmään sellainen teksti, että kyseinen ominaisuus tulisi tulevaan GitLab 6.0 Enterprise versioon…