Тип: Булево. Указывает, разрешена ли пользователю аутентификация токеном доступа. Истина - аутентификация разрешена.
Полное описание, параметры и ограничения
ПользовательИнформационнойБазы.АутентификацияТокеномДоступа (InfoBaseUser.AccessTokenAuthentication)
ПользовательИнформационнойБазы (InfoBaseUser)
АутентификацияТокеномДоступа (AccessTokenAuthentication)
Доступен, начиная с версии 8.3.21.
Использование:
Чтение и запись.
Описание:
Тип: Булево.
Указывает, разрешена ли пользователю аутентификация токеном доступа.
Истина - аутентификация разрешена.
Доступность:
Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.
Использование в версии:
Доступен, начиная с версии 8.3.21.
Методическая информация
Практические примеры
Разделить способы аутентификации в черновике
Выключаем семь способов входа только у собственного незаписанного описания. Показываем, что адрес почты, токен, OpenID и Windows — независимые настройки.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Используйте отдельную учебную базу с именем конфигурации Учебная85. Работайте под учебным администратором, которому доступно чтение и создание описаний пользователей.
Создайте серверный общий модуль УчебныеЗадачи. Фрагмент вставьте в тело своей экспортной процедуры и запустите учебной командой.
СоздатьПользователя создаёт описание, не запись списка пользователей. В коде намеренно отсутствуют Записать и Удалить: права, пароли и аутентификация существующих людей не меняются.
Не добавляйте Записать к этим черновикам: для реального создания учётной записи нужны отдельная проверка ролей, способов входа и действующих политик.
УчебноеИмя = "Черновик_" + Строка(Новый УникальныйИдентификатор);
Если ПользователиИнформационнойБазы.НайтиПоИмени(УчебноеИмя) <> Неопределено Тогда
ВызватьИсключение "Учебное имя уже занято: черновик не создаётся";
КонецЕсли;
Черновик = ПользователиИнформационнойБазы.СоздатьПользователя();
Черновик.Имя = УчебноеИмя;
Черновик.ПолноеИмя = "Учебный незаписанный пользователь";
Черновик.ПоказыватьВСпискеВыбора = Ложь;
Черновик.АутентификацияСтандартная = Ложь;
Черновик.АутентификацияОС = Ложь;
Черновик.АутентификацияOpenID = Ложь;
Черновик.АутентификацияOpenIDConnect = Ложь;
Черновик.АутентификацияQRКодом = Ложь;
Черновик.АутентификацияТокеномДоступа = Ложь;
Черновик.АутентификацияЧерезЭлектроннуюПочту = Ложь;
Сообщить(Не Черновик.АутентификацияСтандартная);
Сообщить(Не Черновик.АутентификацияОС);
Сообщить(Не Черновик.АутентификацияOpenID);
Сообщить(Не Черновик.АутентификацияOpenIDConnect);
Сообщить(Не Черновик.АутентификацияQRКодом);
Сообщить(Не Черновик.АутентификацияТокеномДоступа);
Сообщить(Не Черновик.АутентификацияЧерезЭлектроннуюПочту);
Сообщить(ПользователиИнформационнойБазы.НайтиПоИмени(УчебноеИмя) = Неопределено);
Сообщить(Черновик.УникальныйИдентификатор = Новый УникальныйИдентификатор("00000000-0000-0000-0000-000000000000"));Разбор по шагам
Стандартная аутентификация и ОС отключены при создании этого черновика; остальные пять явно задаём отдельно.
OpenID и OpenID Connect — разные поля; не включайте одно вместо другого по сходству имени.
Адрес почты не создаёт почтовый способ входа, а флаг токена не выдаёт токен доступа.
Изменены только поля нового описания в памяти. Способы входа реальных пользователей и общие настройки ИБ не трогаются.
Как проверить результат
Семь сравнений Истина. Это состояние незаписанного черновика, не результат проверки настоящего входа.
Две последние проверки Истина: имя не появилось в списке, UUID черновика остался нулевым.
Ожидаемый результат
Показаны самостоятельные флаги семи способов входа без их реального применения.
На что обратить внимание
Нельзя записывать такой черновик как готового пользователя: способы входа и роли не подготовлены.
Включение флага само по себе не настраивает провайдера или сервер аутентификации.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.
Отделить сопоставление провайдера от настройки второго фактора
В черновик добавляем собственную пару сопоставления. Второй фактор и ключ требования назначения исследуются как отдельные поля; никакого входа или выдачи токена нет.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Используйте отдельную учебную базу с именем конфигурации Учебная85. Работайте под учебным администратором, которому доступно чтение и создание описаний пользователей.
Создайте серверный общий модуль УчебныеЗадачи. Фрагмент вставьте в тело своей экспортной процедуры и запустите учебной командой.
СоздатьПользователя создаёт описание, не запись списка пользователей. В коде намеренно отсутствуют Записать и Удалить: права, пароли и аутентификация существующих людей не меняются.
Не добавляйте Записать к этим черновикам: для реального создания учётной записи нужны отдельная проверка ролей, способов входа и действующих политик.
УчебноеИмя = "Черновик_" + Строка(Новый УникальныйИдентификатор);
Если ПользователиИнформационнойБазы.НайтиПоИмени(УчебноеИмя) <> Неопределено Тогда
ВызватьИсключение "Учебное имя уже занято: черновик не создаётся";
КонецЕсли;
Черновик = ПользователиИнформационнойБазы.СоздатьПользователя();
Черновик.Имя = УчебноеИмя;
Черновик.ПолноеИмя = "Учебный незаписанный пользователь";
Черновик.ПоказыватьВСпискеВыбора = Ложь;
Черновик.АутентификацияСтандартная = Ложь;
Черновик.АутентификацияОС = Ложь;
Черновик.АутентификацияOpenIDConnect = Ложь;
Черновик.АутентификацияТокеномДоступа = Ложь;
Сопоставления = Черновик.КлючиСопоставленияПользователя;
Сопоставления.Вставить("УчебныйПровайдер", "student01");
Сообщить(Сопоставления.Получить("УчебныйПровайдер") = "student01");
Черновик.КлючТребованияНазначения = "";
Сообщить(Черновик.КлючТребованияНазначения = "");
ПровайдерыВторогоФактора = Черновик.НастройкиВторогоФактораАутентификации;
Сообщить("Провайдеров в черновике: " + Строка(ПровайдерыВторогоФактора.Количество()));
Сообщить("Обработка ошибок второго фактора: " + Строка(Черновик.ОбработкаНастроекВторогоФактораАутентификации));
Сообщить(Не Черновик.АутентификацияOpenIDConnect);
Сообщить(Не Черновик.АутентификацияТокеномДоступа);
Сообщить(ПользователиИнформационнойБазы.НайтиПоИмени(УчебноеИмя) = Неопределено);
Сообщить(Черновик.УникальныйИдентификатор = Новый УникальныйИдентификатор("00000000-0000-0000-0000-000000000000"));Разбор по шагам
КлючиСопоставленияПользователя — Соответствие: ключом может быть имя зарегистрированного провайдера или эмитента, значением — ключ сопоставления.
УчебныйПровайдер здесь только собственная строка в незаписанном описании. Реальный провайдер не регистрируется и сервер не настраивается.
Массив НастройкиВторогоФактораАутентификации содержит настройки провайдеров второго фактора, не пары этого Соответствие.
Режим обработки ошибки второго фактора и ключ требования назначения не подменяют роли и не выдают токен.
Оба способа внешней аутентификации остаются отключёнными в черновике; настоящую аутентификацию этот код не проверяет.
Как проверить результат
Четыре сравнения Истина; количество провайдеров и режим обработки выводятся диагностически.
Нет сетевого обращения, SMS, e-mail или запроса второго фактора.
Две последние проверки Истина: имя не появилось в списке, UUID черновика остался нулевым.
Ожидаемый результат
Сопоставление, настройки второго фактора и требование назначения разделены по смыслу.
На что обратить внимание
Фиктивная пара сопоставления не является готовой интеграцией с OIDC.
Пустой массив черновика не означает, что второй фактор выключен для реальных пользователей или политик ИБ.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.