Skip to content

Единый вход (SSO) ​

Страница для администраторов. Единый вход позволяет сотрудникам входить в TAktom учётной записью корпоративного провайдера — по протоколу OIDC или SAML 2.0. Подходит любой совместимый провайдер, облачный или развёрнутый в вашем контуре (например, Keycloak, ADFS или Microsoft Entra ID), и их может быть несколько одновременно, в том числе с разными протоколами.

Функция поставляется отдельно

Единый вход не входит в базовую поставку: он должен быть разрешён конфигурацией инстанса. Если раздела Админ → Единый вход нет, начните с этого — см. Функции и настройки.

Что происходит при входе ​

На странице входа появляется кнопка «Войти через …» для каждого включённого провайдера. Дальше человек попадает на страницу провайдера, а вернувшись — оказывается в TAktom.

Учётная запись при первом входе заводится автоматически (это можно запретить, см. ниже): имя и почта берутся у провайдера, роль — из сопоставления групп, если оно настроено. Такая запись занимает лицензионное место ровно как заведённая руками, и лимит мест на неё распространяется.

У учётных записей, созданных провайдером, пароля в TAktom нет — вход по паролю для них невозможен, пока человек не задаст пароль сам через «Забыли пароль?».

Три рубильника ​

Кнопка на странице входа появится, только когда сойдутся все три условия. Так сделано намеренно, чтобы функция не включилась сама:

  1. функция разрешена конфигурацией инстанса и включена в Админ → Плагины;
  2. конфиг-модуль «Единый вход» включён в Админ → Настройки. Пока он выключен, кнопок нет, как бы ни были настроены провайдеры;
  3. сам провайдер заполнен и включён на Админ → Единый вход.

Настройка провайдера ​

Откройте Админ → Единый вход и добавьте провайдера. Ему задаётся идентификатор — строчные латинские буквы, цифры и дефис, до 32 символов: он попадает в адрес входа, и сменить его потом нельзя, только удалить провайдера и завести заново. Поле «Протокол» выбирает OIDC или SAML 2.0; общие для обоих поля — название, разрешённые домены, группы → роли и иконка.

OIDC ​

На странице показан адрес возврата (redirect URI) вашего инстанса — впишите его в приложение на стороне провайдера символ в символ.

Поля провайдера OIDC:

ПолеЧто задаёт
ПровайдерОтображаемое название — из него складывается текст кнопки «Войти через …».
IssuerБазовый адрес провайдера, по которому доступно описание OIDC. Всё остальное — адреса и ключи — берётся оттуда автоматически.
Client ID / Client secretРеквизиты приложения, созданного на стороне провайдера. Секрет наружу не отдаётся: интерфейс показывает лишь, задан он или нет.
ScopesМинимум openid email profile. Добавьте groups, если провайдер отдаёт группы и нужно сопоставление ролей.
Разрешённые доменыСписок доменов почты через запятую. Пусто — ограничения нет.
Доп. параметры авторизацииПараметры, которые ваш провайдер принимает сверх стандартного OIDC. Стандартные параметры перекрыть нельзя.
Группы → ролиСопоставление групп провайдера с глобальными ролями. Порядок задаёт приоритет; совпадений нет — роль по умолчанию (участник). Применяется при создании учётной записи.
Доверять email без email_verifiedДля собственного провайдера, который не сообщает, подтверждён ли адрес.
Иконка (URL)Картинка на кнопке входа.

SAML 2.0 ​

Вход всегда начинается на стороне TAktom: запрос уходит провайдеру, ответ возвращается на адрес приёма. Вход, начатый из портала провайдера (IdP-initiated), не принимается.

  1. Metadata провайдера (IdP). Загрузите файл metadata провайдера или укажите его адрес (только https) и нажмите «Загрузить по адресу». Из неё берутся entityID провайдера, адрес входа и сертификаты подписи — ответы провайдера проверяются только ими. Автообновления нет: если провайдер сменил сертификат, загрузите metadata заново. Сроки действия сертификатов видны рядом.
  2. Наша сторона (SP) — передайте администратору IdP. Здесь показаны SP entityID (Audience) и адрес приёма ответов ACS URL (HTTP-POST), оба вида https://<your-host>/auth/sso/saml/<идентификатор>…. Удобнее всего нажать «Скачать metadata SP» и отдать файл администратору провайдера целиком.
  3. Подписывать AuthnRequest — включено по умолчанию и рекомендуется. Ключ подписи заводится автоматически на 10 лет и не покидает сервер; выключайте, только если провайдер не принимает подписанные запросы.
  4. Атрибуты ответа — имена атрибутов почты, имени и групп. Пусто — используются стандартные имена (mail/email, displayName/cn, groups/memberOf и их варианты у ADFS и Entra ID). NameID формата emailAddress тоже годится как почта.
  5. Считать email подтверждённым — в SAML нет признака подтверждения адреса. Включайте для собственного провайдера, иначе вход не свяжется с существующей локальной учётной записью с тем же адресом.

