Sinkronizacija AD grupa sa OpenShift

U prethodnom postu o integraciji OpenShift okruženja sa Active Directory omogućena je autentifikacija korisnika na OpenShiftu korištenjem AD korisničkog imena i lozinka. Međutim održavanje sustava dodavanjem pojedinačnih prava svakom korisničkom računu zamorna je aktivnost. Efikasnije je upravljati pravima dodavanjem korisničkih računa u Active Directory grupe. 

Za potrebe sinkronizacije grupa potrebno je kreirati dvije datoteke: jedna datoteka će sadržavati konfiguraciju sinkronizacije a druga datoteka će sadržavati “whitelist” grupa koje će se sinkronizirati. Sinkronizaciju je moguće napraviti i bez whitelist datoteke ali time će OpenShift sinkronizirati sve grupe u kojima je korisnik kojemu je dodijeljeno članstvo u OpenShift grupi.

Kreirajte lab_ad_groups.yaml konfiguracijsku datoteku:

[root@lab-os-master01 ~]# cd /etc/origin/master

[root@lab-os-master01 master]# nano lab_ad_groups.yaml

Sadržaj datoteke bi trebao bit sličan ovome

kind: LDAPSyncConfig
apiVersion: v1
url: ldap://lab.local:389
insecure: true
bindDN: "cn=svcOSLDAP,ou=Users,dc=lab,dc=local"
bindPassword:
  file: "/etc/origin/master/lab_ldap_bind.encrypted"
  keyFile: "/etc/origin/master/lab_ldap_bind.key"
activeDirectory:
  usersQuery:
    baseDN: "OU=Accounts,DC=lab,DC=local"
    scope: sub
    derefAliases: never
    filter: (objectClass=organizationalPerson)
    pageSize: 0
  userNameAttributes: [ sAMAccountName ] 
  groupMembershipAttributes: [ memberOf ] 
  groupsQuery:
    baseDN: "OU=OpenShift,OU=Security Groups,DC=lab,DC=local"
    scope: sub
    derefAliases: never
    pageSize: 0
    filter: (objectClass=group)
    groupUIDAttribute: dn 
    groupNameAttributes: [ cn ] 
groupUIDNameMapping:
  "CN=OpenShift_Cluster_Admin,OU=OpenShift,OU=Security Groups,DC=lab,DC=local": lab-cluster-admins
  "CN=OpenShift_User,OU=OpenShift,OU=Security Groups,DC=lab,DC=local": lab-users
  "CN=OpenShift_MojProjekt_Admin,OU=OpenShift,OU=Security Groups,DC=lab,DC=local": lab-mojprojekt-admins

Obratite pozornost na slijedeće parametre:

  • url: LDAP adresa
  • bindDN: korisnički račun koji će se koristi za čitanje podatak iz Active Directory okruženja
  • bindPassword: ključ i kriptirana datoteka koja sadrži lozinku bindDN korisničkog računa
  • usersQuery: parametri korisničkih računa za koje će se omogućiti sinkronizacija članstva grupama
  • groupsQuery: parametri grupa koje će se sinkronizirati
  • groupUIDNameMapping: mapiranje naziva Active Directory grupa na nazive grupa na OpenShiftu, potrebno je unijeti cijeli DN grupe

Datoteku je moguće preuzeti sa GitHub repozitorija.

Zatim je potrebno kreirati whitelist datoteku kojom će se ograničiti koje grupe se sinkroniziranju

[root@lab-os-master01 master]# nano lab_ad_groups_whitelist.txt

Sadržaj datoteke bi trebao biti popis grupa (puni DN) koje će se sinkronizirati

CN=OpenShift_Cluster_Admin,OU=OpenShift,OU=Security Groups,DC=lab,DC=local
CN=OpenShift_User,OU=OpenShift,OU=Security Groups,DC=lab,DC=local
CN=OpenShift_MojProjekt_Admin,OU=OpenShift,OU=Security Groups,DC=lab,DC=local

Datoteku je moguće preuzeti sa GitHub repozitorija.

Nakon što su kreirane navedene datoteke potrebno je pokrenuti sinkronizaciju

[root@lab-os-master01 master]# oc adm groups sync --sync-config=/etc/origin/master/lab_ad_groups.yaml –whitelist=/etc/origin/master/lab_ad_groups_whitelist.txt --confirm

Ukoliko je mali broj promjena na članstvima grupa ovo se može izvoditi svaki put kada se korisnički račun doda ili ukloni iz grupe. U svakom slučaju preporučam da se sinkronizacija izvršava ili cron jobom operativnog sustava ili OpenShift CronJob.

Nakon sinkronizacije grupa članstvo u grupama može se provjeriti naredbom

[root@lab-os-master01 master]# oc get groups

Prilikom dodjele prava grupama obratite pozornost na to da li se grupi dodaju “cluster” prava koja se odnose na cijeli OpenShift klaster ili se dodaju samo unutar specifičnog projekta. Ukoliko se prava dodaju na pojedinačni projekt preporuka je da prije dodjele prava provjeri na kojem projektu se izvršava naredba (ili izvrši naredba za promjenu aktivnog projekta)

[root@lab-os-master01 master]# oc project MojProjekt
[root@lab-os-master01 master]# oc adm policy add-role-to-group admin lab-mojprojekt-admins

Naredba će dodati “admin” prava grupi “lab-mojprojekt-admin” (CN=OpenShift_MojProjekt_Admin,OU=OpenShift,OU=Security Groups,DC=lab,DC=local u Active Directory) na projekt MojProjekt.

Više o upravljanju rolama i pravima OpenShift platforme možete pročitati u službenoj dokumentaciji.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.