Preskoči na sadržaj
Dokumentacija · Radni prostori, izdavatelji i tokeni

Koncepti

Nekoliko ideja objašnjava gotovo sve u platformi Usher: gdje se što nalazi, tko izdaje tokene, gdje se ljudi prijavljuju i koliko dugo koji token traje.

Radni prostori, projekti i okruženja

  • Radni prostor je vaš tim ili tvrtka u sučelju Usher Console. Njegovi članovi i revizijski zapisnik pripadaju njemu.
  • Projekt je jedan proizvod: vaša web-aplikacija ili portal za partnere. Radni prostor može sadržavati mnogo projekata.
  • Okruženje je jedna pokrenuta kopija projekta, obično razvojno i produkcijsko. U okruženjima se nalaze ljudi, aplikacije, ključevi i postavke.

Radni prostor · Acme Ltd

Projekt · Web

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

Projekt · Portal za partnere

  • development · calm-heron-17
  • production · acme-partners
Svako je okruženje zaseban izdavatelj, s vlastitim korisnicima, ključevima i stranicom Lobby.

Okruženja ne dijele ništa bitno. Svako ima vlastitu Postgres shemu, vlastite ključeve za potpisivanje i vlastite tajne zapečaćene vlastitim podatkovnim ključem. Osoba koja se registrira u razvojnom okruženju ne postoji u produkcijskom, a token iz jednoga nikad se ne može provjeriti ključevima drugoga.

Administrator radnog prostora može izbrisati projekt na dnu njegove stranice Pregled, nakon što upiše njegov naziv. Sva okruženja u njemu nestaju odjednom: njihovi ljudi, aplikacije, ključevi i postavke te svaka sesija i svaki token koje su izdala. Njihove adrese prestaju odgovarati i nikad se više ne dodjeljuju, pa aplikaciju koja nekoj od njih još vjeruje ne može prevariti tuđi projekt.

Izdavatelji

Svako je okruženje zaseban izdavatelj za OpenID Connect, na vlastitom hostu na domeni zakupaca:

Izdavatelj
https://<handle>.usherid.com
  • Produkcijska okruženja imaju oznaku koju sami odaberete: od 3 do 32 mala slova, znamenke i pojedinačne crtice, kao što je naziv vaše tvrtke. Jednom upotrijebljena oznaka nikad se više ne dodjeljuje.
  • Razvojna okruženja dobivaju nasumičnu oznaku, kao što je wise-otter-42, koju nitko neće zamijeniti za marku.

Izdavatelj se utvrđuje pri izradi okruženja jer ga svaki token koji potpiše navodi u iss, a svaka aplikacija koja mu vjeruje provjerava tu vrijednost.

Domena zakupaca druga je registrabilna domena od vlastite domene platforme Usher (usheridentity.com), pa stranice za prijavu kupaca nikad nisu na istom mjestu (same-site) kao Usher Console, a kolačići su vezani samo uz host: preglednik šalje kolačiće okruženja isključivo tom okruženju.

Lobby

Lobby je stranica za prijavu koju svako okruženje hostira na adresi svojeg izdavatelja. Vaša aplikacija šalje ljude onamo; Lobby ih prijavljuje i vraća natrag.

  • Uvijek navodi aplikaciju u koju osoba ide, u oznaci „Nastavljate u aplikaciju”.
  • Nudi samo načine prijave koje okruženje dopušta: pristupne ključeve, kôdove poslane e-poštom, čarobne poveznice, račune na društvenim mrežama (Google, GitHub, Microsoft, Apple) i lozinke.
  • Može zahtijevati drugi faktor: aplikaciju za provjeru autentičnosti (s rezervnim kôdovima) ili pristupni ključ.
  • Može biti otvoren svima ili ograničen na popis gostiju s adresama i domenama.

Izgleda isto koji god proizvod poslao osobu. To je namjerno: ljudi nauče kako izgleda pravi Lobby i primijete kad neka stranica to nije.

Usher računi

Većina okruženja ima vlastite korisnike. Usher računi su drukčiji: jedan račun prijavljuje osobu u svaku aplikaciju koja nudi „Nastavi uz Usher”. Ljudi svojim računom upravljaju na adresi account.usheridentity.com.

Tokeni i trajanje

TokenZadanoMože se postaviti naČemu služi
Autorizacijski kôd5 minutaFiksnoJednom se mijenja za tokene. Jednokratan.
ID token10 minutaOd 1 do 60 minutaGovori vašoj aplikaciji tko se prijavio. Nije za pozivanje API-ja.
Pristupni token10 minutaOd 1 do 60 minutaŠalje se vašem API-ju, koji ga provjerava.
Token za osvježavanje30 danaOd 1 do 90 danaDobiva nove pristupne tokene. Rotira se pri svakoj upotrebi. Zahtijeva offline_access.
Strojni pristupni token15 minutaOd 1 do 60 minutaZa client_credentials: poslužitelji iza kojih nema osobe.
Kôd e-poštom, čarobna poveznica10 minutaFiksnoJedna prijava. Kôd dopušta tri pokušaja.

I sesije na stranici Lobby imaju trajanje: sesija završava nakon 7 dana nekorištenja (od 1 do 30) i nakon ukupno 30 dana (od 1 do 90). Za promjenu nečeg osjetljivog, kao što je adresa e-pošte, potrebna je prijava iz posljednjih 10 minuta.

Ključevi za potpisivanje

Tokeni se zadano potpisuju algoritmom RS256; okruženje umjesto njega može koristiti ES256 ili EdDSA. Javni ključevi objavljuju se na adresi jwks_uri okruženja, pa ih vaše biblioteke dohvaćaju i preuzimaju nove kad se ključevi rotiraju.

Opsezi

OpsegŠto vaša aplikacija dobiva
openidObavezno. ID token s vrijednošću sub osobe.
profileIme i sliku osobe.
emailAdresu e-pošte osobe i podatak je li potvrđena.
offline_accessToken za osvježavanje, kako bi osoba ostala prijavljena.