Uživatelské nástroje

Nástroje pro tento web


oauth

OAuth (Open Authorization)

OAuth (Open Authorization) je otevřený standardní protokol pro decentralizovanou autorizaci, který umožňuje aplikacím bezpečně přistupovat k uživatelským datům na jiné službě, aniž by bylo nutné sdílet přihlašovací údaje (uživatelské jméno a heslo). V současnosti je standardem verze OAuth 2.0.

Jak OAuth funguje?

Princip OAuth je založen na delegování oprávnění. Uživatel dává třetí straně (klientovi) omezený přístup ke svým zdrojům uloženým u poskytovatele identity (tzv. Authorization Server), aniž by mu prozradil své heslo.

Hlavní role v protokolu OAuth: * Resource Owner (Uživatel): Vlastník dat (např. vy), který uděluje přístup. * Client (Aplikace): Aplikace třetí strany, která chce přistupovat k datům uživatele. * Authorization Server (Autorizační server): Server, který ověřuje totožnost uživatele a vydává přístupové tokeny. * Resource Server (Poskytovatel zdrojů): Server hostující chráněná data (např. API), který ověřuje platnost tokenů.

Základní tok (Authorization Code Grant)

Nejběžnější a nejbezpečnější scénář pro webové a mobilní aplikace: 1. Požadavek na přístup: Aplikace přesměruje uživatele na autorizační server s žádostí o oprávnění (tzv. *scope*). 2. Udělení souhlasu: Uživatel se přihlásí ke svému účtu (např. Google, Seznam) a potvrdí, že aplikaci důvěřuje. 3. Autorizační kód: Server přesměruje uživatele zpět do aplikace a předá mu jednorázový autorizační kód. 4. Výměna za token: Aplikace tajně (na backendu) vymění tento kód za Access Token (přístupový token), případně i Refresh Token. 5. Přístup k datům: Aplikace používá Access Token v hlavičce požadavků (payloadu) při komunikaci s API.

OAuth 2.0 vs. OpenID Connect (OIDC)

Je důležité rozlišovat mezi autorizací a autentizací: * OAuth 2.0 slouží k autorizaci (přístupu k datům a akcím). Odpovídá na otázku: *„Co může tato aplikace dělat?“* * OpenID Connect (OIDC) je vrstva postavená nad OAuth 2.0, která slouží k autentizaci (ověření totožnosti). Využívá k tomu JWT (JSON Web Token) (JSON Web Token) a odpovídá na otázku: *„Kdo je tento uživatel?“*

Bezpečnostní rizika a doporučení

* Tokeny a jejich platnost: Access tokeny by měly mít krátkou dobu platnosti. Pro prodloužení relace bez nutnosti nového přihlášení slouží zabezpečený *Refresh Token*. * PKCE (Proof Key for Code Exchange): Rozšíření pro OAuth, které chrání mobilní a jednostránkové aplikace (SPA) před zachycením autorizačního kódu (útoky typu Authorization Code Interception). * HTTPS je povinné: Veškerá komunikace s autorizačním serverem a API musí probíhat přes šifrovaný kanál.

Související pojmy

* Bezpečnost API (API Security) * JWT (JSON Web Token) (JSON Web Token) * WAAP: Web Application and API Protection

security auth oauth api security

oauth.txt · Poslední úprava: autor: admin