Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision Both sides next revision
tutorial:adm:connect_a_db_system [2019/01/02 10:22]
kotisovam [Konfigurace konektoru] 1. odstavec do angličtiny
tutorial:adm:connect_a_db_system [2019/01/29 14:04]
kotisovam [Basic configuration] translation of 2 paragraphs
Line 1: Line 1:
 +====== Systems - DB: Source of identities======
 +
 +<note important>TODO translate to ENG</note>
 +
 +===== Basic configuration =====
 +
 +This tutorial deals with how to connect an authoritative (primary) system as a source of identities. To this end, the basic Database Table Connector will come in handy. The source table we are going to use consists of 4 columns: id, username, first name, and last name.
 +
 +First, click on the **Add** button on the //Systems// tab item. Pick a system name, say, //Some base//. Check the ReadOnly checkbox field – your database is to serve as a source of data only, you don't actually wish to be able to write to it. Keep other attributes of the system as they are by default. Then click on the **Save and continue** button. 
 +
 +==== Connector configuration ====
 +
 +Go to the //Configuration// tab and select the //Database Table Connector (connId)//. Next, enter the path to the DB and the user login that IdM will use to get access the DB. This user must be authorized to read the connected table, as a minimum. Specific settings in our example:
 +
 +  * Host = localhost – DB nám běží na stejném serveru jako IdM
 +  * Port = 5432 – standardní port pro PostgreSQL
 +  * User = idmadmin – dříve vytvořený uživatel v DB s dostatečným oprávněním na čtení dat
 +  * User Password = %%**%%%%**%%* - zde je hodnota hesla pro DB uživatele zadaného v předchozím kroku
 +  * Table = users – v DB jsme si předpřipravili tabulku s názvem //users,//ze které budeme synchronizovat uživatele do CzechIdM
 +  * Key Column = id - //Database Table Connector (connId)//vyžaduje explicitní vyznačení sloupce, který je v DB použit jako unikátní identifikátor. Typicky se jedná o primární klíč tabulky.
 +  * JDBC Connection URL = //jdbc:postgresql:%%//%%localhost:5432/Somebase// – udává cestu k DB
 +  * JDBC Driver = org.postgresql.Driver – konektor podporuje více různých typů relačních databází. V našem případě napojujeme DB PostgreSql. Pro napojení je třeba v CzechIdM nastavit ovladač, který zajistí operace s daným typem databáze.
 +
 +V době psaní tohoto návodu lze driver pro PostgreSql stáhnout zde https://jdbc.postgresql.org/download.html
 +
 +Kromě nastavení v konfiguraci systému v CzechIdM je potřeba soubor s ovladačem umístit do umístění pro knihovny aplikačního serveru. V našem případě běží CzechIdM v AS Tomcat, tedy driver umístíme do složky //lib//. Případně můžeme umístit driver do WEB-INF/lib přímo v umístění aplikace CzechIdM.
 +
 +Ostatní atributy konektoru necháme nevyplněné nebo s výchozí předvyplněnou hodnotou.
 +
 +Pokud jsme vše správně nastavili a CzechIdM má přístup do naší DB, můžeme konfiguraci ověřit kliknutím na zelené tlačítko //Test konektoru// na začátku stránky.
 +
 +==== Schéma DB systému ====
 +
 +{{:Pictures/10000000000002F2000001899DDDD0CCFE8E5409.png?604x314}}//Přejdeme na záložku Schéma systému (popsáno v kapitole 2.3.2) a klikneme na tlačítko Generovat schema.// Konektor nám automaticky vrátí seznam dostupných atributů na napojovaném systému. Objekt vrácený z konektoru je ve výchozím stavu typu %%__%%ACCOUNT%%__%%, což nám pro napojení identit vyhovuje. Dále konektor vrátil podle očekávání 4 atributy dle našich sloupečků v DB. Ty zobrazíme kliknutím na obrázek lupy vedle typu objektu.
 +
 +Navíc nám konektor ale vrátil atribut %%__%%NAME%%__%%, který je definován standardem ConnId. Námi použitá implementace //Database Table Connector (connId)// se této specifikace drží, avšak pro synchronizaci jej nepoužívá, proto pro naše načítání dat ze zdrojového systému jej nebudeme potřebovat.
 +
 +Kliknutím na lupu vedle názvu atributu je možné zobrazit detaily konfigurace pro konkrétní atribut.
 +
 +{{:Pictures/100000000000017D0000023659372405B77FE7FF.png?380x565| \\
 +Obrázek 22: Detail atributu ve schématu systému}}
 +
 +V našem případě mají všechny atributy stejnou konfiguraci až na atribut id a %%__%%NAME%%__%%, které jsou označeny jako povinné.
 +
 +==== Mapování synchronizace pro DB ====
 +
 +Máme-li připravené schéma systému, pak přikročíme k mapování synchronizace. To nám umožní určit, jaké atributy z dostupného schématu nasynchronizujeme do IdM a také do kterých atributů Identity se budou atributy z účtu plnit.
 +
 +Na záložce //mapování atributů// stiskneme tlačítko //Přidat.//Vyplníme
 +
 +  * Typ operace = Synchronizace
 +  * Název mapování = users – naše označení této sychronizace. Systém může mít více různých synchronizací.
 +  * Název objektu = %%__%%ACCOUNT%%__%% - typ objektu, který chceme synchronizovat.
 +  * {{:Pictures/10000000000002DA000000DD52F875E7D80B2EDD.png?580x175}}Typ IdM entity = Identita – typ entity, na kterou se bude mapovat typ objektu vybraný v předchozím bodu.
 +
 +Po vytvoření mapování klikneme na detail tohoto mapování a nastavíme konkrétní vazby atributů účtu na atribut identity. Nastavíme mapování pro všechny naše atributy id, name, surname, username.
 +
 +{{:Pictures/10000000000001E30000019BC2AB56CA61594463.png?482x410|fig:}}//Například atribut id// nastavíme dle následujícího obrázku. Ostatní atributy nastavím stejně až na položky
 +
 +  * //Je identifikátorem//, která je zaškrtnuta pouze pro //id//.
 +  * Atribut entity – říká, že atribut ze systému pošleme k základnímu atributu entity v CzechDIM. Vyplníme jej u všech položek kromě //id//.
 +  * IdM klíč – definuje který atribut entity v CzechIdM bude daný atribut ze systému plnit. Tato volba je dosupná pouze pokud jsme předtím zaškrtli volbu //Atribut entity//. Dle obrázku výše namapujeme atributy //name, surname// a //username// na atributy v CzechIdM //firstName, lastName// a //username//.
 +
 +Jak je vidět, ne všechny atributy musíme mapovat na atribut v CzechIdM. Ty, které nenamapujeme, nebudou vyplněny k entitě v CzechIdM. V našem případě se k entitě nepřenese //id//, které nechceme dále využívat, ani jej neplánujeme posílat do spravovaných systémů.
 +
 +V našem příkladu jsme namapovali atributy účtu na systému na základní atributy Identity. Každá entita v CzechIdM má základní sadu atributů, které však lze rozšířit. Chceme-li v synchronizaci namapovat atributy na rozšířené atributy entit v CzechIdM musíme mít nejprve přichystán formulář EAV atributů pro danou entitu, viz kapitola 2.10.
 +
 +{{:Pictures/10000000000001E3000002B5C004B4BE134FD619.png?482x691}}
 +
 +====  Nastavení synchronizace ====
 +
 +V předchozí kapitole jsme si připravili mapování atributů pro synchronizaci. Nyní nastavíme samotný proces synchronizace, který toto mapování bude používat.
 +
 +{{:Pictures/10000000000002C60000019CA3EF9A94F6898EE9.png?604x349}}//Přejdeme na záložku Synchronizace// a klikneme na tlačítko přidat. V synchronizaci vyplníme //název// a //povolíme// ji dle obrázku. //Rekoncilace// můžeme zaškrtnout také, budeme načítat všechny účty bez omezení. Do sady mapovacích atributů vybereme mapování //users//, které jsme si vytvořili v minulé kapitole.
 +
 +Dále přejdeme ve formuláři až k nastavení operací pro jednotlivé stavy účtu a entity a nastavíme následujícím způsobem:
 +
 +  * Vazba existuje, akce = Aktualizovat entitu – Tím zajistíme, že při opakovaném běhu synchronizace, kdy jsou již v CzechIdM uloženy vazby //účet (koncový systém)// – //identita (CzechIdM),// budou přeneseny změny účtů do entity v CzechIdM
 +  * Vazba neexistuje, korelační atribut = id, akce = Vytvořit vazbu – Tím zajistíme, že při opakovaných bězích se prolinkují všechny //účty a entity//, které mají stejné //id.//
 +  * Entita neexistuje, akce = vytvořit entitu - Tím zajistíme, že při všech bězích se nám v CzechIdM vytvoří entity, které tam do té doby neexistovaly, dle účtů na systému.
 +  * Účet neexistuje, akce = Ignorovat – Nechceme provádět žádnou akci, pokud existuje entita v IdM a účet neexistuje. Systém je pro nás pouze zdroj dat.
 +
 +Položky Workflow necháme nevyplněny, ty slouží pro pokročilé skriptování u jednotlivých akcí.
 +
 +Na podzáložce Filtr nenastavujeme nic, nechceme omezovat synchronizaci pouze na některé účty. A záložka Logy je pouze informativní a obsahuje auditní log synchronizace.
 +
 +==== Spuštění synchronizace a log ====
 +
 +Pokud jsme úspěšně prošli nastavením v předchozích kapitolách, můžeme nyní přistoupit ke spuštění samotné Synchronizace. Přejdeme na záložku //Napojené systémy//, vybereme náš nakonfigurovaný systém a přejdeme na záložku Synchronizace. Synchronizaci spustíme zeleným tlačítkem se znakem trojúhelníku na konci řádku s konfigurací synchronizace.
 +
 +{{:Pictures/10000201000002C7000001BCD31C6120982EF7E6.png?604x376}}//Běžící synchronizace mají vyplněn sloupeček Běží//. Pokud přejdeme na detail běžící synchronizace (kliknutím na znak lupa) a poté přejdeme na záložku //Logy//, vidíme přehled všech synchronizací, včetně aktuálně běžících.
  
  • by cem