Co je Grant Type?
Kontext autorizace OAuth 2.0
V rámci autorizace OAuth 2.0 se termín "Grant Type" vztahuje k metodě, pomocí které aplikace získává přístupový token. V podstatě grant type specifikuje druh autorizačního toku, který aplikace použije pro přístup k uživatelským datům.
Různé Grant Types v OAuth 2.0
OAuth 2.0 definuje několik grant types, přizpůsobených pro různé aplikační scénáře:
- Authorization Code:
- Nejlepší pro: Aplikace, které mohou bezpečně uchovávat client secret, často serverové aplikace.
- Tok: Uživatel je nejprve přesměrován na autentizační server. Po úspěšné autentizaci je přesměrován zpět do aplikace s autorizačním kódem. Aplikace vymění tento kód za přístupový token.
- Implicit:
- Nejlepší pro: Aplikace zaměřené na user-agent, jako jsou jednostránkové aplikace.
- Tok: Zrcadlí tok Authorization Code, ale přístupový token je doručen přímo bez mezilehlého kódu. Je považován za méně bezpečný než metoda Authorization Code.
- Password (Resource Owner Password Credentials):
- Nejlepší pro: Vysoce důvěryhodné aplikace, často vlastněné stejnou organizací jako resource server.
- Tok: Uživatelé přímo zadávají své uživatelské jméno a heslo do aplikace. Aplikace poté použije tyto přihlašovací údaje k získání přístupového tokenu. Tento tok je obecně nedoporučován, pokud klient není vysoce důvěryhodný.
- Client Credentials:
- Nejlepší pro: Služby nebo aplikace, které potřebují přistupovat ke svým vlastním zdrojům, ne ke zdrojům uživatele.
- Tok: Aplikace se autentizuje pomocí svých vlastních přihlašovacích údajů (jako client ID a secret) a na oplátku získá přístupový token.
- Device Code (pro zařízení bez komplexních možností prohlížeče):
- Nejlepší pro: Zařízení jako chytré televize, herní konzole nebo tiskárny.
- Tok: Zařízení komunikuje s autorizačním serverem pro získání kódu zařízení a uživatelského kódu. Uživatel zadá uživatelský kód na jiném zařízení (např. smartphonu). Po ověření zařízení obdrží přístupový token.
- Refresh Token:
- Použití: Není to samostatný tok, ale doplňuje jiné grant types. Když přístupový token vyprší, refresh token umožňuje aplikaci získat nový bez nutnosti opětovného přihlášení uživatele.
Proč jsou Grant Types důležité?
Grant types nabízejí flexibilitu pro různé aplikační kontexty. Každý z nich zajišťuje, že získání přístupového tokenu je co nejbezpečnější, vzhledem k omezením aplikace. Volba grant type ovlivňuje interakce mezi klientem, uživatelem a autorizačním serverem, což činí jeho správný výběr klíčovým jak pro použitelnost, tak pro bezpečnost.