Skip to content

Единый вход ​

Единый вход добавляет на страницу входа панели кнопку Войти через … для каждого добавленного провайдера: Google, Microsoft, GitHub, GitLab, Keycloak, Authentik, Okta, Auth0, любого провайдера OpenID Connect или любого провайдера OAuth 2.0. Тогда ваши операторы входят с учётной записью, которая у них уже есть. Страница находится в Сервисы → Единый вход, и настраивает её главный администратор.

Страница единого входа: адрес возврата для регистрации, список провайдеров и учётные записи, привязанные к аккаунтамСтраница единого входа: адрес возврата для регистрации, список провайдеров и учётные записи, привязанные к аккаунтам

Два правила ​

  • Аккаунт из неё не создаётся. Учётная запись у провайдера ничего не значит для панели, пока её не привяжет аккаунт панели. Тот, кто входит у провайдера без привязки здесь, получает отказ.
  • Двухфакторная аутентификация по-прежнему действует. У аккаунта с двухфакторной аутентификацией после провайдера запрашивается код, как и после пароля.

Адрес возврата ​

Страница показывает один Адрес возврата (Redirect URI), который заканчивается на /api/login/oidc/callback. Зарегистрируйте именно этот адрес у каждого провайдера как redirect (или callback) URI клиента. Один адрес обслуживает всех провайдеров.

Он строится из адреса, на котором открыта страница, поэтому перед копированием откройте панель по тому адресу, которым пользуются ваши операторы.

Если панель стоит за обратным прокси, прокси должен передавать исходный заголовок Host (в nginx — proxy_set_header Host $http_host;) или быть указан в Доверенные прокси на странице безопасности, чтобы учитывался его X-Forwarded-Host. Иначе вход отклоняется на обратном пути.

Добавление провайдера ​

  1. Добавить провайдера и выберите провайдера вверху.

  2. Форма запрашивает ровно то, что нужно этому провайдеру, а над полями написано, где создать клиента. Создайте клиента у провайдера с указанным выше адресом возврата, затем заполните:

    ПровайдерЧто заполнить
    GoogleID клиента, Секрет клиента
    MicrosoftTenant (пусто = common, любой аккаунт Microsoft), ID клиента, Секрет клиента
    GitHubID клиента, Секрет клиента
    GitLabАдрес (пусто = gitlab.com), ID клиента, Секрет клиента
    KeycloakАдрес, Realm, ID клиента, Секрет клиента
    AuthentikАдрес, Slug приложения, ID клиента, Секрет клиента
    OktaДомен, Сервер авторизации (пусто = default), ID клиента, Секрет клиента
    Auth0Домен, ID клиента, Секрет клиента
    OpenID Connect (другой)Issuer, ID клиента, Секрет клиента, Scopes
    OAuth 2.0 (другой)Адрес авторизации, Адрес токена, Адрес данных пользователя, ID клиента, Секрет клиента, Поле ID, Поле имени
  3. Название кнопки меняет то, что написано на кнопке после «Войти через»; если пусто, используется название провайдера.

  4. Сохраните, затем выберите Проверить в строке провайдера, чтобы убедиться, что провайдер отвечает.

OpenID Connect (другой) подходит для любого провайдера, которого можно найти по адресу issuer: PocketID, Authelia, Zitadel, Kanidm, Dex, Casdoor, Logto и других. Его /.well-known/openid-configuration должен отвечать.

OAuth 2.0 (другой) — для провайдера, который поддерживает OAuth 2.0, но не OpenID Connect. Укажите три его адреса и назовите поля его ответа о пользователе, где лежат идентификатор аккаунта (который никогда не меняется) и имя, по которому привязки можно различать.

Адрес должен быть https или http только на собственном сервере панели.

Список провайдеров ​

Для каждого провайдера показано, сколько аккаунтов через него Привязано, его Последний запуск с последней ошибкой, если она была, и переключатель На странице входа, который убирает кнопку, не удаляя провайдера.

При удалении провайдера удаляются привязанные через него учётные записи. То же происходит при изменении, которое меняет то, кем провайдер считает людей: его ID клиента, issuer или адреса, а для OAuth 2.0 (другой) — любого из трёх его адресов или поля ID. Окно сначала предупреждает; затем каждый аккаунт привязывается заново с помощью своего пароля.

Привязка аккаунта ​

Каждый аккаунт привязывает свою учётную запись сам:

  1. Войдите по паролю аккаунта.
  2. Откройте Единый вход в меню аккаунта.
  3. Ещё раз введите текущий пароль.
  4. Нажмите Привязать через нужного провайдера и войдите там.

С этого момента кнопка выполняет вход в этот аккаунт. Пароль продолжает работать рядом с ней. Учётную запись можно привязать только к одному аккаунту; уже привязанная к другому отклоняется.

Главный администратор видит все привязки в разделе Привязанные учётные записи: аккаунт, учётную запись, время привязки и последнего входа, с кнопкой Отвязать у каждой.

Когда доступ нужно отозвать ​

Отвязка учётной записи, удаление аккаунта или сброс его пароля главным администратором на странице Администраторы удаляют привязки аккаунта. Команда восстановления nexora-panel admin reset-password тоже их удаляет, поэтому консоль остаётся единственным путём обратно (см. Командная строка).

Текст и изображения — CC BY 4.0.