Начало

Документация для разработчиков UNIT

Как подключить своё приложение к UNIT: вход по аккаунту UNIT, данные о человеке с его согласия и API сервисов.

UNIT — это школа, лаборатория и другие сервисы с одним аккаунтом на человека. Аккаунтами управляет UNIT ID (https://auth.labunit.ru) — сервер авторизации по стандартам OAuth 2.0 и OpenID Connect. Если ваше приложение умеет «Войти через Google», то и «Войти через UNIT ID» подключается так же: подойдёт любая библиотека OpenID Connect.

Что можно сделать

  • Вход по аккаунту UNIT в сайт, бота, мобильное приложение или внутренний инструмент — без своих паролей и регистрации.
  • Узнать, кто вошёл: постоянный идентификатор, имя, почту, роли и теги аккаунта (только то, что человек разрешил).
  • Держать вход долго без повторного ввода пароля — токеном обновления.
  • Показывать прогресс в школе — курсы и пройденные уроки (право courses).
  • Сделать сервис UNIT — со своими аккаунтами, которые синхронизируются с UNIT ID (только для сервисов, одобренных администратором).

Адреса

ЧтоАдрес
Издатель (issuer)https://auth.labunit.ru
Описание сервера (discovery)https://auth.labunit.ru/.well-known/openid-configuration
Авторизацияhttps://auth.labunit.ru/oauth/authorize
Токеныhttps://auth.labunit.ru/oauth/token
Данные о человекеhttps://auth.labunit.ru/oauth/userinfo
Ключи подписи (JWKS)https://auth.labunit.ru/oauth/jwks
Отзыв токенаhttps://auth.labunit.ru/oauth/revoke
Выходhttps://auth.labunit.ru/logout

Как устроен доступ

Приложение никогда не видит пароль человека. Оно отправляет его на UNIT ID, человек входит (паролем, с телефона или с кодом 2FA) и соглашается выдать приложению конкретные права. UNIT ID возвращает одноразовый код, приложение меняет его на токены на своём сервере и по токену получает данные.

Любое приложение, кроме сервисов UNIT, сначала проходит одобрение: вы подаёте заявку в разделе «Разработчикам», администратор UNIT её проверяет, и после этого вы выпускаете секрет. Человек в любой момент видит, каким приложениям дал доступ, и может его отозвать.

UNIT · UNIT ID · вопросы по интеграции — администратору UNIT