Centralizovaná správa souborového systému prostřednictvím CzechIdM – realizace

Popisem způsobu, jakým náš Identity Manager CzechIdM může spravovat oprávnění na souborovém systému, se věnuje článek Centralizovaná správa souborového systému. Zde je názorně ukázáno, jak jednoduše se dají oprávnění prostřednictvím CzechIdM spravovat, jak si mohou jednotliví uživatelé žádat o oprávnění na sdílené adresáře, jak funguje schvalování přístupů z pohledu vedoucích jednotlivých uživatelů, případně z pohledu vlastníka dat atd. V tomto článku se podíváme na správu oprávnění prostřednictvím CzechIdM z pohledu realizace. Tak do toho!

 

Obecný popis řešení

Z pohledu CzechIdM se přidělením nějakého ACL oprávnění na sdílený adresář rozumí přidělení odpovídající adresářové role danému uživateli. Adresářové role se od klasických rolí Identity Manageru liší jen minimálně. Jediným podstatným rozdílem je to, že při přidělování adresářové role uživateli se musí specifikovat oprávnění, které má uživatel dostat na daný adresář. Oprávnění je tedy parametrem dané instance adresářové role. Přidělením adresářové role se nastavuje příslušné oprávnění rekurzivně na všechny následníky daného adresáře (pokud tedy nemá uživatel specifikované jiné oprávnění pro nějaký z následníků daného adresáře). Vyvstávají otázky, jakým způsobem CzechIdM nastavuje příslušná ACL oprávnění na souborovém systému a jakým způsobem vytváří, maže a upravuje adresářové role, aby odpovídaly adresářové struktuře souborového systému. Pojďme se tedy na to podívat.

Schéma realizace správy oprávnění na souborovém systému prostřednictvím CzechIdM

Schéma realizace správy oprávnění na souborovém serveru prostřednictvím CzechIdM

 

Zdroj informací o adresářové struktuře

Aby si mohli uživatelé žádat o práva na sdílené adresáře, tak musí mít CzechIdM k dispozici model adresářové struktury na daném souborovém serveru, dle kterého spravuje adresářové role. Tento model obsahuje záznamy pro všechny adresáře do určité hloubky adresářové struktury (parametr dané implementace), přičemž se dále eviduje vlastník daného adresáře, čas poslední rekoncilace a synchronizace a tzv. DID, což je jednoznačný identifikátor adresáře, který se nikdy nemění. DID se zapisuje do extended atributů adresářů a slouží například ke správné identifikaci adresáře při jeho přesunu a přejmenování. Tento model adresářové struktury se ukládá do tzv. přechodové databáze, ke které se CzechIdM připojuje jako k jakémukoliv jinému systému. Tato databáze obsahuje kromě tabulky s informacemi o adresářovém modelu také tabulku, kde se evidují ACL oprávnění jednotlivých uživatelů na jednotlivé adresáře a čas, kdy došlo k poslední modifikaci daného záznamu. V poslední tabulce “přechodové databáze” se ukládají informace o času skončení poslední synchronizace a rekoncilace.

Přechodová databáze slouží tedy z pohledu CzechIdM jako zdroj informací o adresářové struktuře na souborovém serveru a jako zdroj informací o tom, kdo má mít kam nastaveny jaká práva. Pokud si tedy uživatel v CzechIdM požádá o práva na nějaký adresář a vlastník dat mu tyto práva potvrdí, tak se potřebné informace zapíší právě do přechodové databáze. Tato databáze může běžet na stejném serveru jako CzechIdM, na souborovém serveru, případně někde úplně jinde.

 

Jak se vytváří adresářový model v přechodové databázi a jak se propagují práva na adresáře a soubory

Nyní se dostáváme k tomu, jakým způsobem se v přechodové databázi vytváří model adresářové struktury na souborovém serveru a jak se propagují ACL oprávnění na samotné adresáře a soubory. Slouží k tomu sada PERLovských skriptů a podpůrných tříd (pro práci s databází, pro logování prováděných operací, pro načítání konfiguračních údajů), které běží na souborovém serveru. Stěžejní je následující trojice skriptů:

 

Napojení CzechIdM na přechodovou databázi

Zatím jsme si popsali, jakým způsobem se spravuje přechodová databáze s modelem adresářové struktury a jak se nastavují ACL oprávnění na soubory a adresáře. Zbývá nám objasnit, jak s přechodovou databází komunikuje CzechIdM.

V CzechIdM jsou nakonfigurovány dva systémy, které s ní pracují. První z nich (smb_dir) pracuje s adresářovým modelem a slouží především k vytváření a správě adresářových rolí. K tomuto účelu je v CzechIdM napsáno speciální workflow, které se v pravidelných intervalech spouští a aktualizuje adresářové role, aby odpovídali modelu v databázi. Pokud například byl na souborovém systému odstraněn adresář, tak rekoncilační skript “reconacl.pl” smaže daný záznam v přechodové databázi a při následném spuštění daného workflow v CzechIdM dojde k odebrání příslušné adresářové role u všech identit, které ji měly přiřazenou, a k následnému smazání dané role.

Druhý ze systémů (smb_rights) slouží pro správu práv. Pokud si uživatel prostřednictvím CzechIdM požádá o nějakou adresářovou roli a vedoucí a vlastník dat mu přiřazení role schválí, tak se příslušná práva prostřednictvím tohoto systému zapíší přímo a ihned do přechodové databáze. Pro tento systém je připraveno rekoncilační workflow, které se spouští při nasazení této realizace do provozu. Říkali jsme si, že po vytvoření adresářového modelu skriptem “nacteni.pl” se do přechodové databáze musí importovat stávající ACL oprávnění pro uživatele. Je však také potřeba, aby se odpovídajícím identitám pro tyto výchozí práva přiřadili odpovídající adresářové role, což provede právě ono rekoncilační workflow.

 

Budoucí rozšíření

Stále hledáme způsoby, jak výše popsané řešení zlepšit a rozšířit. Příkladem může být:

Přínosy našeho řešení

Závěrem si pojďme shrnout hlavní přínosy našeho řešení správy oprávnění na sdílené adresáře.

Závěr

V článku jsme si popsali, jakým způsobem spravuje CzechIdM oprávnění na sdílené adresáře. Pokud by Vás zajímaly bližší detaily nebo byste se chtěli dozvědět o systému CzechIdM více informací, tak neváhejte a napište mně na  info@bcvsolutions.eu. Rád Vám zodpovím všechny Vaše otázky.

 

Líbí se mi to:

Další témata