LPS:IdM/midPoint/LDAP

Z HelpDesk

Info

Zde jsou popsané pouze LDAPy udržované produkčním IdM midPoint.

LDAP-codes

Číselníky v produkčním LDAPu.

  • hostname: psyche.zcu.cz
  • větev: ou=codes,o=zcu,c=cz

LDAP2-codes

Číselníky v produkčním LDAPu.

  • hostname: cupid.zcu.cz
  • větev: ou=codes,o=zcu,c=cz

LDAP-rfc2307

Hlavní (kontová) větev v novém LDAPu.

  • hostname: themis.civ.zcu.cz
  • větev: ou=rfc2307,o=zcu,c=cz

Poznámka: na themis.civ.zcu.cz je také větev s číselníky, ale automaticky synchronizovaná ze psyche.zcu.cz prostředky LDAPu:

  • hostname: themis.civ.zcu.cz
  • větev: ou=codes,o=zcu,c=cz

LDAP-admins

Větev pro administrátorské uživatele (aplikace) v novém LDAPu.

  • hostname: themis.civ.zcu.cz
  • větev: ou=admins,o=zcu,c=cz

SAML

Pouze na themis.civ.zcu.cz.

Veškeré identity udržované midPointem v LDAPu mají také eduPerson objectClass. Udržuje se eduPersonEntitlement nastavovaný podle skupin a stavu identity.

Viz také https://www.eduid.cz/cs/tech/attributes/edupersonaffiliation .

Funguje to přes:

  • pomocné role LR: LDAP Edu XXX (sady atributů pro SAML) v git repozitáři
  • globální atributy (pro všechny aktivní) přímo v resource LDAP-rfc2307

Poznámka: skupiny jako takové - GROUP: XXX - nejsou v git repozitáři. Jde o entitlementy pouze v IdM - udržované přes GUI nebo pomocí skriptů.

Přidání nového atributu

  1. najít správnou roli LR: LDAP Edu XXX
  2. přidat hodnoty do eduPersonEntitlements - v git repozitáři + poslat do IdM

Přidání nové role

  1. vytvořit novou roli LR: LDAP Edu XXX' (např. podle ostatních) - v git repozitáři + poslat do IdM
    • poznámka: orderConstraint s "unbounded" je podstatná
  2. přiřadit do assigments ve správných skupinách GROUP: XXX

Modifikace, kam se role propagují

Část věcí je mj. ve statické konfiguraci (tj. součástí git repozitáře):

  • hr-org-str-pp-type-thp: role-login-ldap-edu-staff
  • hr-org-str-pp-type-vav: role-login-ldap-edu-faculty

Dynamické věci se pak spravují přímo v midPointu (GUI, skript, ...).

GUI:

Ve správných skupinách GROUP: XXX nebo na uživateli přidat nebo odebrat LR: LDAP Edu XXX na kartě assignemnt.

Skript (příklady):

./modify-role-by-name.py 'GROUP: doktorandi' -a role-login-ldap-edu-phd:role
./modify-role-by-name.py 'GROUP: doktorandi' -a role-login-ldap-edu-ezak-login:role
./modify-role-by-name.py 'GROUP: staff' -a role-login-ldap-edu-ezak-login:role
./modify-role-by-name.py 'GROUP: ps-nvz' -a role-login-ldap-edu-ezak-manager:role
./modify-role-by-name.py 'GROUP: students' -a role-login-ldap-edu-student:role
./modify-role-by-name.py 'GROUP: shib-ext-member' -a role-login-ldap-edu-member:role

./modify-user-by-name.py ezak -a role-login-ldap-edu-ezak-login:role
./modify-user-by-name.py ezak -a role-login-ldap-edu-ezak-admin:role
#./modify-user-by-name.py LOGIN -a role-login-ldap-edu-admin:role

# affiliations by faculty
for fak in rek; do
  ./modify-role-by-name.py "GROUP: $fak" -a role-login-ldap-edu-faculties:role
done
for fak in fav fdu fek fel ff fpe fpr fst fzs; do
  ./modify-role-by-name.py "GROUP: $fak" -a role-login-ldap-edu-faculties:role
  ./modify-role-by-name.py "GROUP: students-$fak" -a role-login-ldap-edu-faculties:role
done

Kontrola, kam se atributy propagují

Na dané roli LR: LDAP Edu XXX karta Memberships.

Administrátorské přístupy pro aplikace

Administrátorské přístupy řízeny z IdM.

Poznámka: popsány postupy za použití skriptů z příkazové řádky. Použití GUI je také možné.

Poznámka 2: Pro jména identit je potřeba držet konvenci pojmenování, aby nebyl konflikt s běžnými uživateli a skupinami.

Administrátor

Vyrobení nového administrátorského uživatele v LDAPu (nový přístup s heslem pro aplikaci):

desc='...' # např. 'Přístup pro monitoring Icinga'
id=... # např. icinga
read pass
./create-user.py "name=LDAP ADMIN: $id" "familyName=$id" "description=$desc" "credentials/password/value/clearValue=$pass" -a $(./query-role.py "name=LR: LDAP3 Admin User" --oid):role
./modify-user.py --query "name=LDAP ADMIN: $id" -- credentials/password=NULL

Virtuální identity LDAPu se v IdM nevyrábí - např. autentizace přes Kerberos (mechanizmy GSSAPI).

Skupina

Vyrobení nové ACL skupiny:

id=... # např. rfcDormitory
./create-role.py "name=LDAP ACL: $id" identifier=$id -a $(./query-role.py "name=LR: LDAP3 Admin Group" --oid):role

Řízení přístupů

V IdM udržováno pouze členství v admin skupinách pro LDAP.

Práva jako taková (co která skupina dělá) se dělá přímo v LDAP.

Admin uživatelé v IdM

Údržbou členství běžnými prostředky IdM (z GUI nebo skripty).

Příklad použití skriptů:

id=...
group=...

./modify-user.py --query "name=LDAP ADMIN: $id" -a $(./query-role.py name="LDAP ACL: $group" --oid):role

Virtuální uživatelé

Hodí se pro zařazení "virtuálních" uživatelů pro autentizaci.

Postup: ruční editace asociací na ACL skupině v IdM na LDAPu.

Příklad pro GSSAPI (kde MAKAC je login, HOSTNAME je stroj):

  • uid=MAKAC/root,cn=gssapi,cn=auth
  • uid=MAKAC/root,cn=gs2-iakerb,cn=auth
  • uid=MAKAC/root,cn=gs2-krb5,cn=auth
  • uid=host/HOSTNAME,cn=gs2-krb5,cn=auth

Skupiny s emailem - SOGo

Přiřadit skupině roli LR: LDAP Sogo Group a vyplnit atribut emailAddress.

==> v LDAP se přidá objectClass sogoGroup