OIDC znamená OpenID Connect, čo je moderný protokol pre autentifikáciu a autorizáciu používateľov v aplikáciách. OIDC je postavený na štandarde OAuth 2.0 a rozširuje ho o možnosti bezpečnej autentifikácie používateľov, pričom poskytuje používateľské informácie prostredníctvom štandardizovaného formátu.
Ako funguje OIDC:
1.Základ na OAuth 2.0:
•OIDC pridáva autentifikáciu do existujúceho protokolu OAuth 2.0, ktorý sa primárne používa na autorizáciu prístupu k zdrojom.
2.ID Token:
•Pri autentifikácii server vydáva špeciálny token nazývaný ID Token, ktorý obsahuje informácie o používateľovi (napr. meno, e-mail) v kódovanom formáte (JSON Web Token – JWT).
3.Princípy prístupu:
•Používatelia sa autentifikujú prostredníctvom OIDC poskytovateľa (napr. Google, Microsoft Azure AD).
•Po úspešnej autentifikácii aplikácia dostane overený token, ktorý môže použiť na správu relácie používateľa.
Komponenty OIDC:
1.Relying Party (RP):
•Aplikácia alebo služba, ktorá používa OIDC na autentifikáciu používateľov (napr. webová alebo mobilná aplikácia).
2.OpenID Provider (OP):
•Poskytovateľ identity, ktorý spravuje autentifikáciu a vydáva ID Token (napr. Google, Okta, Auth0).
3.ID Token:
•Obsahuje informácie o autentifikovanom používateľovi, ktoré sú podpísané poskytovateľom identity.
4.Scopes:
•OIDC používa scopes, aby určil, aké informácie o používateľovi môže aplikácia požadovať (napr. openid, email, profile).
Výhody OIDC:
1.Jednoduchosť:
•OIDC ponúka jednoduchý spôsob autentifikácie bez potreby spravovať používateľské heslá.
2.Bezpečnosť:
•Používa moderné bezpečnostné štandardy, ako je šifrovanie a podpisovanie tokenov (JWT), aby sa zabezpečila integrita údajov.
3.Interoperabilita:
•Podporuje širokú škálu platforiem a zariadení vrátane webových, mobilných a desktopových aplikácií.
4.Flexibilita:
•Možnosť využívať rôznych poskytovateľov identity (napr. Google, Facebook, alebo vlastný OIDC server).
Nevýhody OIDC:
1.Zložitosť implementácie:
•Nastavenie a integrácia OIDC môže byť zložité, najmä ak aplikácia vyžaduje pokročilé nastavenia.
2.Závislosť na poskytovateľovi:
•Aplikácia je závislá od dostupnosti a spoľahlivosti poskytovateľa identity.
3.Bezpečnostné riziká:
•Nesprávna implementácia môže viesť k bezpečnostným problémom, ako je odcudzenie tokenov.
Typické použitie OIDC:
1.Jednotné prihlásenie (SSO):
•Používateľ sa autentifikuje raz a získa prístup k viacerým aplikáciám alebo službám.
2.Mobilné aplikácie:
•Použitie OIDC na jednoduchú a bezpečnú autentifikáciu v mobilných aplikáciách.
3.Webové aplikácie:
•Autentifikácia používateľov pomocou externých poskytovateľov identity (napr. prihlásenie cez Google alebo Facebook).
Porovnanie OIDC a OAuth 2.0:
Funkcia OAuth 2.0 OIDC
Primárne použitie Autorizácia (prístup k zdrojom) | Autentifikácia a autorizácia
Tokeny Access Token | Access Token + ID Token
Informácie o používateľovi Nie je štandardizované | Poskytuje ID Token s používateľskými údajmi
Štandardizácia údajov Chýba | Používa špecifikáciu na získanie informácií o používateľovi
Príklad toku OIDC (Authorization Code Flow):
1.Používateľ navštívi aplikáciu a zvolí možnosť prihlásenia cez OIDC poskytovateľa.
2.Aplikácia presmeruje používateľa na stránku poskytovateľa identity.
3.Používateľ sa autentifikuje u poskytovateľa.
4.Poskytovateľ vydá Authorization Code, ktorý aplikácia vymení za ID Token a Access Token.
5.Aplikácia overí tokeny a poskytne používateľovi prístup.
OIDC je dnes jedným z najpoužívanejších protokolov pre bezpečnú autentifikáciu používateľov, vďaka čomu sa stal základom mnohých moderných aplikácií a služieb.