Správa Azure Active Directory pomocí MS Graph API
Cloudové služby jsou čím dál populárnější. V rámci Microsoft Azure je dostupné mimo jiné právě i Azure Active Directory (dále jen AAD). V tomto článku se ovšem budeme věnovat cloudové verzi Active Directory a komunikaci s ním pomocí MS Graph API. Od klasického AD také v mnoha věcech liší. Nemusíte se ale ničeho bát. Napojení AAD na CzechIdM je velmi jednoduché. Vyvinuli jsme vlastní konektor Azure Active Directory pro CzechIdM Identity Manager.
O napojení MS AD na CzechIdM jsme již na blogu psali dříve.
AD versus AAD
Hned na začátku je vhodné si popsat co je to vlastně “klasické” AD a jak se liší od Azure Active Directory.
Pravděpodobně ten největší rozdíl je, že AD máte nasazené tzv. on-premise. To znamená, že běží na vašem vlastním serveru. Ve většině případů je schované uvnitř firemní sítě. AAD je ovšem poskytováno jako služba. Jinými slovy si platíte pravidelnou licenci a tím získáváte přístup k AAD, které běží v Azure cloudu od Microsoftu. O tom, že lze používat AAD i AD současně v takzvaném hybridním režimu se zde nebudu rozepisovat, protože to by nám vystačilo na samostatný článek.
Hlavní rozdíly on-premise AD versus AAD:
- Pro komunikaci s AD lze využít standardní LDAP protokol. Pro AAD se používá REST API, Graph API nebo Powershell
- V AAD je plochá struktura. Není zde žádné členění do OU.
- Pomocí AAD se dá propojit s dalšími cloudovými službami, ať už od přímo od MS (O365) nebo externími Salesforce, SAP a tím umožní jednotné přihlášení uživatelům firmy pomocí AD jména a hesla.
- V AAD je pevně dané schéma atributů
Rozdílů je samozřejmě mnohem více. Pro účely správy AAD a AD pomocí CzechIdM si nyní vystačíme s tímto základem.
Konektor pro Azure Active Directory pro CzechIdM
Jak jsme si popsali v rozdílech, komunikace s AAD probíhá odlišně. Z toho důvodu jsme vyvinuli vlastní konektor, který je opět dostupný veřejně na Githubu jako naše ostatní konektory. Pro komunikace se využívá MS Graph API. Jedná se o rozraní, které je založené na RESTu. Komunikace probíhá pomocí volání webových služeb.
Konektor je již v produktivním provozu na několika projektech. Vývoj je stále aktivní, aby bylo možné pokrýt co největší množství případů použití.
V poslední vydané verzi jsou podporované níže popsané operace. Doporučujeme, ale sledovat vývoj konektoru a vždy použít nejnovější verzi.
Podporované operace pro uživatele
Podporované jsou oba typy uživatelů – Member i Guest. V prvním případě se jedná o klasického uživatele, který je ve zvolené doméně. Guest účet je založen pomocí pozvánky a jedná se o externího uživatele, který má mít přístup do naší domény.
- GET detail of user
- GET all users
- CREATE new user
- UPDATE existing user
- DELETE user
Podporované operace pro licence
- ASSIGN new licence to user
- REMOVE licence from user
Podporované operace pro AD skupiny a Azure role
- GET detail of group/role
- GET all groups/roles
- ASSIGN group/role to user
- REMOVE group/role to user
Napojení na CzechIdM
Založíme nový systém. Nazveme ho například “MS Azure cloud” a na záložce konfigurace vybereme “MS Graph API connector”.
Nyní je potřeba vyplnit několik konfiguračních položek:
- Client ID – UUID aplikace, která se používá pro přístup. Aplikaci lze vytvořit dle oficiálního návodu. Aplikaci je následně nutné přidat oprávnění podle toho jaké operace chceme vykonávat
- Správa základních atributů uživatele a CRUD operace – Directory.ReadWrite.All a User.ReadWrite.All
- Změna hesla uživatele vyžaduje přidělení role “Password administrator” dané aplikaci.
- Správa členství AD skupin GroupMember.ReadWrite.All a pro Azure role RoleManagement.ReadWrite.Directory
- Správa skupin Group.ReadWrite.All
- Scopes – Stačí použít výchozí hodnotu https://graph.microsoft.com/.default
- Client secret – Na detailu aplikace v Azure portálu, záložka “Certificates & secrets” vytvořit nový secret.
- Tenant – UUID tenantu, je vidět například na stránce Overview AAD
- National cloud – V jaké zemi se cloud nachází Global, China, Germany, UsGovernment. Ve většině případů se bude jednat o Global
- Disable password change after login – Zaškrtnou pokud si uživatelé budou přes CzechIdM sami měnit heslo. Pokud se tato volba nevybere, tak po změně hesla a přihlášení do cloudu by byli nuceni provést další změnu.
- Get Azure roles – Výchozí hodnota je vypnuto. Umožňuje zapnout podporu pro Azure role. Následně je tedy možné načíst Azure role spolu s AD skupinami
- Type of user which should be managed – Výchozí chování je prázdná hodnota = Member a Guest typy jsou zpravovány. Pokud chcete pouze jeden typ uživatelů, použijte hodnotu Member nebo Guest. Toto nastavení má vliv pouze na operaci “Načíst vše” (synchronizace)
- Send invitation email for Guest via Azure – Výchozí možnost je vypnutu. Pokud chcete, aby pozvánka chodila přímo z Azure cloudu tak je nutné volbu zapnout.
- Redirect URL after accepting invitation – Pokud spravujete i Guest uživatele je nutné vyplnit URL adresu, na kterou budou přesměrování po přijmutí pozvánky.
Další nastavení je pro proxy server, v případě, že Azure cloud není přímo dostupný ze serveru s CzechIdM. V opačném případě není potřeba nic nastavovat.
Výsledná konfigurace může vypadat například takto:
Následně si vygeneruje schéma a můžeme přejít k tvorbě mapování.
Základní mapování pro správu uživatelů může vypadat následovně:
Správa licencí u uživatelů
Pokud chcete u uživatelů spravovat i jejich licence je potřeba udělat několik málo dodatečných kroků:
- Do mapování systému přidat atribut “assignedLicenses” a nastavit strategii na “Sloučit”
- Založit roli (role) pro příslušné licence
- Na detailu role přejít na záložku “Napojené systémy” -> Přidat systém “MS Azure cloud” -> Přidat atribut “assignedLicenses”
- V transformaci do systému použít následující kód:
return “4b9405b0-7788-4568-add1-99614e613b69”;
Hodnota v uvozovkách je identifikátor licence, který lze dohledat v oficiální dokumentaci. Případně v Azure portálu po zobrazení detailu licence je UUID vidět na konci v URL adrese.
- Každá role tak vrací jinou hodnotu, dle toho jaké licenci odpovídá.
Nyní lze již role nastavit jako automatické, případně je manuálně přidělit uživatelům a tím obdrží příslušnou licenci v cloudu.
Správa AD skupin/Azure rolí u uživatelů
Pro správu členství je nutné ještě udělat velmi obdobné nastavení jako v případě rolí pro licence.
- Do mapování systému přidat atribut “memberOf” a nastavit strategii na “Sloučit”
- Založit roli (role) pro AD skupiny/Azure role. Případně použít synchornizaci
- Na detailu role přejít na záložku “Napojené systémy” -> Přidat systém “MS Azure cloud” -> Přidat atribut “memberOf”
- V transformaci do systému použít následující kód:
return “4b9405b0-7788-4568-add1-99614e613b69”;
Hodnota v uvozovkách je identifikátor dané AD skupiny/Azure role v cloudu. V CzechIdM slouží jako identifikátor na koncovém systému a je jí také možné použít jako kód role například.
- Každá role tak vrací jinou hodnotu, dle toho jaké AD skupině/Azure roli odpovídá.
Best-practise
Je dobré mít ještě tzv. základní roli pro systém např. “MS Azure – uživatel”. Taková role má v sobě napojený systém “MS Azure cloud” bez atributů a její přidělení/odebrání tvoří nebo maže účet v cloudu. Pokud bychom využívali pouze role pro licence, tak v případě kdy odeberu poslední licenční roli dojde ke smazání účtu! To nemusí být žádoucí.
Závěr
Dnes jsme si ukázali jak napojit Azure AD na CzechIdM a zároveň si řekli i nějaké základní rozdíly mezi klasickým a cloudovým AD. Pokud by Vás cokoliv k této problematice zajímalo, neváhejte nás kontaktovat. Příště se podíváme na hybridní řešení MS AD a AAD.
Mohlo by vás také zajímat
Seriál o Identity Managementu:
- Co je to Identity Management?
- Jak vybrat IDM?
- Jak migrovat Identity Management?
- Modely spolupráce s dodavatelem IDM.
- Jak zabrátit vendor lock-in?
- Jak z personalistiky identifikovat vedoucího pro IDM?
- Jak se zbavit rutinních úkolů při správě IT systému automatizací Identity Managementu?
- Jak správně testovat IdM?
- Jak správně nasadit IDM do produktivního provozu?
- API pro připojení systému do IDM
- Co je to SCIM?
- IdM nebo formulářový systém?
- Netradiční využití IdM 1, 2, 3
O CzechIdM:
- Podporované konektory
- Základní funkce
- Jak na samoregistraci a žádost o VPN?
- Jak na reset hesel z Windows? Password filtr
- Napojení JIP/KAAS.
- Správa MS-Acess.
- IdM a napojení Moodle
- Integrace CzechIdM a DMS
- Integrace CzechIdM a CRM Salesforce
- Vytváření nových formulářů v CzechIdM
- Napojení MS-AD do CzechIdM
- Co jsou to business role
- Jak spravovat vnořené skupiny v MS-AD
- Správa personálního systému a časové řezy