Salt la conținut
Documentație · Spații de lucru, emitenți și tokenuri

Concepte

Câteva idei explică aproape tot ce se întâmplă în Usher: unde stau lucrurile, cine emite tokenurile, unde se conectează oamenii și cât timp rămâne valabil fiecare token.

Spații de lucru, proiecte și medii

  • Un spațiu de lucru este echipa sau compania dvs. în Usher Console. Membrii și jurnalul de audit îi aparțin.
  • Un proiect este un singur produs: aplicația dvs. web sau un portal pentru parteneri. Un spațiu de lucru poate conține multe.
  • Un mediu este o copie în funcțiune a unui proiect; de obicei există unul de dezvoltare și unul de producție. În medii se află persoanele, aplicațiile, cheile și setările.

Spațiu de lucru · Acme Ltd

Proiect · Web

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

Proiect · Portal pentru parteneri

  • development · calm-heron-17
  • production · acme-partners
Fiecare mediu este un emitent separat, cu propriii utilizatori, propriile chei și propriul Lobby.

Mediile nu au nimic important în comun. Fiecare are propria schemă Postgres, propriile chei de semnare și propriile secrete, sigilate sub propria cheie de date. O persoană care se înregistrează în mediul de dezvoltare nu există în cel de producție, iar un token din unul nu poate fi verificat niciodată cu cheile celuilalt.

Un administrator al spațiului de lucru poate șterge un proiect de la finalul paginii sale Prezentare generală, după ce îi tastează numele. Toate mediile lui dispar deodată: persoanele, aplicațiile, cheile și setările lor, și fiecare sesiune și token pe care le-au emis. Adresele lor nu mai răspund și nu mai sunt date niciodată altcuiva, așa că o aplicație care încă are încredere într-una dintre ele nu poate fi păcălită de proiectul altcuiva.

Emitenți

Fiecare mediu este un emitent OpenID Connect separat, cu propria gazdă pe domeniul tenanților:

Emitent
https://<handle>.usherid.com
  • Mediile de producție au un identificator ales de dvs.: între 3 și 32 de litere mici, cifre și cratime neconsecutive, cum ar fi numele companiei dvs. Un identificator folosit o dată nu mai este dat niciodată altcuiva.
  • Mediile de dezvoltare primesc un identificator aleatoriu, cum ar fi wise-otter-42, pe care nimeni nu îl va confunda cu o marcă.

Emitentul este fixat când se creează mediul, pentru că fiecare token pe care îl semnează îl numește în iss, iar fiecare aplicație care are încredere în el verifică această valoare.

Domeniul tenanților este un domeniu înregistrabil diferit de cel al Usher (usheridentity.com), așa că paginile de conectare ale unui client nu se află niciodată pe același site cu Usher Console, iar cookie-urile sunt doar pentru gazdă: un browser trimite cookie-urile unui mediu doar acelui mediu.

Lobby-ul

Lobby-ul este pagina de conectare pe care fiecare mediu o găzduiește la emitentul său. Aplicația dvs. trimite oamenii acolo; Lobby-ul îi conectează și îi trimite înapoi.

  • Numește întotdeauna aplicația spre care merge persoana, în eticheta „Continuați la”.
  • Oferă doar metodele permise de mediu: chei de acces, coduri prin e-mail, linkuri magice, conturi sociale (Google, GitHub, Microsoft, Apple) și parole.
  • Poate cere un al doilea factor: o aplicație de autentificare (cu coduri de rezervă) sau o cheie de acces.
  • Poate fi deschis oricui sau limitat la o listă de invitați cu adrese și domenii.

Arată la fel, oricare ar fi produsul care a trimis persoana. Este intenționat: oamenii învață cum arată un Lobby adevărat și observă când o pagină nu este unul.

Conturi Usher

Majoritatea mediilor au propriii utilizatori. Conturile Usher sunt altceva: un singur cont care conectează o persoană la fiecare aplicație care oferă Continuați cu Usher. Oamenii își gestionează contul la account.usheridentity.com.

Tokenuri și durate de valabilitate

TokenImplicitSe poate seta laLa ce folosește
Cod de autorizare5 minuteFixSe schimbă o singură dată pe tokenuri. De unică folosință.
Token ID10 minuteÎntre 1 și 60 de minuteÎi spune aplicației cine s-a conectat. Nu se folosește pentru apelarea API-urilor.
Token de acces10 minuteÎntre 1 și 60 de minuteEste trimis API-ului dvs., care îl verifică.
Token de reîmprospătare30 de zileÎntre 1 și 90 de zileObține tokenuri de acces noi. Se rotește la fiecare utilizare. Necesită offline_access.
Token de acces pentru mașini15 minuteÎntre 1 și 60 de minutePentru client_credentials: servere în spatele cărora nu se află nicio persoană.
Cod prin e-mail, link magic10 minuteFixO singură conectare. Un cod permite trei încercări.

Și sesiunile din Lobby au durate de valabilitate: o sesiune se încheie după 7 zile de neutilizare (între 1 și 30) și după 30 de zile în total (între 1 și 90). Modificarea unor date sensibile, cum ar fi adresa de e-mail, necesită o conectare din ultimele 10 minute.

Chei de semnare

Tokenurile sunt semnate implicit cu RS256; un mediu poate folosi în schimb ES256 sau EdDSA. Cheile publice sunt publicate la jwks_uri al mediului, așa că bibliotecile dvs. le preiau de acolo și le iau pe cele noi când cheile sunt rotite.

Scope-uri

ScopeCe primește aplicația dvs.
openidObligatoriu. Un token ID cu sub al persoanei.
profileNumele și fotografia persoanei.
emailAdresa de e-mail a persoanei și dacă este verificată.
offline_accessUn token de reîmprospătare, ca persoana să rămână conectată.