Перейти к основному содержимому
Версия: Indeed Access Manager 9.2

Валидация Passcode

Перед началом процедуры миграции с Access Manager 8.2.x на Access Manager 9.x рекомендуется выполнить валидацию Passcode, если в версии Access Manager 8.2.x используется Windows Logon или RDP Windows Logon. Процесс валидации Passcode обеспечивает корректность и целостность данных и позволяет избежать ошибок преобразования данных из бинарного формата.

Чтобы обеспечить консистентность данных и гарантировать успешное функционирование аутентификации с помощью провайдера Passcode в Access Manager 9.2, используйте утилиту AccessManager.Tools.Passcode.Services.Console.exe.

Настройки на стороне Access Manager 9.2

Перед использованием утилиты AccessManager.Tools.Passcode.Services.Console.exe необходимо выполнить следующее:

  1. Выполните установку и настройку серверных компонентов Access Manager 9.2.

    Важно

    При настройке компонента Core Server, укажите строку подключения к базе данных от Access Manager 8.2.x.

  2. Для компонента Core Server включите логирование с уровнем Error.

  3. Откройте файл am/core/app-settings.json и убедитесь, что следующий параметр задан корректно:

    "PlatformCompatibility": {
    "Registry": {
    "Source": "PlatformOrFile",
    "File": "server-registry.json"
    }
    }

    Где файл server-registry.json — эмулятор реестра в Access Manager 9.2.

  4. Внесите изменения в файл am/core/server-registry.json:

    • LogPasscodeDeserializationError — включает и выключает логирование ошибочных данных (pickle) для Passcode. Возможные значения: "1" и "0".
    • LogPasscodeEncryptionPublicKey — публичный ключ шифрования ошибочных данных (pickle) для Passcode. Не изменяйте этот параметр.
    • NativePasscodeValidationEnabled — включает и выключает режим валидации нативных данных (pickle) для Passcode. Возможные значения: "1" и "0".
    • NativePasscodeValidationSecret — секрет, который передается утилитой валидации. Сгенерируйте его в виде случайного набора латинских букв и цифр длиной от 1 до 30 символов без использования специальных символов. Этот секрет нужен для дополнительной защиты режима валидации Passcode.
    • NativePasscodeValidationCoreApiUrl — URL-адрес компонента Core Server версии Access Manager 8.2.x.
Пример
{
"KeyName": "HKEY_LOCAL_MACHINE\\SOFTWARE\\Policies\\Indeed-Id\\BSPs\\Passcode",
"ValueName": "LogPasscodeDeserializationError",
"StringValue": "1"
},
{
"KeyName": "HKEY_LOCAL_MACHINE\\SOFTWARE\\Policies\\Indeed-Id\\BSPs\\Passcode",
"ValueName": "LogPasscodeEncryptionPublicKey",
"StringValue": "<RSAKeyValue><Modulus>ySDCRwBj5NbWGtZ8YgNbWzjTZfFB9UeSXAKHz2qwk4Q/iJJJ5FYB622s5MAZH5BI7s+npm272w98dXCtOn3rYJEEI10p03coWHfFj2SjP2RnXnSnWvgZhWoNXtGPABmYKSGDBiXOvQaFcyVY+8DDYxh49ZkAASelPGqMTLaLO6mX4SPjA81ZynnQ81QR2yiqPV0m8V2naYHxgWI0RwxctA7mLjIUbTbnjzjSk5BCLc2LxoqP9r9nUIqn4k09zLt43CcmhmbfszmCN3uwdY30jPEhHpcumEFMhM2YBGaUaIuUfx2DNB5A129/LRcYzRBppnYjhqhHZPv85H8oCMGzRQ==</Modulus><Exponent>AQAB</Exponent></RSAKeyValue>"
},
{
"KeyName": "HKEY_LOCAL_MACHINE\\SOFTWARE\\Policies\\Indeed-Id\\BSPs\\Passcode",
"ValueName": "NativePasscodeValidationEnabled",
"StringValue": "1"
},
{
"KeyName": "HKEY_LOCAL_MACHINE\\SOFTWARE\\Policies\\Indeed-Id\\BSPs\\Passcode",
"ValueName": "NativePasscodeValidationSecret",
"StringValue": "somesecretindid"
},
{
"KeyName": "HKEY_LOCAL_MACHINE\\SOFTWARE\\Policies\\Indeed-Id\\BSPs\\Passcode",
"ValueName": "NativePasscodeValidationCoreApiUrl",
"StringValue": "http(s)://app8.ind.my/am/core"
}

Запуск утилиты валидации Passcode

Чтобы выполнить валидацию Passcode, необходимо на стороне Access Manager 8.2.x открыть терминал и запустить утилиту валидации AccessManager.Tools.Passcode.Services.Console.exe со следующими командами и параметрами.

Шаг 1. export-users — определяет список пользователей, для которых требуется валидация Passcode.

Шаг 2. validate-users-passcode — производит валидацию Passcode на основании списка пользователей.

Глобальные параметры

В следующей таблице приведены глобальные параметры, которые можно задать при выполнении команд export-users и validate-users-passcode. У пользователя должно быть достаточно прав для изменения необходимых файлов.

  • --server-url
  • --url
Обязательный параметр.
URL-адрес Core Server версии Access Manager 9.2.
Пример: http(s)://access-manager-server-url/am/core.
  • --client-certificate
  • --certificate
  • --cert
