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