ATTIS4 – Synchronizace s LDAP serverem

Transkript

ATTIS4 – Synchronizace s LDAP serverem
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="(&amp;(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="(&amp;(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="(&amp;(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ř.
& = &amp; 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="(&amp;(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="(&amp;(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="(&amp;(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="(&amp;(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

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...

Více

Technická příručka instalace a zálohování

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: Více

Postup aktualizace aplikace ATTIS

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ý...

Více

Dalsí soucásti jazyka

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, ...

Více

FreeIPA - Fedora

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...

Více

sylabus

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...

Více

Stáhnout soubor - Česká 3D lukostřelba

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...

Více

www.KaratSoftware.com KARAT Konference 2013 Spojení pevné

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...

Více

Ipv6 v Linuxu

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 ...

Více