Gå til innholdet
Dokumentasjon · Arbeidsområder, utstedere og tokener

Konsepter

Noen få ideer forklarer nesten alt i Usher: hvor ting ligger, hvem som utsteder tokener, hvor folk logger på, og hvor lenge hvert token varer.

Arbeidsområder, prosjekter og miljøer

  • Et arbeidsområde er teamet eller bedriften din i Usher Console. Medlemmene og revisjonsloggen hører til det.
  • Et prosjekt er ett produkt: nettappen din eller en partnerportal. Et arbeidsområde kan ha mange.
  • Et miljø er én kjørende kopi av et prosjekt, vanligvis development og production. Det er i miljøene folk, apper, nøkler og innstillinger ligger.

Arbeidsområde · Acme Ltd

Prosjekt · Web

  • development · wise-otter-42
  • production · acme

Prosjekt · Partnerportal

  • development · calm-heron-17
  • production · acme-partners
Hvert miljø er sin egen utsteder, med egne brukere, nøkler og Lobby.

Miljøer deler ingenting som betyr noe. Hvert har sitt eget Postgres-skjema, sine egne signeringsnøkler og sine egne hemmeligheter forseglet under sin egen datanøkkel. En person som registrerer seg i development, finnes ikke i production, og et token fra det ene kan aldri verifiseres med nøklene til det andre.

En administrator i arbeidsområdet kan slette et prosjekt nederst i Oversikt for prosjektet, etter å ha skrevet inn navnet på det. Alle miljøene i det forsvinner på én gang: folk, apper, nøkler og innstillinger i dem, og alle økter og tokener de har gitt ut. Adressene deres slutter å svare og deles aldri ut igjen, så en app som fortsatt stoler på en av dem, ikke kan lures av noen andres prosjekt.

Utstedere

Hvert miljø er sin egen OpenID Connect-utsteder, på sin egen vert på leietakerdomenet:

Utsteder
https://<handle>.usherid.com
  • Produksjonsmiljøer har et kortnavn du velger selv: 3 til 32 små bokstaver, sifre og enkeltstående bindestreker, for eksempel navnet på bedriften din. Et kortnavn som har vært i bruk, deles aldri ut igjen.
  • Utviklingsmiljøer får et tilfeldig kortnavn, som wise-otter-42, som ingen vil forveksle med en merkevare.

Utstederen ligger fast fra miljøet opprettes, fordi hvert token den signerer, navngir den i iss, og hver app som stoler på den, sjekker den verdien.

Leietakerdomenet er et annet registrerbart domene enn Ushers eget (usheridentity.com), så en kundes påloggingssider er aldri på samme nettsted (same-site) som Usher Console, og informasjonskapslene gjelder bare for verten: en nettleser sender et miljøs informasjonskapsler bare til det miljøet.

Lobbyen

Lobbyen er påloggingssiden hvert miljø har på utstederen sin. Appen din sender folk dit; den logger dem på og sender dem tilbake.

  • Den viser alltid navnet på appen personen skal til, i merket «Fortsetter til».
  • Den tilbyr bare metodene miljøet tillater: passnøkler, koder på e-post, magiske lenker, sosiale kontoer (Google, GitHub, Microsoft, Apple) og passord.
  • Den kan kreve et andre trinn: en autentiseringsapp (med reservekoder) eller en passnøkkel.
  • Den kan være åpen for alle, eller begrenset til en gjesteliste med adresser og domener.

Den ser lik ut uansett hvilket produkt som sendte personen. Det er med vilje: folk lærer hvordan en ekte Lobby ser ut, og merker det når en side ikke er det.

Usher-kontoer

De fleste miljøer har sine egne brukere. Usher-kontoer er annerledes: én konto som logger en person på alle apper som tilbyr Fortsett med Usher. Folk administrerer sin på account.usheridentity.com.

Tokener og levetider

TokenStandardKan settes tilHva det er til
Autorisasjonskode5 minutterFastByttes én gang mot tokener. Til engangsbruk.
ID-token10 minutter1 til 60 minutterForteller appen din hvem som logget på. Ikke for å kalle API-er.
Tilgangstoken10 minutter1 til 60 minutterSendes til API-et ditt, som sjekker det.
Oppdateringstoken30 dager1 til 90 dagerHenter nye tilgangstokener. Roteres ved hver bruk. Krever offline_access.
Maskintilgangstoken15 minutter1 til 60 minutterFor client_credentials: servere uten en person bak.
Kode på e-post, magisk lenke10 minutterFastÉn pålogging. En kode gir tre forsøk.

Økter i Lobbyen har også levetider: en økt avsluttes etter 7 dager uten bruk (1 til 30), og etter 30 dager totalt (1 til 90). Å endre noe sensitivt, som en e-postadresse, krever en pålogging fra de siste 10 minuttene.

Signeringsnøkler

Tokener signeres med RS256 som standard; et miljø kan bruke ES256 eller EdDSA i stedet. De offentlige nøklene publiseres på miljøets jwks_uri, så bibliotekene dine henter dem, og plukker opp nye når nøklene roteres.

Omfang

OmfangHva appen din får
openidPåkrevd. Et ID-token med personens sub.
profileNavnet og bildet deres.
emailE-postadressen deres, og om den er bekreftet.
offline_accessEt oppdateringstoken, så de forblir pålogget.