Jak na API pro připojení systému do Identity Managementu?

Potřebujete napojit koncový systém na Identity Manager (IdM)? Váš spravovaný systém nemá API, chcete jej vytvořit? Zde máte jednoduchý příklad, zadání API webovou službou.

K IdM je možné připojit libovolný systém, který je dostupný po síti a je zjistitelná jeho struktura identit. Pro správu uživatelských účtů, oprávnění  a organizační struktury se využívají v identity manageru konektory.

Konektor je malý programový nástroj na straně IDM, který dovoluje výměnu dat s napojeným systémem pomocí jeho nativního API. Díky konektoru není třeba upravovat spravovaný systém. Snadnost napojení na koncový systém je obrovskou výhodou IdM. Seznam konektorů IdM bývá velmi rozsáhlý. Více o konektorech například zde.

Nejčastěji používaná aplikační rozhraní konektory:

  1. Webové služby přes HTTPs:
    1. REST, popis služby ve formátu swagger
    2. SOAP, popis v WSDL
  2. Přístup do databáze přes JDBC a práce s vystavenými view/procedurami
  3. Volání skriptů v operačním systému (SSH nebo PowerShell konektor)

Více zde: API – Requirements for connected system

Moderní cestou je využívání webových služeb. Typickým příkladem REST API pro správu identit  je SCIM specifikace, která je navržena primárně pro cloud aplikace. Pro on-premise aplikace může být univerzálnost SCIM naopak nevýhodou z hlediska rychlosti.

Obecné požadavky na API na straně spravovaného systému:

  1. Každý účet je unikátně identifikován.
  2. API by nemělo přenášet vnitřní logiku správy uživatelských účtů ven z aplikace.
  3. 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.

Příklad: API pro agendový systém eSpis

Ukázka dostupných metod v API, webové služby SOAP poměrně rozšířeného agendového systému eSpis používaného na úřadech v ČR. API slouží pro správu uživatelských účtů zaměstnanců a jejich pracovních míst. Ukázka je typickým příkladem pro většinu napojovaných systémů.

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
  1. pro aktualizaci jednoho funkčního místa,
  2. pro přiřazení uživatele na dané funkční místo,
  3. 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

Závěr

Velkým přínosem IdM je snadnost připojení koncového systému bez nutnosti jeho přizpůsobení nebo dokonce i restartu. Možností napojení koncových systémů je mnoho. Někdy je vhodné naopak na straně koncového systému připravit univerzální API pro správu identit.

Výše zmíněný příklad je obecný pro většinu Identity Managerů.

Mohlo by vás také zajímat:

Seriál o Identity Managementu:

  1. Co je to Identity Management?
  2. Jak vybrat IDM?
  3. Jak migrovat Identity Management?
  4. Modely spolupráce s dodavatelem IDM.
  5. Jak zabrátit vendor lock-in?
  6. Jak z personalistiky identifikovat vedoucího pro IDM?
  7. Jak se zbavit rutinních úkolů při správě IT systému automatizací Identity Managementu?
  8. Jak správně nasadit IDM do produktivního provozu?
  9. Co je to SCIM?

O CzechIdM:

  1. Podporované konektory
  2. Hlavní funkce 

About Lukáš Cirkva

CEO, Identity Management consultant with 10+ years of experience. I have also played a leadership role in the development of our company's own SW tool - CzechIdM. We also service our delivered solutions. Please see www.CzechIdM.com and linkedin for more info: www.linkedin.com/in/lukascirkva/

Leave a Reply