Alapfogalmak
Néhány fogalom szinte mindent megmagyaráz az Usherben: hol élnek a dolgok, ki adja ki a tokeneket, hol jelentkeznek be az emberek, és meddig érvényesek az egyes tokenek.
Munkaterületek, projektek és környezetek
- A munkaterület a csapatod vagy a céged az Usher Console-ban. A tagjai és az auditnaplója hozzá tartoznak.
- A projekt egy termék: a webappod vagy egy partnerportál. Egy munkaterületen sok projekt lehet.
- A környezet egy projekt egy futó példánya, általában egy fejlesztői és egy éles. A környezetekben élnek az emberek, az alkalmazások, a kulcsok és a beállítások.
Munkaterület · Acme Ltd
Projekt · Web
- development · wise-otter-42
- production · acme
Projekt · Partnerportál
- development · calm-heron-17
- production · acme-partners
A környezetek semmi lényegeset nem osztanak meg egymással. Mindegyiknek saját Postgres-sémája, saját aláírókulcsai és saját, a saját adatkulcsával lepecsételt titkai vannak. Aki a fejlesztői környezetben regisztrál, az az élesben nem létezik, és az egyik környezet tokenje soha nem ellenőrizhető a másik kulcsaival.
A munkaterület adminisztrátora a projekt Áttekintés oldalának végén törölheti a projektet, miután beírta a nevét. A benne lévő összes környezet egyszerre megszűnik: az embereik, alkalmazásaik, kulcsaik és beállításaik, valamint minden munkamenet és token, amelyet kiadtak. A címeik többé nem válaszolnak, és soha nem adjuk ki őket újra, így egy app, amely még megbízik valamelyikükben, nem téveszthető meg valaki más projektjével.
Kibocsátók
Minden környezet önálló OpenID Connect-kibocsátó, saját hoszttal a bérlői domainen:
https://<handle>.usherid.com- Az éles környezetek rövid nevét te választod: 3–32 kisbetű, számjegy és egyszeres kötőjel, például a céged neve. Egy egyszer már használt rövid nevet soha nem adunk ki újra.
- A fejlesztői környezetek véletlenszerű rövid nevet kapnak, például
wise-otter-42, amelyet senki sem téveszt össze egy márkával.
A kibocsátó a környezet létrehozásakor rögzül, mert minden általa aláírt token megnevezi az iss mezőben, és minden app, amely megbízik benne, ellenőrzi ezt az értéket.
A bérlői domain más regisztrálható domain, mint az Usher sajátja (usheridentity.com), így egy ügyfél bejelentkezési oldalai soha nem azonos webhelyűek (same-site) az Usher Console-lal, a cookie-k pedig csak a saját hosztjukra érvényesek: a böngésző egy környezet cookie-jait csak annak a környezetnek küldi el.
A Lobby
A Lobby az a bejelentkezési oldal, amelyet minden környezet a saját kibocsátójánál hosztol. Az appod oda küldi az embereket; a Lobby bejelentkezteti, majd visszaküldi őket.
- Mindig megnevezi az appot, ahová az illető tart, a „Folytatás ide:” címkén.
- Csak azokat a módszereket kínálja, amelyeket a környezet engedélyez: jelkulcsok, e-mailben küldött kódok, bejelentkezési linkek, közösségi fiókok (Google, GitHub, Microsoft, Apple) és jelszavak.
- Megkövetelhet második tényezőt: hitelesítő appot (tartalékkódokkal) vagy jelkulcsot.
- Lehet bárki számára nyitott, vagy címek és domainek vendéglistájára korlátozott.
Ugyanúgy néz ki, bármelyik termék küldte is oda az illetőt. Ez szándékos: az emberek megtanulják, hogyan néz ki egy valódi Lobby, és észreveszik, ha egy oldal nem az.
Usher-fiókok
A legtöbb környezetnek saját felhasználói vannak. Az Usher-fiókok mások: egyetlen fiók, amely minden olyan appba bejelentkezteti az embereket, amely felkínálja a Folytatás az Usherrel lehetőséget. Az emberek a saját fiókjukat itt kezelik: account.usheridentity.com.
Tokenek és érvényességi idők
| Token | Alapértelmezés | Beállítható | Mire való |
|---|---|---|---|
| Engedélyezési kód | 5 perc | Rögzített | Egyszer cserélhető tokenekre. Egyszer használható. |
| ID-token | 10 perc | 1–60 perc | Megmondja az appodnak, ki jelentkezett be. Nem API-hívásokhoz való. |
| Hozzáférési token | 10 perc | 1–60 perc | Az API-dnak küldik, amely ellenőrzi. |
| Frissítési token | 30 nap | 1–90 nap | Új hozzáférési tokeneket szerez. Minden használatkor lecserélődik. Az offline_access hatókör kell hozzá. |
| Gépi hozzáférési token | 15 perc | 1–60 perc | A client_credentials engedélyezési típushoz: olyan szervereknek, amelyek mögött nem áll személy. |
| E-mailben küldött kód, bejelentkezési link | 10 perc | Rögzített | Egyetlen bejelentkezéshez. Egy kóddal háromszor lehet próbálkozni. |
A Lobbyban a munkameneteknek is van érvényességi idejük: egy munkamenet 7 nap használaton kívüli idő után ér véget (1–30), és összesen 30 nap után (1–90). Érzékeny módosításokhoz, például az e-mail-cím megváltoztatásához, az elmúlt 10 percen belüli bejelentkezés kell.
Aláírókulcsok
A tokeneket alapértelmezés szerint RS256 algoritmussal írjuk alá; egy környezet használhat helyette ES256 vagy EdDSA algoritmust is. A nyilvános kulcsok a környezet jwks_uri címén érhetők el, így a könyvtáraid onnan töltik le őket, és kulcscserekor az újakat is felveszik.
Hatókörök
| Hatókör | Amit az appod megkap |
|---|---|
openid | Kötelező. Egy ID-token az illető sub azonosítójával. |
profile | A neve és a fotója. |
email | Az e-mail-címe, és hogy igazolt-e. |
offline_access | Egy frissítési token, hogy bejelentkezve maradjon. |