Základní pojmy
Pár myšlenek vysvětlí ve službě Usher skoro všechno: kde co sídlí, kdo vydává tokeny, kde se lidé přihlašují a jak dlouho který token platí.
Pracovní prostory, projekty a prostředí
- Pracovní prostor je váš tým nebo firma v Usher Console. Patří k němu jeho členové a jeho protokol auditu.
- Projekt je jeden produkt: vaše webová aplikace nebo partnerský portál. Pracovní prostor jich může mít mnoho.
- Prostředí je jedna běžící kopie projektu, obvykle development (vývojové) a production (produkční). V prostředích sídlí lidé, aplikace, klíče a nastavení.
Pracovní prostor · Acme s.r.o.
Projekt · Web
- development · wise-otter-42
- production · acme
Projekt · Partnerský portál
- development · calm-heron-17
- production · acme-partners
Prostředí nesdílejí nic podstatného. Každé má vlastní schéma Postgres, vlastní podpisové klíče a vlastní tajné údaje zapečetěné vlastním datovým klíčem. Člověk, který se zaregistruje ve vývojovém prostředí, v produkčním neexistuje, a token z jednoho prostředí nikdy nejde ověřit klíči druhého.
Správce pracovního prostoru může projekt smazat na konci jeho stránky Přehled, když napíše jeho název. Všechna prostředí v projektu zmizí najednou: jejich lidé, aplikace, klíče a nastavení i každá relace a každý token, které vydala. Jejich adresy přestanou odpovídat a už se nikdy nikomu nepřidělí, takže aplikaci, která některé z nich pořád důvěřuje, nemůže oklamat projekt někoho jiného.
Vydavatelé
Každé prostředí je samostatný vydavatel (issuer) OpenID Connect na vlastním hostiteli na doméně tenantů:
https://<handle>.usherid.com- Produkční prostředí mají označení, které si zvolíte: 3 až 32 malých písmen, číslic a jednotlivých spojovníků, například název vaší firmy. Jednou použité označení se už nikdy nikomu nepřidělí.
- Vývojová prostředí dostanou náhodné označení, například
wise-otter-42, které si nikdo se značkou nesplete.
Vydavatel je pevně daný při vytvoření prostředí, protože každý token, který podepíše, ho uvádí v iss a každá aplikace, která mu důvěřuje, tuto hodnotu kontroluje.
Doména tenantů je jiná registrovatelná doména než vlastní doména služby Usher (usheridentity.com), takže přihlašovací stránky zákazníka nejsou nikdy na stejném webu (same-site) jako Usher Console, a cookies platí jen pro jednoho hostitele: prohlížeč posílá cookies prostředí jen tomuto prostředí.
Lobby
Lobby je přihlašovací stránka, kterou každé prostředí hostuje na adrese svého vydavatele. Vaše aplikace tam lidi pošle; Lobby je přihlásí a pošle zpátky.
- Vždy uvede aplikaci, do které člověk míří, ve štítku „Pokračujete do aplikace“.
- Nabízí jen metody, které prostředí povoluje: přístupové klíče, kódy zaslané e-mailem, magické odkazy, účty sociálních sítí (Google, GitHub, Microsoft, Apple) a hesla.
- Může vyžadovat druhý faktor: ověřovací aplikaci (se záložními kódy) nebo přístupový klíč.
- Může být otevřená komukoli, nebo omezená na seznam hostů z adres a domén.
Vypadá stejně, ať člověka poslal kterýkoli produkt. To je záměr: lidé se naučí, jak vypadá skutečná Lobby, a všimnou si, když stránka Lobby není.
Účty Usher
Většina prostředí má vlastní uživatele. Účty Usher jsou jiné: jeden účet, který člověka přihlásí do každé aplikace, jež nabízí tlačítko Pokračovat přes Usher. Lidé svůj účet spravují na adrese account.usheridentity.com.
Tokeny a jejich platnost
| Token | Výchozí | Lze nastavit na | K čemu slouží |
|---|---|---|---|
| Autorizační kód | 5 minut | Pevně | Jednou se vymění za tokeny. Jednorázový. |
| ID token | 10 minut | 1 až 60 minut | Říká vaší aplikaci, kdo se přihlásil. Není určen k volání API. |
| Přístupový token | 10 minut | 1 až 60 minut | Posílá se vašemu API, které ho kontroluje. |
| Obnovovací token | 30 dní | 1 až 90 dní | Získává nové přístupové tokeny. Při každém použití se vymění. Vyžaduje offline_access. |
| Strojový přístupový token | 15 minut | 1 až 60 minut | Pro client_credentials: servery, za kterými nestojí žádný člověk. |
| Kód e-mailem, magický odkaz | 10 minut | Pevně | Jedno přihlášení. Kód dovoluje tři pokusy. |
Platnost mají i relace v Lobby: relace skončí po 7 dnech bez použití (1 až 30) a celkově po 30 dnech (1 až 90). Změna něčeho citlivého, například e-mailové adresy, vyžaduje přihlášení za posledních 10 minut.
Podpisové klíče
Tokeny se ve výchozím nastavení podepisují algoritmem RS256; prostředí může místo něj používat ES256 nebo EdDSA. Veřejné klíče jsou zveřejněné na jwks_uri prostředí, takže si je vaše knihovny stáhnou samy a při výměně klíčů načtou nové.
Rozsahy
| Rozsah | Co vaše aplikace dostane |
|---|---|
openid | Povinný. ID token se sub daného člověka. |
profile | Jméno a fotku. |
email | E-mailovou adresu a informaci, jestli je ověřená. |
offline_access | Obnovovací token, aby člověk zůstal přihlášený. |