Hoppa till innehållet
Dokumentation · Arbetsytor, utfärdare och tokens

Begrepp

Några få idéer förklarar nästan allt i Usher: var saker finns, vem som utfärdar tokens, var människor loggar in och hur länge varje token gäller.

Arbetsytor, projekt och miljöer

  • En arbetsyta är ditt team eller företag i Usher Console. Dess medlemmar och dess granskningslogg hör till den.
  • Ett projekt är en produkt: din webbapp eller en partnerportal. En arbetsyta kan rymma många.
  • En miljö är en körande kopia av ett projekt, oftast utveckling och produktion. Det är i miljöerna som människor, appar, nycklar och inställningar finns.

Arbetsyta · Acme AB

Projekt · Webb

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

Projekt · Partnerportal

  • development · calm-heron-17
  • production · acme-partners
Varje miljö är sin egen utfärdare, med egna användare, egna nycklar och en egen Lobby.

Miljöer delar ingenting som spelar roll. Var och en har ett eget Postgres-schema, egna signeringsnycklar och egna hemligheter förseglade under en egen datanyckel. En person som registrerar sig i utveckling finns inte i produktion, och en token från den ena kan aldrig verifieras med den andras nycklar.

En administratör för arbetsytan kan radera ett projekt längst ned på dess Översikt, efter att ha skrivit in projektets namn. Alla miljöer i det försvinner på en gång: deras människor, appar, nycklar och inställningar, och varje session och token de har utfärdat. Deras adresser slutar svara och delas aldrig ut igen, så att en app som fortfarande litar på en av dem inte kan luras av någon annans projekt.

Utfärdare

Varje miljö är sin egen OpenID Connect-utfärdare, på en egen värd på kunddomänen:

Utfärdare
https://<handle>.usherid.com
  • Produktionsmiljöer har en handle som du väljer: 3 till 32 små bokstäver, siffror och enstaka bindestreck, till exempel ditt företags namn. En handle som en gång har använts delas aldrig ut igen.
  • Utvecklingsmiljöer får en slumpmässig handle, till exempel wise-otter-42, som ingen kommer att förväxla med ett varumärke.

Utfärdaren bestäms när miljön skapas, eftersom varje token den signerar anger den i iss, och varje app som litar på den kontrollerar det värdet.

Kunddomänen är en annan registrerbar domän än Ushers egen (usheridentity.com), så en kunds inloggningssidor är aldrig same-site med Usher Console, och cookies gäller bara för värden: en webbläsare skickar en miljös cookies till den miljön och ingen annan.

Lobbyn

Lobbyn är inloggningssidan som varje miljö står värd för hos sin utfärdare. Din app skickar dit människor; Lobbyn loggar in dem och skickar tillbaka dem.

  • Den nämner alltid appen personen är på väg till, i etiketten ”Fortsätter till”.
  • Den erbjuder bara de metoder som miljön tillåter: lösennycklar, koder via e-post, magiska länkar, sociala konton (Google, GitHub, Microsoft, Apple) och lösenord.
  • Den kan kräva en andra faktor: en autentiseringsapp (med reservkoder) eller en lösennyckel.
  • Den kan vara öppen för alla eller begränsad till en gästlista med adresser och domäner.

Den ser likadan ut oavsett vilken produkt som skickade dit personen. Det är avsiktligt: människor lär sig hur en riktig Lobby ser ut och märker när en sida inte är det.

Usher-konton

De flesta miljöer har egna användare. Usher-konton är annorlunda: ett enda konto som en person loggar in med på varje app som erbjuder Fortsätt med Usher. Människor hanterar sitt konto på account.usheridentity.com.

Tokens och livslängder

TokenStandardKan ställas in tillVad den används till
Auktoriseringskod5 minuterFastByts en gång mot tokens. Engångs.
ID-token10 minuter1 till 60 minuterTalar om för din app vem som loggade in. Inte för att anropa API:er.
Åtkomsttoken10 minuter1 till 60 minuterSkickas till ditt API, som kontrollerar den.
Uppdateringstoken30 dagar1 till 90 dagarHämtar nya åtkomsttokens. Roteras vid varje användning. Kräver offline_access.
Maskinåtkomsttoken15 minuter1 till 60 minuterFör client_credentials: servrar utan någon person bakom.
Kod via e-post, magisk länk10 minuterFastEn enda inloggning. En kod kan provas tre gånger.

Sessioner i Lobbyn har också en livslängd: en session avslutas efter 7 dagar utan användning (1 till 30) och efter 30 dagar totalt (1 till 90). Att ändra något känsligt, som en e-postadress, kräver en inloggning från de senaste 10 minuterna.

Signeringsnycklar

Tokens signeras som standard med RS256; en miljö kan använda ES256 eller EdDSA i stället. De publika nycklarna publiceras på miljöns jwks_uri, så att dina bibliotek hämtar dem och plockar upp nya när nycklarna roteras.

Scopes

ScopeVad din app får
openidKrävs. En ID-token med personens sub.
profilePersonens namn och bild.
emailPersonens e-postadress, och om den är verifierad.
offline_accessEn uppdateringstoken, så att personen förblir inloggad.