Отпечаток клиентского сертификата.
Если параметр не задан, используется встроенный сертификат.
Пример: "client-certificate-thumbprint".
  • --client-certificate-location
  • --certificate-location
  • --cert-location
Расположение хранилища клиентских сертификатов. Значение по умолчанию: CurrentUser.
  • --log-level
  • --log
Уровень логирования.
Возможные значения: Trace, Debug, Info (по умолчанию), Warn, Error, Fatal, Off.

Экспорт пользователей

Чтобы выполнить экспорт пользователей, для которых необходимо выполнить валидацию, запустите утилиту AccessManager.Tools.Passcode.Services.Console.exe с командой export-users и необходимыми параметрами. Все параметры приведены в следующей таблице. Также можно добавить любые глобальные параметры.

Примечание

Список пользователей формируется на основе привязанных к ним лицензий для указанных приложений (параметр --application или --app). Можно указать несколько приложений.

Пример команды для экспорта пользователей

AccessManager.Tools.Passcode.Services.Console.exe export-users --out c:\path\to\file.txt --overwrite true --app "Windows Logon" --u domain\\globaladmin --limit 10000 --url http://<AM_CORE_URL>/am/core --log Trace

Параметры для команды export-users

  • --output
  • --out
  • --o
Обязательный параметр.
Имя файла, в который будет записан результат экспорта.
Можно указать полный путь файла, относительный путь файла или имя файла. Имя файла можно указать без расширения.
  • --allow-overwrite-output
  • --allow-overwrite
  • --overwrite
Позволяет перезаписывать файл. Значение по умолчанию false.
  • --application
  • --app
Обязательный параметр.
Приложение, на основе которого осуществляется выгрузка.
Можно указать несколько приложений, например --app "Windows Logon" --app "Enterprise SSO".
  • --user
  • --u
Логин глобального администратора Access Manager, который осуществляет выгрузку.
Если логин не указан, то в среде Windows будет использоваться аутентификация Windows (если настроена). Если логин указан, то будет запрошен Windows-пароль.
Логин можно указывать в формате PrincipalName (user@domain.local) или SamCompatibleName (domain\user).
  • --limit
Ограничение количества выгружаемых пользователей.
Применяется, если задано значение больше нуля.
Значение по умолчанию 0 (безлимитно).

Валидация Passcode

Чтобы начать валидацию Passcode на основе списка экспортированных пользователей, запустите утилиту с командой validate-users-passcode и задайте один из следующих параметров. Также можно добавить любые глобальные параметры.

Пример команды для валидации Passcode

AccessManager.Tools.Passcode.Services.Console.exe validate-users-passcode --from c:\path\to\export.txt --url http://<AM_CORE_URL>/am/core --log Trace

Параметры для команды validate-users-passcode

  • --import-location
  • --from
Путь, по которому находится файл с ранее экспортированными пользователями.
Файл можно редактировать.

После запуска валидации запрашивается значение параметра NativePasscodeValidationSecret, которое вы задали ранее в файле server-registry.json на стороне Access Manager 9.2.

При успешной валидации Passcode на стороне Access Manager 8.2.x в Log Server записываются события об успешной аутентификации по Passcode, а на стороне Access Manager 9.2 записываются ошибки входа.

Сбор логов

На стороне Access Manager 9.2 результат валидации хранится в файле NativePasscodeValidator.<guid>.txt, который находится в логах компонента Core Server. При наличии ошибок в файле NativePasscodeValidator.<guid>.txt обратитесь в службу технической поддержки support@indeed-id.com.

Пример ошибки
2025-02-26 16:18:46.7999|0HNAM9VAJ2LCI:00000002|0|ERROR|,4e68816e-e33b-4281-8719-4c0b774b4c53,ActiveDirectory_d5d11f1b-a87f-4ca0-bab1-4c3bcf5743b0,unknown type: System.Byte[],error_pickle_parsing,Error message: Pickle can't be parsed: unmatched: range N0(0, 44), @0, 1!=3,  hr -2147024883,...
Пример валидации без ошибок
2025-02-28 09:50:28.5360|0HNANOJULLERO:00000002|0|ERROR|,188fef22-eb79-4105-a2e1-4fb9b3c19471,a406f_186dc38a-403f-4054-9aca-731f3216d6f0,string_passcode,skipped,, 
2025-02-28 09:50:28.9423|0HNANOJULLERO:00000002|0|ERROR|,188fef22-eb79-4105-a2e1-4fb9b3c19471,a406f_186dc38a-403f-4054-9aca-731f3216d6f0,bin_sha1_passcode,success,(null),(null)
2025-02-28 09:50:28.9423|0HNANOJULLERO:00000002|0|ERROR|,188fef22-eb79-4105-a2e1-4fb9b3c19471,a406f_186dc38a-403f-4054-9aca-731f3216d6f0,string_passcode,skipped,,
2025-02-28 09:50:29.2444|0HNANOJULLERO:00000002|0|ERROR|,188fef22-eb79-4105-a2e1-4fb9b3c19471,a406f_186dc38a-403f-4054-9aca-731f3216d6f0,bin_passcode,success,(null),(null)
2025-02-28 09:50:29.8941|0HNANOJULLERT:00000002|0|ERROR|,188fef22-eb79-4105-a2e1-4fb9b3c19471,a406f_f688dd25-349f-42c5-afd5-9f2e50b15f0f,bin_passcode,success,(null),(null)