domov/referencie/Gate IAM

// case study

Gate IAM

Identity a access manažment systém pre 100+ prevádzok a tisícky používateľov

Pre gate.shop sme vybudovali komplexný IAM (identity and access management) systém, ktorý slúži ako jednotný zdroj identít a prístupových oprávnení pre všetkých zamestnancov spoločnosti. Systém eviduje, aké oprávnenia má každý zamestnanec, a na ich základe riadi, kto a kam má prístup. Skladá sa z jadra — OpenID Connect providera s úložiskom používateľských účtov a integračnými webovými službami — a z backoffice aplikácie na správu celého systému.

Zadanie

gate.shop potreboval centrálne miesto, ktoré bude spravovať identity zamestnancov a ich prístupy do interných systémov. Hotové IAM riešenia ale nepokrývali kľúčovú požiadavku — modelovať organizačnú realitu firmy postavenú na prevádzkach.

Systém musel evidovať zoznam prevádzok a ku každej prevádzke používateľov na ňu zaradených spolu s ich oprávneniami voči danej prevádzke. Súčasťou požiadavky bola aj delegovaná správa: niektorí používatelia na prevádzke vystupujú v role vedúceho prevádzky a musia vedieť spravovať ostatných používateľov svojej prevádzky. Tento model bežné IAM nástroje natívne nepokrývajú, a preto sme navrhli a postavili vlastné riešenie.

Prevádzky, oprávnenia a delegovaná správa

Jadrom dátového modelu je vzťah medzi používateľom, prevádzkou a oprávneniami. Používateľ je zaradený na jednu alebo viac prevádzok a voči každej z nich má pridelenú vlastnú sadu oprávnení. Oprávnenia sú jemnozrnné — neriešia sa len cez hrubé role, ale cez konkrétne akcie, ktoré používateľ v danom kontexte smie vykonávať.

Nad týmto modelom stojí delegovaná správa. Vedúci prevádzky má v rámci svojej prevádzky právomoc spravovať jej používateľov — pridávať ich, odoberať a nastavovať im oprávnenia v rozsahu danej prevádzky. Centrálne IT tým nemusí riešiť každú zmenu na úrovni jednotlivej prevádzky, no zároveň si zachováva úplný prehľad a kontrolu nad celým systémom.

Jadro: OpenID Connect provider

Jadro systému slúži ako OpenID Connect provider a poskytuje napojeným aplikáciám jednotné prihlásenie (SSO). Postavili sme ho na Spring Boot (Java 21), pričom rolu samotného OAuth2/OIDC engine plní Ory Hydra, ktorá rieši vydávanie a validáciu tokenov.

Hydra deleguje prihlásenie a udelenie súhlasu späť na naše jadro — to spravuje úložisko používateľských účtov, overuje prihlasovacie údaje a obsahuje celú biznis logiku okolo prevádzok a oprávnení. Toto rozdelenie zodpovedností necháva štandardizovaný protokolový základ na osvedčenej komponente a zároveň ponecháva plnú kontrolu nad identitami a autorizačným modelom v rukách aplikácie.

Integrácia napojených systémov

Na gate IAM sa ako konzumenti identít napájajú kľúčové interné systémy gate.shop — pokladničný (POS) systém, skladový systém a ERP systém. Integrácia využíva čistý vzor:

  • Token na prihlásenie — používateľ sa do napojeného systému prihlási cez gate IAM (OIDC) a získa token, ktorý potvrdzuje jeho identitu.
  • Integračné webové služby na detailné oprávnenia — napojený systém sa následne cez integračné rozhrania opýta, aké jemnozrnné oprávnenia má daný používateľ voči konkrétnej prevádzke, a podľa odpovede rozhodne, čo mu sprístupní.

Vďaka tomu zostáva autorizačná logika centralizovaná v gate IAM a jednotlivé systémy ju nemusia duplikovať — pýtajú sa na jeden spoľahlivý zdroj pravdy o tom, kto kam a čo smie.

Backoffice aplikácia

Druhú časť riešenia tvorí backoffice aplikácia na manažment celého systému. Pracujú v nej dve úrovne používateľov:

  • Centrálni administrátori — spravujú systém ako celok: zakladajú prevádzky a zamestnancov, definujú katalóg oprávnení a priraďujú ľudí na prevádzky naprieč celou firmou.
  • Vedúci prevádzky — vidia a spravujú výhradne svoju prevádzku: jej používateľov a ich oprávnenia v rámci tejto prevádzky.

V backoffice sa okrem prevádzok a používateľov spravuje aj katalóg oprávnení a je tu k dispozícii audit a história zmien — kompletný prehľad o tom, kto a kedy aké prístupy menil. Pri zavádzaní systému sme úvodnú databázu zamestnancov naplnili importom z predchádzajúceho riešenia. Frontend aplikácie je postavený na Svelte/SvelteKit.

Prevádzka a infraštruktúra

Celé riešenie beží na Microsoft Azure, konkrétne na platforme Azure Kubernetes Service (AKS). Ako úložisko používateľských účtov, prevádzok a oprávnení slúži PostgreSQL.

Prínos pre zákazníka

  • Jednotný zdroj identít a oprávnení — jedno centrálne miesto, ktoré spravuje, kto je zamestnanec a čo smie; napojené systémy čerpajú z jedného spoľahlivého zdroja pravdy.
  • Jednotné prihlásenie (SSO) — zamestnanci sa do POS, skladového aj ERP systému prihlasujú cez jednu identitu.
  • Model prevádzok bez kompromisov — systém presne odráža organizačnú realitu gate.shop, ktorú bežné IAM nástroje natívne nepokrývajú.
  • Delegovaná správa odbremeňuje IT — vedúci prevádzky si spravujú vlastných ľudí, centrálne IT sa nemusí venovať každej zmene na úrovni prevádzky.
  • Jemnozrnné riadenie prístupu — oprávnenia na úrovni konkrétnych akcií voči konkrétnej prevádzke namiesto hrubých rolí.
  • Auditovateľnosť — kompletná história zmien prístupov, pripravená na kontrolu kedykoľvek.
  • Jednoduchá integrácia nových systémov — vďaka štandardnému OIDC a integračným webovým službám sa ďalšie aplikácie napoja na pripravený autorizačný model bez duplikovania logiky.