Přeskočit na obsah
Dokumentace · Pracovní prostory, vydavatelé a tokeny

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
Každé prostředí je samostatný vydavatel s vlastními uživateli, klíči a Lobby.

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ů:

Vydavatel
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

TokenVýchozíLze nastavit naK čemu slouží
Autorizační kód5 minutPevněJednou se vymění za tokeny. Jednorázový.
ID token10 minut1 až 60 minutŘíká vaší aplikaci, kdo se přihlásil. Není určen k volání API.
Přístupový token10 minut1 až 60 minutPosílá se vašemu API, které ho kontroluje.
Obnovovací token30 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ý token15 minut1 až 60 minutPro client_credentials: servery, za kterými nestojí žádný člověk.
Kód e-mailem, magický odkaz10 minutPevně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

RozsahCo vaše aplikace dostane
openidPovinný. ID token se sub daného člověka.
profileJméno a fotku.
emailE-mailovou adresu a informaci, jestli je ověřená.
offline_accessObnovovací token, aby člověk zůstal přihlášený.