ATTIS4 – Synchronizace s LDAP serverem
Transkript
SW ATTIS nástroje manažerského řízení SW ATTIS Synchronizace s LDAP serverem Verze manuálu: 0.9 Datum: 6. 10. 2016 ATTN Consulting s.r.o. Strana: 1 / 9 Hanušova 100/10, 779 00 Olomouc, Czech Republic www.attis.cz, e-mail: [email protected], tel.: +420 585 751 601, IČ: 25894978, DIČ: CZ25894978, č.ú.: 533417001/5500 Společnost je zapsána v Obchodním rejstříku vedeném Krajským soudem v Ostravě, oddíl C, vložka 24596. SW ATTIS nástroje manažerského řízení Obsah 1. Základní popis funkce ...........................................................................................................................................3 2. Nutná znalost a předpoklady pro provedení synchronizace ................................................................................3 3. Definice úlohy .......................................................................................................................................................3 Příklad konfigurace: ......................................................................................................................................4 Zdroj dat <Source> obsahuje atribut: .............................................................................................4 Transformace <Lookup> .......................................................................................................................5 Transformace <Part>.........................................................................................................................6 Transformace <UserDomainName> .....................................................................................................6 4. Datové typy, konverze ..........................................................................................................................................7 5. Seznam cílových objektů ATTISu ..........................................................................................................................8 6. Postup synchronizace ...........................................................................................................................................9 ATTN Consulting s.r.o. Strana: 2 / 9 Hanušova 100/10, 779 00 Olomouc, Czech Republic www.attis.cz, e-mail: [email protected], tel.: +420 585 751 601, IČ: 25894978, DIČ: CZ25894978, č.ú.: 533417001/5500 Společnost je zapsána v Obchodním rejstříku vedeném Krajským soudem v Ostravě, oddíl C, vložka 24596. SW ATTIS nástroje manažerského řízení 1. Základní popis funkce LDAP (Lightweight Directory Access Protocol) je odlehčený protokol vycházející ze standardu X.500 pro ukládání a přístup k adresářovým datům. Synchronizace s LDAP je v ATTISu implementována jako plánovaná úloha. Je možné synchronizovat údaje ve směru z LDAP serveru směrem do ATTISu. Synchronizovat lze osoby, uživatelské účty a uživatelské role včetně vazeb: osoba – uživatelský účet uživatelský účet – uživatelská role 2. Nutná znalost a předpoklady pro provedení synchronizace Jako zdroj dat pro synchronizaci může být jakýkoliv server odpovídající definici LDAP. Například Active Directory, OpenLDAP apod. Synchronizační úloha není vázána na přesnou adresářovou strukturu – je parametrizovatelná pomocí konfigurace datových transformací. Tato konfigurace definuje, co se na straně LDAP vybírá a kam se to na straně ATTISu ukládá. Pro každou transformaci je pak určen synchronizační klíč na straně LDAP, jenž může být stanoven libovolně při definici transformace za předpokladu, že je zaručena jeho unikátnost a jednoznačnost. Na straně ATTISu se používají jeho interní unikátní OId. Synchronizační klíč je vždy typu String. Ke každému synchronizačnímu klíči je přiřazeno příslušné Oid (GUID) odpovídajícího ATTISovského objektu. Do klíče (Id) je možné uložit textovou reprezentaci v podstatě čehokoliv (GUID, SID, DN apod.) a je vždy na úvaze implementátora, jaký konkrétní atribut použije. Mělo by se však jednak o položku, která unikátně objekt identifikuje a která se v čase nemění. Jakmile je ovšem proces synchronizace spuštěn, není doporučeno měnit mapování klíče (v případě, že by došlo ke změně klíče, proběhne plná synchronizace všech objektů, protože stávající vazba bude ztracena). Konfigurace určuje typ dat: osoba (Person), uživatel (User) nebo role (Role). Zdroj pak má stanoveno kritérium pro výběr a mapování atributů objektů. Synchronizační úloha provede dotaz na LDAP server a jednotlivé objekty se pak převedou do „mezivýsledků“. V rámci převodu může docházet ke konverzi datových typů jednotlivých atributů (např. SID na řetězec). Datové mezistruktury se pak nahrávají do konkrétních interních objektů ATTISu, což je krok, který už je od uživatele odstíněn a dán interní implementací. V aplikaci ATTIS, objekty typu uživatel a role, obsahují atribut „Nesynchronizovat s LDAP“. Tento atribut umožní danému objektu býti netečným vůči synchronizaci s LDAP a je určen pro systémové uživatele a role ATTISu. 3. Definice úlohy Definici provedeme v menu ATTIS: Systémové nastavení / Nastavení plánovaných úloh / Definice úkolu – kde založíme nový úkol typu LDAP synchronizace. Podstatnými parametry úlohy synchronizace je adresa LDAP serveru, číslo portu, jméno, heslo a volitelně lze užít komunikaci šifrovanou pomocí SSL. Transformace dat je definována ve formátu XML dle níže uvedené specifikace. XML parser se snaží poskytovat co nejpřesnější informace o případné chybě (resp. chybách), které umožňují snadnou lokalizaci a opravu problémů. ATTN Consulting s.r.o. Strana: 3 / 9 Hanušova 100/10, 779 00 Olomouc, Czech Republic www.attis.cz, e-mail: [email protected], tel.: +420 585 751 601, IČ: 25894978, DIČ: CZ25894978, č.ú.: 533417001/5500 Společnost je zapsána v Obchodním rejstříku vedeném Krajským soudem v Ostravě, oddíl C, vložka 24596. SW ATTIS nástroje manažerského řízení Chyby a průběh synchronizace se logují v logu aplikace ATTIS. Příklad konfigurace: <Configuration> <Options UserDefaultPassword = "aa" ChangePasswordOnFirstLogon="true" /> <Sources> <Source TargetEntity="User"> <SearchCriteria SearchBase="OU=ATTN,DC=attn,DC=local" Filter="(&(objectClass=user)(!objectClass=computer)(!UserAccountControl:1.2.840.113556.1.4.803:=2))" Scope="SubTree" /> <Mappings> <Mapping Source="objectSid" Target="Id" Type="Sid" ConvertTo="String" /> <Mapping Source="userPrincipalName" Target="Username" Type="String" > <UserDomainName> <Upn2DownLevelLogon UpnSuffix="@attn.local" NetBiosDomainName="ATTN"/> </UserDomainName> </Mapping> <Mapping Source="memberOf" Target="Roles" Type="String" Optional="true" /> </Mappings> </Source> <Source TargetEntity="Role"> <SearchCriteria SearchBase="OU=ATTN,DC=attn,DC=local" Filter="(&(objectClass=group)(cn=ATTN))" Scope="SubTree" /> <Mappings> <Mapping Source="objectSid" Target="Id" Type="Sid" ConvertTo="String" /> <Mapping Source="sAMAccountName" Target="Name" Type="String" /> <Mapping Source="member" Target="Users" Type="String" Optional="true"> <Lookup Field="objectSid" Type="Sid" ConvertTo="String"> <SearchCriteria SearchBase="OU=ATTN,DC=attn,DC=local" Filter="(&(objectClass=user)(distinguishedName=@@))" Scope="SubTree" /> </Lookup> </Mapping> </Mappings> </Source> <Source TargetEntity="Person"> <SearchCriteria SearchBase="OU=ATTN,DC=attn,DC=local" Filter="(objectClass=user)" Scope="SubTree" /> <Mappings> <Mapping Source="objectGUID" Target="Id" Type="Guid" ConvertTo="String" /> <Mapping Source="userPrincipalName" Target="CN" Type="String" Optional="true" > <UserDomainName> <Upn2DownLevelLogon UpnSuffix="@attn.local" NetBiosDomainName="ATTN"/> </UserDomainName> </Mapping> <Mapping Source="name" Target="FirstName" Type="String"> <Part Separator=" " Index="0" /> </Mapping> <Mapping Source="name" Target="LastName" Type="String"> <Part Separator=" " Index="1" /> </Mapping> </Mappings> </Source> </Sources> </Configuration> Konfigurace je uzavřena mezi kořenové elementy <Configuration></Configuration>. Options definují volitelnou možnost výchozího hesla a nutnosti změny. Options nemusí být uvedeny. Definice zdrojů dat je omezena elementy <Source></Source>. Je možné definovat více zdrojů, které se vyhodnocují postupně jeden po druhém, odshora dolů. Na pořadí tedy záleží (!), je vhodné, aby data, která na sebe logicky navazují, byla definována ve vhodném pořadí. Zdroj dat <Source> obsahuje atribut: - TargetEntity – povinný – druh dat, která jsou tímto zdrojem poskytována: Person, User nebo Role. Uvnitře elementu <Source> existuje právě jedna povinná definice kritéria <SearchCriteria>, na základě kterého jsou hledány objektu v LDAP a kolekce mapování <Mappings>, které určují, jaký atribut originálního objektu v LDAP struktuře se přenáší na cílový atribut v ATTISu. ATTN Consulting s.r.o. Strana: 4 / 9 Hanušova 100/10, 779 00 Olomouc, Czech Republic www.attis.cz, e-mail: [email protected], tel.: +420 585 751 601, IČ: 25894978, DIČ: CZ25894978, č.ú.: 533417001/5500 Společnost je zapsána v Obchodním rejstříku vedeném Krajským soudem v Ostravě, oddíl C, vložka 24596. SW ATTIS nástroje manažerského řízení Element <SearchCriteria> definuje vyhledávací filtr: - SearchBase – povinný – je kořen hledání dle definice LDAP, Filter – povinný – je filtr v zápisu dle definice LDAP a Scope – povinný – určuje rozsah hledání vzhledem ke koření: Object (pouze daný objekt dle filtru), OneLevel (pouze jedna úroveň dle filtru) nebo SubTree (celý podstrom dle filtru). U definice filtru je nutno mít na paměti, že některé speciální znaky je nutno v XML uvádět jako entity (např. & = & apod.). Element <Mapping> slouží pro definici mapování právě jednoho atributu ze zdroje do cíle: - Source – povinný – název pole ve zdroji, Target – povinný – název pole v cíli, Typ – povinný – typ datového pole ve zdroji, ConvertTo – nepovinný – volitelná konverze hodnoty do zvoleného typu a Optional – nepovinný – vyjadřuje, že atribut nemusí být ve zdroji přítomen a je ignorován. Není-li atribut definován jako nepovinný a zdrojový objekt jej neobsahuje, je signalizována chyba a synchronizace je přerušena. Mapování může volitelně obsahovat kolekci transformací získané hodnoty před tím, než je výsledek přiřazen do cílového pole. V aktuální implementaci jsou k dispozici transformace <Lookup>, <Part>. a <UserDomainName>. Transformace <Lookup> - Transformace <Lookup> umožňuje: vyhledání a záměnu hodnoty za hodnotu v jiném objektu (hodnotu nelze modifikovat !!!) získaná hodnota může být převedena na typově jinou a ta se následně použije v importu Dle uvedeného příkladu importu rolí: <Source TargetEntity="Role"> <SearchCriteria SearchBase="OU=ATTN,DC=attn,DC=local" Filter="(&(objectClass=group)(cn=test_role))" Scope="SubTree" /> <Mappings> …………….…. <Mapping Source="member" Target="Users" Type="String" Optional="true"> <Lookup Field="objectSid" Type="Sid" ConvertTo="String"> <SearchCriteria SearchBase="OU=ATTN,DC=attn,DC=local" Filter="(&(objectClass=user)(distinguishedName=@@))" Scope="SubTree" /> </Lookup> </Mapping> </Mappings> </Source> Provádí: 1) Skupina v LDAP „test_role“ Na její členy („member“) se uplatní definice „Lookup“ Filter="(&(objectClass=group)(cn=test_role))" 2) Atribut member se mapuje na cílový atribut Users. Zdrojová hodnota je typu String a je nepovinná. <Mapping Source="member" Target="Users" Type="String" Optional="true"> 3) Hodnota member není SID na základě kterého chceme objekty párovat, ale jedná se o jednoznačné jméno (distinguishedName typu string). Aby byl ATTIS schopen objekty přiřadit, musíme definovat záměnu hodnoty „distinguishedName“ za „objectSid“. <Lookup Field="objectSid" Type="Sid" ConvertTo="String"> <SearchCriteria SearchBase="OU=ATTN,DC=attn,DC=local" Filter="(&(objectClass=user)(distinguishedName=@@))" Scope="SubTree" /> </Lookup> Na základě definice <Lookup> je vyhledán dle <SearchCriteria> objekt, jehož distinguishedName (DN) odpovídá hledané hodnotě. Důležitý je řetězec @@ ve filtru kritéria, který je vždy v daném kroku nahrazen ATTN Consulting s.r.o. Strana: 5 / 9 Hanušova 100/10, 779 00 Olomouc, Czech Republic www.attis.cz, e-mail: [email protected], tel.: +420 585 751 601, IČ: 25894978, DIČ: CZ25894978, č.ú.: 533417001/5500 Společnost je zapsána v Obchodním rejstříku vedeném Krajským soudem v Ostravě, oddíl C, vložka 24596. SW ATTIS nástroje manažerského řízení jménem objektu DN. Pokud by kritérium vracelo více objektů, bere se první z nich. Nicméně v návrhu konfigurace je nanejvýš vhodné volit takový postup, aby identifikace objektu byla jednoznačná. Atribut „member“ skupiny „test_role“ ve tvaru „distinguishedName“ typu string je vyhledán a nahrazen atributem „objectSid“ objektu „user“. Atributy elementu <Lookup> pak definují, jakým způsobem bude nalezený objekt zpracován: - Field – povinný – název pole v objektu, který bude vracen Type – povinný – typ pole v objektu ConvertTo – nepovinný – volitelná konverze hodnoty do zvoleného typu. V našem případě se tedy vezme z objektu „objectClass=user“ jeho objectSid typu SID a konvertuje se na řetězec. Teprve tento se pak uloží do cílového pole Users. Mějte na paměti, že celý výpočet musí být typově v pořádku, tj. je nutno správně specifikovat typ hodnoty a dle potřeby definovat konverzi před jejím překladem a též před přiřazením do cílového pole. V opačném případě převod selže a proces synchronizace je zastaven. Transformace <Part> Tato transformace umožňuje získat část řetězce. Vstupní hodnota je rozdělena pomocí oddělovače a jako výsledek se vrací příslušná část dle požadovaného indexu. Typickým příkladem je získání příjmení z plného jména. Např. <Mapping Source="name" Target="LastName" Type="String"> <Part Separator=" " Index="1" /> </Mapping> Atributy jsou následující: - Separator – povinný – určuje separační řetězec, který odděluje jednotlivé části a Index – povinný – je pořadí části, která bude vrácena. Pokud je index mimo rozsah, vrací se prázdný řetězec. Transformace <UserDomainName> Transformace <UserDomainName> se používá pro „[email protected]“ na tvar „domain\username“. Př.: převod hodnoty ve tvaru <Mapping Source="userPrincipalName" Target="Username" Type="String" > <UserDomainName> <Upn2DownLevelLogon UpnSuffix="@attn.local" NetBiosDomainName="ATTN"/> </UserDomainName> </Mapping> V našem případě, „userPrincipalName“ vrací hodnotu ve tvaru „[email protected]“ a požadovaný tvar je „attn\username“. „UpnSuffix“ obsahuje řetězec, který bude zaměněn řetězcem „NetBiosDomainName“ a následně doplněn na začátek řetězce. Konec řetězce, až po znak „@“ (od konce řetězce) včetně, je odmazán. Znaky „@“ a „\“ mohou, ale nemusí být uvedeny, jsou doplněny automaticky. „UpnSuffix“ a „NetBiosDomainName“ musí být upraven dle konkrétní situace. ATTN Consulting s.r.o. Strana: 6 / 9 Hanušova 100/10, 779 00 Olomouc, Czech Republic www.attis.cz, e-mail: [email protected], tel.: +420 585 751 601, IČ: 25894978, DIČ: CZ25894978, č.ú.: 533417001/5500 Společnost je zapsána v Obchodním rejstříku vedeném Krajským soudem v Ostravě, oddíl C, vložka 24596. SW ATTIS nástroje manažerského řízení 4. Datové typy, konverze - V definici mapování je nutné explicitně uvést, v jakém formátu je zdrojová hodnota a na jakou cílovou hodnotu bude (pokud nemá zůstat v originále) konvertována. Jestliže nelze konverzi provést z důvodu nekompatibility typů, synchronizace selže. V současné implementaci jsou podporovány následující datové typy: String – řetězec ve formátu unicode, volitelně konvertovatelný na Guid nebo Sid Boolean – binární hodnota true / false nebo 0 / 1 Integer – celé číslo 32-bitů Guid – unikátní identifikátor, volitelně konvertovatelný na String Sid – Active Directory identifikátor, volitelně konvertovatelný na String Universal – „univerzální typ“, v podstatě hexadecimální řetězec (všechny LDAP atributy jsou fyzicky uloženy jako sekvence bajtů a tímto způsobem je lze reprezentovat). ATTN Consulting s.r.o. Strana: 7 / 9 Hanušova 100/10, 779 00 Olomouc, Czech Republic www.attis.cz, e-mail: [email protected], tel.: +420 585 751 601, IČ: 25894978, DIČ: CZ25894978, č.ú.: 533417001/5500 Společnost je zapsána v Obchodním rejstříku vedeném Krajským soudem v Ostravě, oddíl C, vložka 24596. SW ATTIS nástroje manažerského řízení 5. Seznam cílových objektů ATTISu Položky, které lze synchronizovat. Person - Id (String) – povinný klíč CN (String) – uživatelské jméno DegreeAfterName (String) DegreeBeforeName (String) Description (String) Email (String) FirstName (String) LastName (String) Name (String) Phone (String) TimeContract (String, hodnota musí být ve tvaru celého čísla) UrlIdentificator (String) ValidFrom (String, hodnota musí být ve tvaru data) ValidTo (String, hodnota musí být ve tvaru data) Number User - Id (String) – povinný klíč Username (String) DefaultPassword (String) ChangePasswordOnFirstLogin (Boolean) Description (String) Roles (String[]) – přiřazení rolí Role - Id (String) – povinný klíč Name (String) Description (String) IsDefault (Boolean) IsAdministrative (Boolean) CanEditModel (Boolean) Users (String[]) – přiřazení uživatelů .Pole Id je povinné a musí na něj být mapován synchronizační klíč. Každý datový zdroj tedy musí povinně obsahovat mapování alespoň pro cílové pole Id, jinak je situace vyhodnocena jako chybná a import je přerušen. Ostatní pole jsou využitelná volitelně a vždy je synchronizováno jenom to, co je mapováno. Pole, pro které není definováno mapování, je ponecháno beze změny (u nově založených objektů obsahuje výchozí hodnotu). ATTN Consulting s.r.o. Strana: 8 / 9 Hanušova 100/10, 779 00 Olomouc, Czech Republic www.attis.cz, e-mail: [email protected], tel.: +420 585 751 601, IČ: 25894978, DIČ: CZ25894978, č.ú.: 533417001/5500 Společnost je zapsána v Obchodním rejstříku vedeném Krajským soudem v Ostravě, oddíl C, vložka 24596. SW ATTIS nástroje manažerského řízení Asociace - vazby: Person – CN – je uživatelské jméno (nikoliv Id uživatele), na základě kterého je vytvořena asociace na příslušného uživatele; definuje tedy mapování mezi osobou a uživatelem; uživatel musí v době importu existovat, User – Roles – je seznam rolí (jejich Id) daného uživatele; definuje tedy mapování mezi uživatelem a rolemi. Role – Users – je seznam uživatelů (jejich Id) dané role; definuje mapování mezi rolí a uživateli. 6. Postup synchronizace 1. Provede se zpracování konfigurace a připraví algoritmus pro synchronizaci. 2. Úloha kontaktuje LDAP server a zvolí první zdroj dat. 3. Pomocí vyhledávacího kritéria právě zpracovávaného zdroje požádá LDAP o vrácení kolekce odpovídajících objektů. 4. Úloha projde vstupní kolekci, zkontroluje povinné atributy jednotlivých objektů, provede konverzi hodnot z originálního na cílový datový typ a předpřipraví kolekci objektů vhodných pro import do ATTISu (meziobjektů). 5. Dojde k importu dat do databáze ATTISu, přičemž pro přiřazení objektů z importu k objektům ATTISu se využije klíč. 6. Postup se opakuje pro další zdroj dat. ATTN Consulting s.r.o. Strana: 9 / 9 Hanušova 100/10, 779 00 Olomouc, Czech Republic www.attis.cz, e-mail: [email protected], tel.: +420 585 751 601, IČ: 25894978, DIČ: CZ25894978, č.ú.: 533417001/5500 Společnost je zapsána v Obchodním rejstříku vedeném Krajským soudem v Ostravě, oddíl C, vložka 24596.
Podobné dokumenty
Microsoft® Office 365
− Publikování “Smart Links” pro uživatele. Nedoménové PC budou ale
stále vyžadovat ověření
− Uživatelské jméno musí být ve formátu UPN pro realm discovery
− Nedoménové PC vyžadují Username Realm Di...
Technická příručka instalace a zálohování
Defaultní umístění aplikačního logu je v instalačním adresáři aplikace.
Požadujeme-li umístění logu v profilu uživatele, musí konfigurační soubor obsahovat následující
položku:
Postup aktualizace aplikace ATTIS
Stažení aktualizačního balíčku „ATTIS4_upgrade_xxx.zip“.
- xxx – zkratka klienta, nebo verze aplikace (název balíčku dle obdrženého emailu s pokyny
k aktualizaci)
Na staženém balíčku klepněte pravý...
Dalsí soucásti jazyka
sin, tan, hyperbolické verze, exp, exp2, log10, log (základ e), log2
-frexp – rozdělí reálné číslo na normalizovanou mantisu a exponent
-fabs, pow, hypot (odmocnina ze sumy kvadrátů), sqrt,
-ceil, ...
FreeIPA - Fedora
detekce nedostupnosti a opětovné dostupnosti serveru
cachovánı́ informacı́ o uživatelı́ch, přı́padně hesel
do cache se ukládajı́ pouze opravdu použitá data
nenı́ třeba kvůli každému do...
sylabus
(internal pools); „uzly“ (junctions). Proteiny rozeznávají spíše prostorové uspořádání RNA
než jednotlivé baze a jejich sekvence. RNP motiv proteinu – vazebná doména; evolučně
konzervované sekvence...
Stáhnout soubor - Česká 3D lukostřelba
logicky směřován na olympijské disciplíny, které mají největší potenciál získat
finanční zdroje. Proto je až na výjimky úroveň 3D lukostřelby na pomezí hobby a
výkonnostní úrovně. Možnost věnovat s...
www.KaratSoftware.com KARAT Konference 2013 Spojení pevné
Při bližším pohledu na tuto
charakteristiku zjistíte, že to není jen
popis procesně řízené firmy, ale popis
dobře řízené firmy. A to by měl být
hlavní přínos zavedení procesního
řízení. Díky rozpoz...
Ipv6 v Linuxu
daleko ke schválení a k implementaci. 128 bitů je prozatím nej-lepší volbou z hlediska režie hlavičky a přenosu dat. Když
vezmete minimální MTU (Maximum Transfer Unit) v IPv4 (576 oktetů) a v IPv6 ...