Požadavky na API pro připojení IDM na spravovaný systém
Pro správu uživatelských účtů, oprávnění (přiřazení rolí, zařazení do skupin) a organizační struktury se využívají v identity manageru konektory, které komunikují s API spravovaného systému.
Nejčastěji používaná aplikační rozhraní:
- Webové služby přes HTTPs:
- REST, popis služby ve formátu swagger
- SOAP, popis v WSDL
- Přístup do databáze přes JDBC a práce s vystavenými view/procedurami
- Volání skriptů v operačním systému (SSH nebo PowerShell konektor)
Obecné požadavky
- API by nemělo přenášet vnitřní logiku správy uživatelských účtů ven z aplikace
- Každý účet je unikátně identifikován
- Pokud je požadována synchronizace dat z napojeného systému do identity manageru, je vhodné podporovat detekci změn. Například formou časové značky u změněného objektu.
Ukázka: agendový systém
Ukázka dostupných metod v API (WS SOAP) poměrně rozšířeného agendového systému používaného na úřadech v ČR. API slouží pro správu uživatelských účtů zaměstnanců a jejich pracovních míst:
Uživatelé
Jednoznačným identifikátorem uživatele v systému je login.
listEmployees
- metoda pro vylistování všech osob v systému
- VSTUP:
- nic
- VÝSTUP:
- seznam nalezených jednoznačných identifikátorů (login) osob (uloženo v poli nebo nějaké kolekci jako String)
getEmployee
- metoda pro načtení jedné entity "Osoby" podle ID
- VSTUP:
- String ID - jednoznačný identifikátor osoby login
- VÝSTUP
- všechny atributy evidované v systému pro danou osobu
- String Jméno
- String Příjmení
- String Login
- String Zkratka
- String Příslušnost ke spisovému uzlu
- String ID funkčního místa
- pokud nebyla nalezena entita s daným ID, vrátí NULL
createEmployee
- metoda pro založení jedné entity "Osoba"
- VSTUP
- všechny atributy, které lze nastavit
- String Login
- String Jméno
- String Příjmení
- String Heslo
- String Zkratka
- String Příslušnost ke spisovému uzlu
- String ID funkčního místa
- VÝSTUP
- String errorMessage - chybová zpráva, pokud se založení nezdařilo; v případě úspěchu NULL
updateEmployee
- metoda pro aktualizaci jedné entity "Osoba"
- VSTUP
- String ID - jednoznačný identifikátor osoby
- všechny atributy, které lze nastavit
- String Login
- String Jméno
- String Příjmení
- String Heslo
- String Zkratka
- String Příslušnost ke spisovému uzlu
- VÝSTUP
- String errorMessage - chybová zpráva, pokud se aktualizace nezdařila; v případě úspěchu NULL
deleteEmployee
- metoda pro odstranění jedné entity "Osoba" pomocí aktualizace příznaku platnosti
- VSTUP
- String ID - jednoznačný identifikátor osoby
- VÝSTUP
- String errorMessage - chybová zpráva, pokud se aktualizace nezdařila; v případě úspěchu NULL
Organizační struktura
Jednoznačným identifikátorem funkčních míst v systému je jejich název
listPositions
- metoda pro vylistování všech funkčních míst v systému
- VSTUP
- nic
- VÝSTUP
- seznam jednoznačných identifikátorů (názvů) nalezených funkčních míst
getPosition
- metoda pro načtení jednoho funkčního místa
- VSTUP
- String Název - identifikátor funkčního místa
- VÝSTUP
- všechny atributy funkčního místa evidované v systému
- String Název
- String Zkratka
- String Obvod
- String Účetní okruh
- String Login uživatele
- String Role z katalogu práv
- String Instance práva (modul)
- String Agendová kniha
- pokud nebyla nalezena entita s daným ID, vrátí NULL
createPosition
- metoda pro založení jednoho funkčního místa
- VSTUP
- String positionId - identifikátor funkčního místa
- všechny atributy, které bude funkční místo v systému potřebovat
- String Název
- String Zkratka
- String Obvod
- String Účetní okruh
- String Login uživatele
- String Role z katalogu práv
- String Instance práva (modul)
- String Agendová kniha
- VÝSTUP
- String errorMessage - chybová zpráva, pokud se založení nezdařilo; v případě úspěchu NULL
updatePosition
- metoda pro aktualizaci jednoho funkčního místa
- metoda pro přiřazení uživatele na dané funkční místo
- metoda pro přiřazení oprávnění funkčnímu místu
- VSTUP
- String Název - identifikátor funkčního místa
- všechny atributy, které bude funkční místo v systému potřebovat
- String Název
- String Zkratka
- String Obvod
- String Účetní okruh
- String Login uživatele
- String Role z katalogu práv
- String Instance práva (modul)
- String Agendová kniha
- VÝSTUP
- String errorMessage - chybová zpráva, pokud se aktualizace nezdařila; v případě úspěchu NULL
deletePosition
- metoda pro odstranění funkčního místa
- VSTUP
- String positionId - identifikátor funkčního místa
- VÝSTUP
- String errorMessage - chybová zpráva, pokud se aktualizace nezdařila; v případě úspěchu NULL