Provisioning uživatelů
Pro automatickou synchronizaci uživatelů z IDM systémů do UCS je podporován protokol SCIM 2.0 (RFC 7642, 7643 a 7644). UCS vystupuje v roli Service Provider a IDM systém (Microsoft, Google, Oracle, atd.) v roli SCIM Client. Alternativně lze využít vestavěnou synchronizaci UCS pomocí Sync pluginu.
Ověření zdroje IDM se provádí na základě integračního uživatele UCS a jeho přiřazení k uživatelským ú čtům vytvořeným
pomocí daného IDM (username integračního uživatele je v metadatech uživatele pod klíčem scim_source). Uživatelé,
kteří nemají v metadatech tento klíč s hodnotou odpovídající danému username, nejsou pro IDM viditelní. Díky této
vlastnosti jsou chráněny ručně založené uživatelské účty v UCS a také je možné synchronizovat uživatele z více
zdrojů IDM (multitenant).
Microsoft Entra ID
Konfigurace Microsoft Entra ID se provádí následovně:
- V UCS vytvořte integračního uživatele, který bude mít oprávnění Add a Edit do skupin, ve kterých mají vznikat uživatelé, a poznamenejte si jeho jméno a heslo. Uživatelé založení pomocí SCIM jsou zařazeni do UCS skupiny, ve které je zařazen integrační uživatel.
- Přihlašte se do Azure Portal.
- Přejděte do Microsoft Entra ID.
- V levém menu Entra ID rozbalte Manage a klikněte na Enterprise applications.
- V horní nabídce klikněte na + New application.
- V horní nabídce klikněte na + Create your own application.
- V pravé části zadejte název aplikace, např. UCS user provisioning, ponechte vybranou možnost Integrate any other application you don't find in the gallery (Non-gallery) a klikněte na tlačítko Create dole.
- V levém menu Enterprise Application v sekci Manage klikněte na Provisioning (případně na shortcut 3. Provision User Accounts - Get started).
- V hlavní části klikněte na Connect your application.
- V New provisioning configuration nastavte:
- Select authentication method: OAuth2 client credentials grant
- Tenant URL: https://ucs.zakaznik.cz/scim
- OAuth token endpoint: https://ucs.zakaznik.cz/login/oauth2/token
- Client identifier: UCS username integračního uživatele z bodu 1
- Client secret: UCS password integračního uživatele z bodu 1
- Klikněte na Test connection
- Po úspěšném otestování klikněte na Create.
- V levém menu Provisioning v sekci Manage klikněte na Scoping filters.
- V horní nabídce klikněte na Edit.
- V levém menu Enterprise Application v sekci Manage klikněte na Users and groups.
- V horní nabídce klikněte na 3. Select users and groups.
- Přidejte jednotlivé skupiny kliknutím na +Add user/group, pomocí kterých se řídí, zda má uživatel oprávnění používat UCS. Tyto Entra ID skupiny budou do UCS synchronizovány jako role. Nepřidávejte jednotlivé uživatele, ti budou přidáni na základě členství v těchto skupinách.
- V horní nabídce klikněte na 5. Review and create.
- Klikněte na Save vpravo dole.
Nyní můžete vyzkoušet synchronizaci, v levém menu Provisioning klikněte na Provision on demand, napište název skupiny do Select a user or group a vyberte ji. Následně v Selected users vyberte uživatele, u kterých chcete vyvolat synchronizaci, a klikněte na Provision vpravo dole.
Zda je synchronizace aktivní, se nastavuje v levém menu Provisioning, klikněte na Overview a vyberte Start provisioning nebo Pause provisioning. Po nastartování synchronizace se provede prvotní synchronizace a následně Entra ID synchronizuje každých cca 40 minut.
Výběr enterprise aplikace:

Přidání enterprise aplikace:

Parametry enterprise aplikace:

Nastavení provisioningu uživatelů:

Propojení Entra ID s UCS:

Parametry propojení:

Výběr rozsahu synchronizace:

Určení skupin pro synchronizaci:

Uložení rozsahu synchronizace:

Ruční ověření synchronizace:

Spuštění a zastavení automatické synchronizace:

Změny
Pokud mají stávající ručně založené uživatelské účty v UCS přejít pod správu IDM, pak je nutný ruční zásah do DB UCS:
BEGIN;
UPDATE users
SET data = jsonb_set(data, '{scim_source}', '"scim_username"')
WHERE username NOT IN ('admin', 'insoft');
UPDATE roles
SET data = jsonb_set(data, '{scim_source}', '"scim_username"')
WHERE id != 1;
COMMIT;
Integračním uživatelským jménem je identifikován IDM zdroj, se kterým jsou provázány založené uživatelské účty. Pokud se toto uživatelské jméno změní, pak pro daný IDM přestanou být spravované uživatelské účty viditelné a je nutný ruční zásah do DB UCS:
BEGIN;
UPDATE users
SET data = jsonb_set(data, '{scim_source}', '"new_scim_username"')
WHERE data->>'scim_source' = 'old_scim_username';
UPDATE roles
SET data = jsonb_set(data, '{scim_source}', '"new_scim_username"')
WHERE data->>'scim_source' = 'old_scim_username';
COMMIT;