Käsitteet
Muutama ajatus selittää lähes kaiken Usherissa: missä asiat ovat, kuka myöntää tunnukset, missä ihmiset kirjautuvat ja kuinka kauan kukin tunnus on voimassa.
Työtilat, projektit ja ympäristöt
- Työtila on tiimisi tai yrityksesi Usher Consolessa. Sen jäsenet ja tarkastusloki kuuluvat sille.
- Projekti on yksi tuote: verkkosovelluksesi tai kumppaniportaali. Työtilassa voi olla monta projektia.
- Ympäristö on yksi projektin käynnissä oleva kopio, tavallisesti kehitys (
development) ja tuotanto (production). Ympäristöissä ovat ihmiset, sovellukset, avaimet ja asetukset.
Työtila · Acme Oy
Projekti · Verkko
- development · wise-otter-42
- production · acme
Projekti · Kumppaniportaali
- development · calm-heron-17
- production · acme-partners
Ympäristöt eivät jaa mitään olennaista. Jokaisella on oma Postgres-skeemansa, omat allekirjoitusavaimensa ja omat salaisuutensa, jotka on sinetöity sen omalla tietoavaimella. Kehitysympäristöön rekisteröitynyttä ihmistä ei ole olemassa tuotannossa, eikä yhden ympäristön tunnusta voi koskaan todentaa toisen avaimilla.
Työtilan ylläpitäjä voi poistaa projektin sen Yleiskatsaus-sivun lopusta kirjoitettuaan projektin nimen. Kaikki sen ympäristöt poistuvat kerralla: niiden ihmiset, sovellukset, avaimet ja asetukset sekä jokainen istunto ja tunnus, jonka ne ovat antaneet. Niiden osoitteet lakkaavat vastaamasta, eikä niitä koskaan anneta uudelleen, joten sovellusta, joka yhä luottaa johonkin niistä, ei voi huijata jonkun toisen projektilla.
Myöntäjät
Jokainen ympäristö on oma myöntäjänsä (OpenID Connect issuer) omassa isäntänimessään asiakasverkkotunnuksessa:
https://<handle>.usherid.com- Tuotantoympäristöillä on itse valitsemasi lyhytnimi (handle): 3–32 pientä kirjainta, numeroa ja yksittäistä yhdysmerkkiä, esimerkiksi yrityksesi nimi. Kerran käytettyä lyhytnimeä ei koskaan anneta uudelleen.
- Kehitysympäristöt saavat satunnaisen lyhytnimen, kuten
wise-otter-42, jota kukaan ei luule brändiksi.
Myöntäjä määräytyy, kun ympäristö luodaan, koska jokainen sen allekirjoittama tunnus nimeää sen iss-kentässä, ja jokainen siihen luottava sovellus tarkistaa tämän arvon.
Asiakasverkkotunnus on eri rekisteröitävä verkkotunnus kuin Usherin oma (usheridentity.com), joten asiakkaan kirjautumissivut eivät ole koskaan samalla sivustolla (same-site) Usher Consolen kanssa, ja evästeet ovat isäntäkohtaisia: selain lähettää ympäristön evästeet vain kyseiselle ympäristölle.
Lobby
Lobby on kirjautumissivu, jota jokainen ympäristö ylläpitää myöntäjänsä osoitteessa. Sovelluksesi lähettää ihmiset sinne; Lobby kirjaa heidät sisään ja lähettää takaisin.
- Se nimeää aina sovelluksen, johon ihminen on menossa, ”Jatkat palveluun” -merkinnässä.
- Se tarjoaa vain ne menetelmät, jotka ympäristö sallii: pääsyavaimet, sähköpostikoodit, taikalinkit, sometilit (Google, GitHub, Microsoft, Apple) ja salasanat.
- Se voi vaatia toisen vaiheen: todennussovelluksen (varakoodeineen) tai pääsyavaimen.
- Se voi olla avoin kaikille tai rajattu osoitteiden ja verkkotunnusten vieraslistaan.
Se näyttää samalta, mikä tuote ihmisen sinne lähettikin. Se on tarkoituksellista: ihmiset oppivat, miltä oikea Lobby näyttää, ja huomaavat, kun sivu ei ole sellainen.
Usher-tilit
Useimmilla ympäristöillä on omat käyttäjänsä. Usher-tilit ovat erilaisia: yksi tili, jolla ihminen kirjautuu jokaiseen sovellukseen, joka tarjoaa ”Jatka Usherilla” -vaihtoehdon. Ihmiset hallitsevat tiliään osoitteessa account.usheridentity.com.
Tunnukset ja voimassaoloajat
| Tunnus | Oletus | Voidaan asettaa | Mihin se on |
|---|---|---|---|
| Valtuutuskoodi | 5 minuuttia | Kiinteä | Vaihdetaan kerran tunnuksiin. Kertakäyttöinen. |
| ID-tunnus | 10 minuuttia | 1–60 minuuttia | Kertoo sovelluksellesi, kuka kirjautui. Ei API-kutsuihin. |
| Käyttöoikeustunnus | 10 minuuttia | 1–60 minuuttia | Lähetetään API:llesi, joka tarkistaa sen. |
| Päivitystunnus | 30 päivää | 1–90 päivää | Hakee uusia käyttöoikeustunnuksia. Vaihtuu joka käytöllä. Vaatii käyttöalueen offline_access. |
| Koneen käyttöoikeustunnus | 15 minuuttia | 1–60 minuuttia | Myöntötyypille client_credentials: palvelimet, joiden takana ei ole ihmistä. |
| Sähköpostikoodi, taikalinkki | 10 minuuttia | Kiinteä | Yksi kirjautuminen. Koodilla on kolme yritystä. |
Lobbyn istunnoillakin on voimassaoloajat: istunto päättyy 7 päivän käyttämättömyyden jälkeen (1–30) ja viimeistään 30 päivän kuluttua (1–90). Arkaluonteisen asian, kuten sähköpostiosoitteen, muuttaminen vaatii kirjautumisen viimeisten 10 minuutin ajalta.
Allekirjoitusavaimet
Tunnukset allekirjoitetaan oletuksena RS256-algoritmilla; ympäristö voi käyttää sen sijaan ES256- tai EdDSA-algoritmia. Julkiset avaimet julkaistaan ympäristön jwks_uri-osoitteessa, joten kirjastosi hakevat ne ja ottavat uudet avaimet käyttöön, kun avaimet vaihdetaan.
Käyttöalueet
| Käyttöalue | Mitä sovelluksesi saa |
|---|---|
openid | Pakollinen. ID-tunnus, jossa on ihmisen sub. |
profile | Hänen nimensä ja kuvansa. |
email | Hänen sähköpostiosoitteensa ja tiedon siitä, onko se vahvistettu. |
offline_access | Päivitystunnuksen, jotta hän pysyy kirjautuneena. |