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)
  • 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:

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

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
  • by tsunami