Indeed Identity Provider
Модуль Indeed Identity Provider (ранее Indeed AM SAML IDP) используется для организации многофакторной аутентификации и сквозного доступа в веб-приложения.
Начиная с версии Indeed AM Access Manager 8.1.5 модуль Indeed Identity Provider поддерживает следующие протоколы:
Если вы пользуетесь Indeed AM Access Manager 8.1.4 и ниже, необходимую информацию об установке и настройке модуля можно найти в документации Indeed Access Manager 8.1.
Identity Provider избавляет пользователя от необходимости запоминать множество учетных данных: для доступа во все интегрированные системы требуется только один комплект учетных данных. Аутентификация выполняется централизованно на стороне Identity Provider.
В Identity Provider вы можете выполнить аутентификацию по следующим аутентификаторам:
- мобильное приложение Indeed Key (в режиме отправки одноразовых паролей и push-уведомлений с подтверждением входа),
- Telegram Provider (в режиме отправки одноразовых паролей и push-уведомлений с подтверждением входа),
- Email OTP,
- SMS OTP,
- Storage SMS OTP,
- Secured TOTP,
- Software OTP,
- Windows Password,
- Passcode,
- Hardware TOTP,
- Hardware HOTP.
Предварительная настройка
Перед установкой Identity Provider:
- Установите на сервере .NET 6.
Для этого запустите утилиту dotnet-hosting-6.0.10-win.exe, расположенную по пути Indeed AM <номер версии>/Indeed AM Idp.
Корректная работа Identity Provider гарантируется только при использовании .NET 6.
- Установите необходимые компоненты Internet Information Services.
Для этого запустите скрипт Indeed.SAML.IIS.Install.MSSserver.ps1 из Indeed AM <номер версии>/Misc/IISScripts в PowerShell от имени администратора.
Если настройки безопасности не позволяют запустить скрипт, откройте Indeed.SAML.IIS.Install.MSSserver.ps1 с помощью блокнота, скопируйте все команды и выполните их в PowerShell от имени администратора.
По умолчанию Identity Provider использует аутентификацию Windows. Для внедоменных сценариев включите анонимную аутентификацию.
Включить анонимную аутентификацию
- В Диспетчере служб IIS в левом меню выберите Indeed AM → сайты → Default Web Site → am → idp и нажмите Проверка подлинности.
- Включите опцию Анонимная проверка подлинности, остальные опции оставьте выключенными.
Установить и настроить Identity Provider
Чтобы установить и настроить Identity Provider:
- Запустите IndeedAM.IDP-v8.2.2.x64.ru-ru.msi, расположенный по пути Indeed AM <номер версии>/Indeed AM Idp.
По умолчанию после установки пакета создается и устанавливается новый сертификат сервера IDP. Сертификат шифрует данные, передаваемые между Core Server и конечными приложениями, например Management Console.
Сертификат не предназначен для организации соединения по протоколу SSL.
Если сертификат был сгенерирован ранее, в окне мастера установки уберите флажок Создать и установить новый сертификат IDP сервера.
Добавьте привязку в настройках IIS:
- В Диспетчере служб IIS в левом меню выберите Indeed AM → сайты → Default Web Site
- Нажмите Привязки в разделе Действия в правом меню.
- Нажмите Добавить и в открывшемся окне задайте следующие параметры:
- В поле Тип выберите https.
- В поле Порт укажите 443.
- В поле SSL-сертификат выберите сертификат веб-сервера.
- Нажмите ОК, чтобы сохранить привязку.
Identity Provider — это веб-приложение, которое работает на базе IIS. По требованиям безопасности Identity Provider работает только по протоколу HTTPS. Не меняйте протокол, это снижает безопасность соединения.
Если вы планируете использовать соединение по протоколу HTTP, отредактируйте файл Web.config в папке C:\inetpub\wwwroot\am\idp.
Изменить файл Web.config
В теге aspNetCore
добавьте следующие строки:
<environmentVariables>
<environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" />
</environmentVariables>
Результат:
<aspNetCore processPath="dotnet" arguments=".\AM.IDP.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess">
<environmentVariables>
<environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" />
</environmentVariables>
</aspNetCore>
Редактировать конфигурационный файл
Чтобы настроить модуль Identity Provider:
Откройте конфигурационный файл app-settings.json, расположенный по пути C:\inetpub\wwwroot\am\idp.
В разделе
AuthenticationServer
в параметреUrl
укажите адрес Core Server в формате http(s)://полное_dns_имя_сервера/am/core/."AuthenticationServer": {
"Url": "AUTH_SERVER_URL",
"IsIgnoreCertErrors": false
}Пример адреса сервераhttps://server.test.local/am/core/
Важно!Для корректной работы рекомендуем установить клиентский сертификат на каждый Core Server.
Чтобы ошибки сертификата сервера игнорировались, измените значение параметра
IsIgnoreCertErrors
на значение true.В разделе
Server
в параметреUrl
укажите адрес для подключения к Indeed AM Log Server в формате http(s)://полное_dns_имя_сервера/ls/api."Server": {
"Url": "LOG_SERVER_URL"
}Пример адреса сервера Indeed AM Log Serverhttps://server.test.local/ls/api/
В разделе
LocalIdentityProviderConfiguration
задайте значения следующих параметров:
В параметре
SingleSignOnServiceUrl
укажите адрес Identity Provider в формате http(s)://полное_dns_имя_сервера/am/idp/Account/SsoService."LocalIdentityProviderConfiguration": {
"Name": "urn:indeedid:saml_idp",
"SingleSignOnServiceUrl": "IDENTITY_PROVIDER_URL/Account/SsoService"Пример адреса сервера SSOhttps://server.test.local/am/idp/Account/SsoService
В параметре
Thumbprint
укажите отпечаток сертификата Identity Provider, который был сгенерирован при установке."LocalIdentityProviderConfiguration": {
"LocalCertificates": [
{
"Thumbprint": ""
}
]
}Чтобы получить отпечаток сертификата, используйте запрос PowerShell:Get-Childitem Cert:\LocalMachine\My\ | Where-Object {$_.Subject -eq "CN=idp"}
В разделе
AuthenticationMethods
удалите ненужные строки и добавьте идентификаторы провайдеров, которые вы планируете использовать, в следующем формате:- В параметре
Name
укажите произвольное уникальное значение. - В параметре
Providers
укажите идентификатор используемого провайдера.
- В параметре
Доступные идентификаторы для Identity Provider
- SMS OTP {EBB6F3FA-A400-45F4-853A-D517D89AC2A3}
- Storage SMS OTP {3F2C1156-B5AF-4643-BFCB-9816012F3F34}
- Email OTP {093F612B-727E-44E7-9C95-095F07CBB94B}
- Passcode {F696F05D-5466-42b4-BF52-21BEE1CB9529}
- Software OTP {0FA7FDB4-3652-4B55-B0C0-469A1E9D31F0}
- Secured TOTP {F15FD7EC-19EA-4384-846E-A2D0BE149FA2}
- HOTP Provider {AD3FBA95-AE99-4773-93A3-6530A29C7556}
- TOTP Provider {CEB3FEAF-86ED-4A5A-BD3F-6A7B6E60CA05}
- Indeed Key {DEEF0CB8-AD2F-4B89-964A-B6C7ECA80C68}
- Windows Password {CF189AF5-01C5-469D-A859-A8F2F41ED153}
- Telegram Provider {CA4645CC-5896-485E-A6CA-011FCC20DF1D}
"AuthenticationMethods": [
{
"Name": "Passcode",
"Providers": [
"F696F05D-5466-42b4-BF52-21BEE1CB9529"
]
}
"AuthenticationMethods": [
{
"Name": "HOTP_Passcode",
"Providers": [
"AD3FBA95-AE99-4773-93A3-6530A29C7556",
"F696F05D-5466-42b4-BF52-21BEE1CB9529"
]
}
- В разделе
SelfService
задайте параметруAllowWinPwdIfAuthMethodsAreNotAvailable
одно из значений:
Если задать значение
true
, тогда в User Console можно будет войти через Identity Provider, используя Windows Password, даже если у пользователя нет аутентификатора. Также это значение позволяет войти в User Console по любому аутентификатору, даже если он не указан в разделеAuthenticationMethods
.Если задать значение
false
, то авторизация по Windows Password будет недоступна, если этот способ аутентификации отсутствует в разделеAuthenticationMethods
. Войти в User Console можно будет только с помощью указанного в этом разделе аутентификатора.
Если вы одновременно используете аутентификацию по Windows Password и по провайдеру, журнал событий отображает следующее:
- Если Windows Password был введен верно, а провайдер неверно, то в событиях пользователя регистрируется успешный вход в Identity Provider с помощью Windows Password.
- Если и Windows Password, и провайдер введены верно, то в событиях пользователя регистрируется успешный вход с помощью провайдера.
В разделе
OIDC
в параметреCertificateThumbprint
укажите отпечаток сертификата Identity Provider, который был сгенерирован при установке.Чтобы получить отпечаток сертификата, используйте запрос PowerShell:Get-Childitem Cert:\LocalMachine\My\ | Where-Object {$_.Subject -eq "CN=idp"}
Сохраните конфигурационный файл и перезапустите IIS.