LPS:IdM/midPoint/LDAP
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
- najít správnou roli LR: LDAP Edu XXX
- přidat hodnoty do eduPersonEntitlements - v git repozitáři + poslat do IdM
Přidání nové role
- 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á
- 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