Koncepty
Niekoľko myšlienok vysvetľuje takmer všetko v službe Usher: kde čo je, kto vydáva tokeny, kde sa ľudia prihlasujú a ako dlho ktorý token platí.
Pracovné priestory, projekty a prostredia
- Pracovný priestor je váš tím alebo firma v Usher Console. Patria k nemu jeho členovia a jeho denník auditu.
- Projekt je jeden produkt: vaša webová aplikácia alebo portál pre partnerov. Pracovný priestor ich môže obsahovať veľa.
- Prostredie je jedna bežiaca kópia projektu, zvyčajne development a production. V prostrediach sú ľudia, aplikácie, kľúče a nastavenia.
Pracovný priestor · Acme Ltd
Projekt · Web
- development · wise-otter-42
- production · acme
Projekt · Portál pre partnerov
- development · calm-heron-17
- production · acme-partners
Prostredia nezdieľajú nič podstatné. Každé má vlastnú schému Postgres, vlastné podpisové kľúče a vlastné tajné údaje zapečatené vlastným dátovým kľúčom. Človek, ktorý sa zaregistruje vo vývojovom prostredí, v produkčnom neexistuje a token z jedného sa nikdy nedá overiť kľúčmi druhého.
Správca pracovného priestoru môže projekt odstrániť na konci jeho stránky Prehľad, keď napíše jeho názov. Všetky prostredia v ňom zmiznú naraz: ich ľudia, aplikácie, kľúče a nastavenia aj každá relácia a každý token, ktoré vydali. Ich adresy prestanú odpovedať a už sa nikdy nepridelia znova, takže aplikáciu, ktorá niektorej z nich stále dôveruje, nemôže oklamať projekt niekoho iného.
Vydavatelia
Každé prostredie je samostatný vydavateľ OpenID Connect na vlastnom hostiteľovi v doméne tenantov:
https://<handle>.usherid.com- Produkčné prostredia majú označenie, ktoré si zvolíte: 3 až 32 malých písmen, číslic a jednotlivých spojovníkov, napríklad názov vašej firmy. Raz použité označenie sa už nikdy nepridelí znova.
- Vývojové prostredia dostanú náhodné označenie, napríklad
wise-otter-42, ktoré si nikto nesplete so značkou.
Vydavateľ sa určí pri vytvorení prostredia a už sa nemení, pretože ho uvádza každý token, ktorý podpíše, v iss a každá aplikácia, ktorá mu dôveruje, túto hodnotu kontroluje.
Doména tenantov je iná registrovateľná doména než vlastná doména služby Usher (usheridentity.com), takže prihlasovacie stránky zákazníka nikdy nie sú na rovnakom webe (same-site) ako Usher Console a súbory cookie platia len pre daného hostiteľa: prehliadač pošle súbory cookie prostredia len tomuto prostrediu.
Lobby
Lobby je prihlasovacia stránka, ktorú každé prostredie hostí u svojho vydavateľa. Vaša aplikácia tam ľudí pošle; Lobby ich prihlási a pošle späť.
- Vždy uvedie aplikáciu, do ktorej človek ide, v štítku „Pokračujete do aplikácie“.
- Ponúka len metódy, ktoré prostredie povoľuje: prístupové kľúče, kódy poslané e-mailom, magické odkazy, účty sociálnych sietí (Google, GitHub, Microsoft, Apple) a heslá.
- Môže vyžadovať druhý faktor: overovaciu aplikáciu (so záložnými kódmi) alebo prístupový kľúč.
- Môže byť otvorené pre každého alebo obmedzené na zoznam hostí s adresami a doménami.
Vyzerá rovnako bez ohľadu na to, ktorý produkt človeka poslal. Je to zámer: ľudia sa naučia, ako skutočné Lobby vyzerá, a všimnú si, keď stránka Lobby nie je.
Účty Usher
Väčšina prostredí má vlastných používateľov. Účty Usher sú iné: jeden účet, ktorý človeka prihlási do každej aplikácie, ktorá ponúka tlačidlo Pokračovať cez Usher. Ľudia si svoj účet spravujú na adrese account.usheridentity.com.
Tokeny a ich platnosť
| Token | Predvolene | Dá sa nastaviť na | Na čo slúži |
|---|---|---|---|
| Autorizačný kód | 5 minút | Pevne | Raz sa vymení za tokeny. Na jedno použitie. |
| Token ID | 10 minút | 1 až 60 minút | Povie vašej aplikácii, kto sa prihlásil. Nie na volanie API. |
| Prístupový token | 10 minút | 1 až 60 minút | Posiela sa vášmu API, ktoré ho overí. |
| Obnovovací token | 30 dní | 1 až 90 dní | Získava nové prístupové tokeny. Pri každom použití sa vymení. Vyžaduje offline_access. |
| Strojový prístupový token | 15 minút | 1 až 60 minút | Pre client_credentials: servery, za ktorými nestojí žiadny človek. |
| Kód poslaný e-mailom, magický odkaz | 10 minút | Pevne | Jedno prihlásenie. Kód umožňuje tri pokusy. |
Aj relácie v Lobby majú svoju platnosť: relácia sa skončí po 7 dňoch nečinnosti (1 až 30) a celkovo po 30 dňoch (1 až 90). Zmena citlivého údaja, napríklad e-mailovej adresy, vyžaduje prihlásenie za posledných 10 minút.
Podpisové kľúče
Tokeny sa predvolene podpisujú algoritmom RS256; prostredie môže namiesto neho použiť ES256 alebo EdDSA. Verejné kľúče sú zverejnené na jwks_uri prostredia, takže si ich vaše knižnice stiahnu a pri výmene kľúčov načítajú aj nové.
Rozsahy
| Rozsah | Čo vaša aplikácia dostane |
|---|---|
openid | Povinný. Token ID so sub daného človeka. |
profile | Meno a obrázok. |
email | E-mailovú adresu a informáciu, či je overená. |
offline_access | Obnovovací token, aby prihlásenie zostalo zachované. |