Към съдържанието
Документация · Работни пространства, издатели и токени

Основни понятия

Няколко идеи обясняват почти всичко в Usher: къде се намират нещата, кой издава токените, къде влизат хората и колко дълго е валиден всеки токен.

Работни пространства, проекти и среди

  • Работното пространство е вашият екип или компания в Usher Console. Членовете и одитният дневник принадлежат на него.
  • Проектът е един продукт: вашето уеб приложение или партньорски портал. Едно работно пространство може да съдържа много проекти.
  • Средата е едно работещо копие на проекта, обикновено development (разработка) и production (продукция). В средите се намират хората, приложенията, ключовете и настройките.

Работно пространство · Acme Ltd

Проект · Уеб

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

Проект · Партньорски портал

  • development · calm-heron-17
  • production · acme-partners
Всяка среда е отделен издател със собствени потребители, ключове и Lobby.

Средите не споделят нищо съществено. Всяка има собствена Postgres схема, собствени ключове за подписване и собствени тайни, запечатани под собствен ключ за данни. Човек, който се регистрира в средата за разработка, не съществува в продукционната, а токен от едната никога не може да бъде проверен с ключовете на другата.

Администратор на работното пространство може да изтрие проект от края на страницата му „Общ преглед“, след като въведе името му. Всички среди в него изчезват наведнъж: хората, приложенията, ключовете и настройките им, както и всяка сесия и всеки токен, които са издали. Адресите им спират да отговарят и никога повече не се дават на никого, така че приложение, което все още се доверява на някой от тях, не може да бъде заблудено от чужд проект.

Издатели

Всяка среда е отделен издател на OpenID Connect, на собствен хост в домейна за наематели:

Издател
https://<handle>.usherid.com
  • Продукционните среди имат кратко име (handle), което избирате вие: от 3 до 32 малки букви, цифри и единични тирета, например името на вашата компания. Веднъж използвано кратко име никога не се дава отново.
  • Средите за разработка получават случайно кратко име, например wise-otter-42, което никой няма да сбърка с марка.

Издателят се фиксира при създаването на средата, защото всеки токен, който тя подписва, го назовава в iss, а всяко приложение, което ѝ се доверява, проверява тази стойност.

Домейнът за наематели е различен регистрируем домейн от собствения домейн на Usher (usheridentity.com), така че страниците за вход на клиентите никога не са от същия сайт като Usher Console, а бисквитките са само за хоста: браузърът изпраща бисквитките на дадена среда единствено до нея.

Lobby

Lobby е страницата за вход, която всяка среда хоства на своя издател. Приложението ви изпраща хората там; те влизат и Lobby ги връща обратно.

  • Винаги назовава приложението, към което отива човекът, в етикета „Продължавате към“.
  • Предлага само методите, които средата позволява: ключове за достъп, кодове по имейл, магически връзки, социални акаунти (Google, GitHub, Microsoft, Apple) и пароли.
  • Може да изисква втори фактор: приложение за удостоверяване (с резервни кодове) или ключ за достъп.
  • Може да е отворено за всички или ограничено до списък с гости от адреси и домейни.

Изглежда еднакво, независимо кой продукт е изпратил човека. Това е нарочно: хората научават как изглежда истинското 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Задължителен. ID токен с sub на човека.
profileИмето и снимката му.
emailИмейл адреса му и дали е потвърден.
offline_accessТокен за опресняване, за да остане човекът влязъл.