Нужен постоянный NameID

Провайдер должен присылать постоянный идентификатор пользователя (persistent, emailAddress или unspecified). Временный (transient) меняется при каждом входе — вернувшийся сотрудник выглядел бы новым человеком, поэтому такой вход отклоняется с сообщением о временном идентификаторе.

Один провайдер (его entityID) подключается один раз: второе подключение того же провайдера сохранить нельзя.

Проверка ​

Изменения подхватываются примерно за десять секунд. Кнопка «Проверить» опрашивает провайдера и показывает, отвечает ли он и сходятся ли настройки; у SAML она смотрит metadata, сроки сертификатов и ключ подписи запросов.

Разрешённые домены у публичного провайдера

Если провайдер публичный, пустое поле «Разрешённые домены» означает, что войти сможет любой его аккаунт — и, при включённом автосоздании, получить у вас учётную запись. Ограничивайте домены.

Собственный провайдер с самоподписанным сертификатом

Такой сертификат по умолчанию не принимается, и вход падает с ошибкой TLS. Корневой сертификат нужно добавить в инстанс при развёртывании — см. Конфигурация → Единый вход.

Связывание и автосоздание ​

Два параметра функции задают, что делать с человеком, который вошёл впервые. В интерфейсе их пока нет — они меняются на стороне установки, в конфигурации конфиг-модуля единого входа; по умолчанию оба включены:

  • Связывать по адресу почты (по умолчанию включено) — если локальная учётная запись с таким адресом уже есть, вход привязывается к ней. Работает только для подтверждённого провайдером адреса: иначе чужой непроверенный адрес открыл бы доступ к существующей записи.
  • Автосоздание (по умолчанию включено) — заводить учётную запись при первом входе. Выключите, если состав пользователей должен вестись вручную: тогда войдут только те, кому запись уже заведена.

Аварийный доступ ​

Не отключайте вход по паролю заранее

Сначала убедитесь, что хотя бы один администратор действительно вошёл через провайдера. Отключив пароль до этого, вы рискуете не попасть в инстанс вообще.

Если доступ всё же потерян — провайдер лёг, приложение на его стороне отозвали — есть два пути, и оба не зависят от него:

  • токен владельца установки: он даёт административный доступ к API, минуя вход в интерфейс, и позволяет вернуть парольный вход. См. Конфигурация → Токен владельца;
  • «Забыли пароль?» — владельцу почтового адреса доступен обычный сброс пароля, даже если учётная запись была создана провайдером.

Если вход не удался ​

Человек возвращается на страницу входа с сообщением об ошибке. Типичные причины:

Что видит пользовательГде искать причину
Время на вход истеклоС нажатия кнопки провайдера до возврата прошло больше десяти минут, либо переход повторён по той же ссылке (она одноразовая) — просто начать заново.
Провайдер отклонил входОтказ на стороне провайдера: человек отменил вход или приложение не одобрено.
Провайдер недоступенПлагин не запущен, провайдер не отвечает или неверный issuer. При выключенной функции ошибки не будет — кнопок на странице входа просто нет.
Адрес уже занят локальной учётной записьюСвязывание по адресу запрещено или адрес не подтверждён провайдером. Включите связывание и добейтесь подтверждённого адреса (для собственного провайдера — «Доверять email без email_verified», у SAML — «Считать email подтверждённым») либо освободите адрес: ручного связывания записей в интерфейсе нет.
Адрес принадлежит клиенту порталаКонтуры сотрудников и клиентов Service Desk не смешиваются — нужен другой адрес.
Провайдер не передал адрес почтыВ приложении на стороне провайдера не выданы нужные scopes (OIDC) или не настроен атрибут почты (SAML).
Провайдер передал временный идентификаторSAML: в настройках провайдера выбран transient NameID — нужен постоянный.
Автосоздание выключеноЗаведите учётную запись заранее либо включите автосоздание.
Учётная запись отключенаВход этой записи отключён администратором — см. Пользователи и права.
Достигнут предел пользователейСвободных лицензионных мест нет — см. Пользователи и права.
Добавление пользователей приостановленоУ инстанса задолженность по оплате — новые учётные записи не создаются, пока она не погашена.

Что дальше ​

Смотрите также ​