Sąvokos
Kelios idėjos paaiškina beveik viską Usher: kur kas yra, kas išduoda žetonus, kur žmonės prisijungia ir kiek laiko galioja kiekvienas žetonas.
Darbo sritys, projektai ir aplinkos
- Darbo sritis – tai jūsų komanda ar įmonė Usher Console. Jai priklauso jos nariai ir audito žurnalas.
- Projektas – tai vienas produktas: jūsų žiniatinklio programa arba partnerių portalas. Darbo sritis gali turėti daug projektų.
- Aplinka – tai viena veikianti projekto kopija, paprastai development ir production. Aplinkose gyvena žmonės, programos, raktai ir nustatymai.
Darbo sritis · Acme Ltd
Projektas · Web
- development · wise-otter-42
- production · acme
Projektas · Partnerių portalas
- development · calm-heron-17
- production · acme-partners
Aplinkos nesidalija niekuo, kas svarbu. Kiekviena turi savo Postgres schemą, savo pasirašymo raktus ir savo paslaptis, užsandarintas savo duomenų raktu. Žmogus, užsiregistravęs kūrimo aplinkoje, produkcinėje neegzistuoja, o vienos aplinkos žetono niekada negalima patikrinti kitos aplinkos raktais.
Darbo srities administratorius gali ištrinti projektą jo apžvalgos puslapio apačioje, įvedęs jo pavadinimą. Visos jo aplinkos išnyksta iš karto: žmonės, programos, raktai ir nustatymai, taip pat kiekviena jų suteikta sesija ir žetonas. Jų adresai nustoja atsakyti ir niekada nebeišduodami, todėl programos, kuri vis dar pasitiki vienu iš jų, negalės apgauti kažkieno kito projektas.
Išdavėjai
Kiekviena aplinka yra atskiras OpenID Connect išdavėjas su savo serveriu nuomininkų domene:
https://<handle>.usherid.com- Produkcinės aplinkos turi jūsų pasirinktą identifikatorių: nuo 3 iki 32 mažųjų raidžių, skaitmenų ir pavienių brūkšnelių, pavyzdžiui, jūsų įmonės pavadinimą. Kartą panaudotas identifikatorius niekada nebeišduodamas.
- Kūrimo aplinkos gauna atsitiktinį identifikatorių, pavyzdžiui,
wise-otter-42, kurio niekas nesupainios su prekės ženklu.
Išdavėjas nustatomas sukuriant aplinką, nes kiekvienas jo pasirašytas žetonas nurodo jį lauke iss, o kiekviena juo pasitikinti programa tą reikšmę tikrina.
Nuomininkų domenas yra kitas registruojamas domenas nei pačios Usher (usheridentity.com), todėl kliento prisijungimo puslapiai niekada nėra toje pačioje svetainėje (same-site) kaip Usher Console, o slapukai skirti tik serveriui: naršyklė aplinkos slapukus siunčia tik tai aplinkai.
Lobby
Lobby – tai prisijungimo puslapis, kurį kiekviena aplinka talpina savo išdavėjo adresu. Jūsų programa siunčia žmones ten; jis juos prijungia ir grąžina atgal.
- Jis visada nurodo programą, į kurią žmogus keliauja, žymoje „Tęsiama į“.
- Jis siūlo tik aplinkos leidžiamus būdus: slaptaraktus, el. paštu atsiųstus kodus, magiškąsias nuorodas, socialinių tinklų paskyras (Google, GitHub, Microsoft, Apple) ir slaptažodžius.
- Jis gali reikalauti antrojo veiksnio: autentifikavimo programos (su atsarginiais kodais) arba slaptarakčio.
- Jis gali būti atviras visiems arba apribotas svečių sąrašu iš adresų ir domenų.
Jis atrodo vienodai, kad ir kuris produktas atsiuntė žmogų. Taip daroma sąmoningai: žmonės išmoksta, kaip atrodo tikras Lobby, ir pastebi, kai puslapis juo nėra.
Usher paskyros
Dauguma aplinkų turi savo naudotojus. Usher paskyros yra kitokios: viena paskyra, su kuria žmogus prisijungia prie kiekvienos programos, siūlančios „Tęsti su Usher“. Žmonės tvarko savo paskyrą adresu account.usheridentity.com.
Žetonai ir jų galiojimas
| Žetonas | Numatytasis | Galima nustatyti | Kam jis skirtas |
|---|---|---|---|
| Autorizacijos kodas | 5 minutės | Fiksuotas | Vieną kartą iškeičiamas į žetonus. Vienkartinis. |
| ID žetonas | 10 minučių | Nuo 1 iki 60 minučių | Praneša jūsų programai, kas prisijungė. Ne API kvietimams. |
| Prieigos žetonas | 10 minučių | Nuo 1 iki 60 minučių | Siunčiamas jūsų API, kuri jį tikrina. |
| Atnaujinimo žetonas | 30 dienų | Nuo 1 iki 90 dienų | Gauna naujus prieigos žetonus. Keičiamas po kiekvieno panaudojimo. Reikia offline_access. |
| Mašinos prieigos žetonas | 15 minučių | Nuo 1 iki 60 minučių | Skirtas client_credentials: serveriams, už kurių nėra žmogaus. |
| El. paštu atsiųstas kodas, magiškoji nuoroda | 10 minučių | Fiksuotas | Vienam prisijungimui. Kodą galima įvesti tris kartus. |
Lobby sesijos taip pat turi galiojimo trukmę: sesija baigiasi po 7 dienų nenaudojimo (nuo 1 iki 30) ir iš viso po 30 dienų (nuo 1 iki 90). Norint pakeisti ką nors jautraus, pavyzdžiui, el. pašto adresą, reikia prisijungimo per paskutines 10 minučių.
Pasirašymo raktai
Numatytai žetonai pasirašomi RS256; aplinka vietoj to gali naudoti ES256 arba EdDSA. Viešieji raktai skelbiami aplinkos jwks_uri, todėl jūsų bibliotekos juos parsisiunčia ir pasiima naujus, kai raktai pakeičiami.
Aprėptys
| Aprėptis | Ką gauna jūsų programa |
|---|---|
openid | Privaloma. ID žetoną su žmogaus sub. |
profile | Žmogaus vardą ir nuotrauką. |
email | Žmogaus el. pašto adresą ir ar jis patvirtintas. |
offline_access | Atnaujinimo žetoną, kad žmogus liktų prisijungęs. |