Негізгі ұғымдар
Usher-дегі барлығын дерлік бірнеше идея түсіндіреді: не қайда орналасқан, токендерді кім береді, адамдар қайда кіреді және әр токен қанша уақыт жарамды.
Жұмыс кеңістіктері, жобалар және орталар
- Жұмыс кеңістігі — Usher Console ішіндегі сіздің командаңыз немесе компанияңыз. Оның мүшелері мен аудит журналы соған тиесілі.
- Жоба — бір өнім: веб-қолданбаңыз немесе серіктестер порталы. Бір жұмыс кеңістігінде көп жоба болуы мүмкін.
- Орта — жобаның бір жұмыс істеп тұрған көшірмесі, әдетте development және production. Адамдар, қолданбалар, кілттер мен параметрлер орталарда орналасады.
Жұмыс кеңістігі · Acme Ltd
Жоба · Web
- development · wise-otter-42
- production · acme
Жоба · Серіктестер порталы
- development · calm-heron-17
- production · acme-partners
Орталар маңызды ештеңені бөліспейді. Әрқайсысының өз Postgres схемасы, өз қолтаңба кілттері және өз деректер кілтімен мөрленген өз құпиялары бар. Әзірлеу ортасында тіркелген адам өндірістік ортада жоқ, ал бір ортаның токенін ешқашан екіншісінің кілттерімен тексеруге болмайды.
Жұмыс кеңістігінің әкімшісі жобаның атауын енгізгеннен кейін оны «Шолу» бетінің соңында жоя алады. Ондағы әр орта бірден жойылады: адамдары, қолданбалары, кілттері мен параметрлері, сондай-ақ ол берген әр сеанс пен токен. Олардың мекенжайлары жауап беруді тоқтатады және ешқашан қайта берілмейді, сондықтан солардың біріне әлі сенетін қолданбаны басқа біреудің жобасы алдай алмайды.
Эмитенттер
Әр орта — тенанттар доменіндегі өз хосты бар жеке OpenID Connect эмитенті:
https://<handle>.usherid.com- Өндірістік орталардың өзіңіз таңдайтын идентификаторы бар: 3–32 кіші әріп, сан және жалғыз дефис, мысалы, компанияңыздың атауы. Бір рет пайдаланылған идентификатор ешқашан қайта берілмейді.
- Әзірлеу орталары
wise-otter-42сияқты кездейсоқ идентификатор алады, оны ешкім брендпен шатастырмайды.
Эмитент орта жасалған кезде бекітіледі, өйткені ол қол қойған әр токен оны iss өрісінде атайды, ал оған сенетін әр қолданба сол мәнді тексереді.
Тенанттар домені Usher-дің өз доменінен (usheridentity.com) басқа тіркелетін домен, сондықтан тұтынушының кіру беттері Usher Console-мен ешқашан бір сайтта (same-site) болмайды, ал cookie файлдары тек хостқа арналған: браузер ортаның cookie файлдарын тек сол ортаға жібереді.
Lobby
Lobby — әр орта өз эмитентінде орналастыратын кіру беті. Қолданбаңыз адамдарды сонда жібереді; ол оларды кіргізіп, кері қайтарады.
- Ол адамның бара жатқан қолданбасын «… қолданбасына өту» белгісінде әрқашан атайды.
- Ол тек орта рұқсат ететін тәсілдерді ұсынады: кіру кілттері, электрондық поштаға келетін кодтар, сиқырлы сілтемелер, әлеуметтік желі аккаунттары (Google, GitHub, Microsoft, Apple) және құпиясөздер.
- Ол екінші факторды талап ете алады: аутентификатор қолданбасы (резервтік кодтармен) немесе кіру кілті.
- Ол бәріне ашық болуы немесе мекенжайлар мен домендердің қонақтар тізімімен шектелуі мүмкін.
Адамды қай өнім жіберсе де, ол бірдей көрінеді. Бұл әдейі жасалған: адамдар нақты Lobby қалай көрінетінін үйреніп, бет Lobby болмаса, оны байқайды.
Usher аккаунттары
Көп ортаның өз пайдаланушылары бар. Usher аккаунттары басқаша: бұл — адамды «Usher арқылы жалғастыру» мүмкіндігін ұсынатын әр қолданбаға кіргізетін бір аккаунт. Адамдар өз аккаунтын account.usheridentity.com мекенжайында басқарады.
Токендер және олардың жарамдылық мерзімі
| Токен | Әдепкі | Орнатуға болатын мән | Не үшін керек |
|---|---|---|---|
| Авторизация коды | 5 минут | Тұрақты | Токендерге бір рет айырбасталады. Бір реттік. |
| ID токені | 10 минут | 1–60 минут | Қолданбаңызға кім кіргенін айтады. API шақыру үшін емес. |
| Қатынас токені | 10 минут | 1–60 минут | API-ыңызға жіберіледі, ол оны тексереді. |
| Жаңарту токені | 30 күн | 1–90 күн | Жаңа қатынас токендерін алады. Әр пайдаланған сайын ауысады. offline_access қажет. |
| Машинаның қатынас токені | 15 минут | 1–60 минут | client_credentials үшін: артында адам жоқ серверлерге. |
| Электрондық поштаға келген код, сиқырлы сілтеме | 10 минут | Тұрақты | Бір рет кіру үшін. Кодты үш рет енгізуге болады. |
Lobby сеанстарының да жарамдылық мерзімі бар: сеанс 7 күн пайдаланылмаса (1–30), және барлығы 30 күннен кейін (1–90) аяқталады. Электрондық пошта мекенжайы сияқты маңызды нәрсені өзгерту үшін соңғы 10 минут ішінде кірген болу керек.
Қолтаңба кілттері
Әдепкі бойынша токендерге RS256 арқылы қол қойылады; орта оның орнына ES256 немесе EdDSA пайдалана алады. Ашық кілттер ортаның jwks_uri мекенжайында жарияланады, сондықтан кітапханаларыңыз оларды алып, кілттер ауыстырылғанда жаңаларын қабылдайды.
Ауқымдар
| Ауқым | Қолданбаңыз не алады |
|---|---|
openid | Міндетті. Адамның sub мәні бар ID токені. |
profile | Адамның аты мен суреті. |
email | Адамның электрондық пошта мекенжайы және оның расталғаны. |
offline_access | Адам кірген күйде қалуы үшін жаңарту токені. |