Koncepti
Nekaj zamisli pojasni skoraj vse v Usherju: kje so stvari, kdo izdaja žetone, kje se ljudje prijavljajo in kako dolgo velja kateri žeton.
Delovni prostori, projekti in okolja
- Delovni prostor je vaša ekipa ali podjetje v Usher Console. Njegovi člani in njegov revizijski dnevnik pripadajo njemu.
- Projekt je en izdelek: vaša spletna aplikacija ali portal za partnerje. Delovni prostor jih lahko vsebuje veliko.
- Okolje je ena delujoča kopija projekta, običajno razvojno in produkcijsko. V okoljih so ljudje, aplikacije, ključi in nastavitve.
Delovni prostor · Acme Ltd
Projekt · Splet
- razvoj · wise-otter-42
- produkcija · acme
Projekt · Portal za partnerje
- razvoj · calm-heron-17
- produkcija · acme-partners
Okolja nimajo ničesar pomembnega skupnega. Vsako ima svojo shemo Postgres, svoje ključe za podpisovanje in svoje skrivnosti, zapečatene pod lastnim podatkovnim ključem. Oseba, ki se registrira v razvojnem okolju, v produkcijskem ne obstaja, žetona iz enega pa ni nikoli mogoče preveriti s ključi drugega.
Skrbnik delovnega prostora lahko projekt izbriše na koncu njegovega Pregleda, potem ko vnese njegovo ime. Vsa okolja v njem izginejo hkrati: njihovi ljudje, aplikacije, ključi in nastavitve ter vse seje in žetoni, ki so jih izdala. Njihovi naslovi nehajo odgovarjati in se nikoli več ne dodelijo, zato aplikacije, ki kateremu od njih še zaupa, ne more preslepiti projekt nekoga drugega.
Izdajatelji
Vsako okolje je samostojen izdajatelj OpenID Connect, na svojem gostitelju na domeni najemnikov:
https://<handle>.usherid.com- Produkcijska okolja imajo oznako, ki jo izberete sami: od 3 do 32 malih črk, števk in posameznih vezajev, na primer ime vašega podjetja. Enkrat uporabljena oznaka se nikoli več ne dodeli.
- Razvojna okolja dobijo naključno oznako, na primer
wise-otter-42, ki je nihče ne bo zamenjal za blagovno znamko.
Izdajatelj je določen ob ustvarjanju okolja, ker ga vsak žeton, ki ga podpiše, imenuje v iss, vsaka aplikacija, ki mu zaupa, pa to vrednost preveri.
Domena najemnikov je druga registrirljiva domena kot Usherjeva (usheridentity.com), zato strani za prijavo stranke nikoli niso na istem spletnem mestu kot Usher Console, piškotki pa so samo za gostitelja: brskalnik piškotke okolja pošlje samo temu okolju.
Lobby
Lobby je stran za prijavo, ki jo vsako okolje gosti pri svojem izdajatelju. Vaša aplikacija pošlje ljudi tja; Lobby jih prijavi in pošlje nazaj.
- Vedno imenuje aplikacijo, v katero gre oseba, v oznaki „Nadaljevanje v“.
- Ponudi samo načine, ki jih okolje dovoljuje: ključe za dostop, kode po e-pošti, čarobne povezave, račune družbenih omrežij (Google, GitHub, Microsoft, Apple) in gesla.
- Lahko zahteva drugi dejavnik: aplikacijo za preverjanje pristnosti (z rezervnimi kodami) ali ključ za dostop.
- Lahko je odprt za vse ali omejen na seznam povabljenih naslovov in domen.
Videti je enako, ne glede na to, kateri izdelek je poslal osebo. To je namerno: ljudje spoznajo, kako je videti pravi Lobby, in opazijo, ko stran ni to.
Računi Usher
Večina okolij ima svoje uporabnike. Računi Usher so drugačni: en račun, ki osebo prijavi v vsako aplikacijo, ki ponuja Nadaljuj z Usher. Ljudje svoj račun upravljajo na account.usheridentity.com.
Žetoni in veljavnost
| Žeton | Privzeto | Nastavljivo na | Čemu je namenjen |
|---|---|---|---|
| Avtorizacijska koda | 5 minut | Fiksno | Enkrat zamenjana za žetone. Za enkratno uporabo. |
| Žeton ID | 10 minut | Od 1 do 60 minut | Vaši aplikaciji pove, kdo se je prijavil. Ni za klicanje API-jev. |
| Žeton za dostop | 10 minut | Od 1 do 60 minut | Pošlje se vašemu API-ju, ki ga preveri. |
| Žeton za osvežitev | 30 dni | Od 1 do 90 dni | Pridobi nove žetone za dostop. Ob vsaki uporabi se zamenja. Potrebuje offline_access. |
| Žeton za dostop za stroje | 15 minut | Od 1 do 60 minut | Za client_credentials: strežniki, za katerimi ni osebe. |
| Koda po e-pošti, čarobna povezava | 10 minut | Fiksno | Ena prijava. Koda dovoli tri poskuse. |
Tudi seje v Lobbyju imajo omejeno veljavnost: seja se konča po 7 dneh neuporabe (od 1 do 30) in skupno po 30 dneh (od 1 do 90). Za spremembo nečesa občutljivega, na primer e-poštnega naslova, je potrebna prijava v zadnjih 10 minutah.
Ključi za podpisovanje
Žetoni so privzeto podpisani z RS256; okolje lahko namesto tega uporablja ES256 ali EdDSA. Javni ključi so objavljeni na jwks_uri okolja, zato jih vaše knjižnice pridobijo same in prevzamejo nove, ko se ključi zamenjajo.
Obsegi
| Obseg | Kaj prejme vaša aplikacija |
|---|---|
openid | Obvezno. Žeton ID z osebnim sub. |
profile | Ime in sliko osebe. |
email | E-poštni naslov osebe in ali je preverjen. |
offline_access | Žeton za osvežitev, da oseba ostane prijavljena. |