На этой странице вы найдете информацию об установке и настройке модуля Indeed AM SAML IDP, который входит в состав дистрибутива Indeed AM Access Manager 8.1.4 и ниже.

Информация

По умолчанию Indeed AM SAML IDP настроен на использование Windows аутентификации, для внедоменных сценариев требуется включить анонимную аутентификацию в IIS для idp.


Информация

Файлы для Indeed AM SAML IDP расположены: indeed AM <номер версии>\Indeed AM IDP \<номер версии>\

  • IndeedAM.IDP-<номер версии>.x64.ru-ru.msi - Пакет для установки indeed SAML IDP с общим именем "idp".
  • Misc\IISScripts\Indeed.SAML.IIS.Install.MSServer.ps1 - Скрипт для установки необходимых компонентов IIS сервера для Windows Server 2012.

Информация

Путь к Identity Provider в браузере: http(s)://<днс_сервера>/am/idp
Путь к Identity Provider в IIS: <имя_машины>\сайты\Default Web Site\am\idp


Установка

  1. Выполните установку Indeed AM SAML IDP через запуск соответствующего пакета из дистрибутива.
  2. По завершению требуется сгенерировать новый IDP сертификат.  В хранилище сертификатов (Local Machine -> Personal) будет сгенерирован и установлен в новый самоподписанный сертификат. Сертификат используется для шифрования данных, передаваемых между сервером аутентификации и клиентским приложением.

    Информация

    Данный сертификат не предназначен для организации SSL-соединения. 

    Если данный сертификат был сгенерирован ранее, то необходимо убрать флажок.

  3. Добавить привязку https в настройках Default Web Site в IIS Manager.

    Информация

    Indeed AM Identity Provider является Web приложением, которое работает на базе IIS, в процессе установки для него по умолчанию включается обязательно требование SSL в настройках, что в свою очередь требует включенной привязки https.

    Если вы не намерены использовать протокол https, необходимо отключить требование SSL в настройках IIS для SAML IDP.

    Также в этом случае необходимо в конфигурационном файле UC (C:\inetpub\wwwroot\am\idp\Web.config) изменить значение параметра requireSSL на false:

    Пример
    <httpCookies httpOnlyCookies="true" requireSSL="false" />


    1. Запустите IIS Manager и раскройте пункт Сайты (Sites).
    2. Выберите сайт Default Web Site и нажмите Привязки (Bindings) в разделе Действия (Actions).
    3. Нажмите Добавить (Add):
      1. Тип (Type) - https.
      2. Порт (Port) - 443.
      3. Выберите SSL-сертификат (SSL Certificate).
    4. Сохраните привязку.


Редактирование конфигурационного файла

  1. Откройте конфигурационный файл Identity Provider Web.config (C:\inetpub\wwwroot\am\idp\Web.config).
  2. Укажите URL для подключения к серверу Indeed для параметра Url в тэге amAuthServer.

    Информация

    При использовании https соединения требуется выполнить установку клиентского сертификата на каждый сервер Indeed AM.

    1. Параметр Url - url адрес сервера Indeed в формате http(s)://полное_dns_имя_сервера/am/core/

      Информация

      Для игнорирования ошибок сертификата сервера необходимо изменить параметр "isIgnoreCertErrors" на значение "true" в файле "applicationSettings.config" ( am\idp\Config ).

      Пример
      <amAuthServer Url="https://amserv.indeed-id.local/am/core/"/>
  3. Укажите URL для подключения к Indeed AM Log Server в формате http(s)://полное_dns_имя_сервера/ls/api для параметра Url в тэге logServer. 

    Пример
    <logServer Url="https://logserver.indeed-id.local/ls/api/" CertificateThumbprint="" CertificateFilePath="" CertificateFilePassword=""/>
  4. Укажите отпечаток сертификата IDP, который был сгенерирован при установке, в теге "CertificateThumbprint" параметра "amIdentityProviderSettings". 

    Информация

    Сертификат устанавливается в хранилище сертификатов (Local Machine -> Personal) с общим именем "idp".

    Получить отпечаток можно с помощью Power Shell запроса:

    Get-Childitem Cert:\LocalMachine\My\ | Where-Object {$_.Subject -eq "CN=idp"}
  5. В теге amAuthMethods укажите ID провайдера в формате:

    1. Если для входа используется 1 провайдер.

      Пример
      <amAuthMethod id="SMSOTP"> <amAuthProviders> <amAuthProvider id="ebb6f3fa-a400-45f4-853a-d517d89ac2a3" /> </amAuthProviders> </amAuthMethod>
    2. Если для входа используется "цепочка" из провайдеров.

      Информация

      Если используется цепочка с Windows Password + провайдер:

      • Windows Password был введен верно, произвольный провайдер неверно - в "История входов" пользователя будет отображаться успешный вход в Indeed AM SAML IDP с помощью Windows Password. 
      • Windows Password был введен верно, произвольный провайдер верно - в "История входов" пользователя будет отображаться успешный вход  с помощью провайдера пользователя.


      Пример
      <amAuthMethod id="HOTP_Passcode_SMS"> 
      <amAuthProviders> 
      <amAuthProvider id="AD3FBA95-AE99-4773-93A3-6530A29C7556" /> 
      <amAuthProvider id="F696F05D-5466-42b4-BF52-21BEE1CB9529" /> 
      <amAuthProvider id="ebb6f3fa-a400-45f4-853a-d517d89ac2a3" /> 
      </amAuthProviders> 
      </amAuthMethod>
      • Параметр id тега amAuthMethod - Произвольное уникальное значение.
      • Параметр id тега amAuthProvider - id используемого провайдера.

        Параметр id тега amAuthProvider может иметь разные ID провайдеров:

        {EBB6F3FA-A400-45F4-853A-D517D89AC2A3} - SMS OTP

        {093F612B-727E-44E7-9C95-095F07CBB94B} - EMAIL OTP

        {F696F05D-5466-42b4-BF52-21BEE1CB9529} - Passcode

        {0FA7FDB4-3652-4B55-B0C0-469A1E9D31F0} - Software OTP

        {AD3FBA95-AE99-4773-93A3-6530A29C7556}HOTP Provider

        {CEB3FEAF-86ED-4A5A-BD3F-6A7B6E60CA05} - TOTP Provider

        {DEEF0CB8-AD2F-4B89-964A-B6C7ECA80C68} - AirKeyProvider

        {CF189AF5-01C5-469D-A859-A8F2F41ED153} - Windows Password

        {CA4645CC-5896-485E-A6CA-011FCC20DF1D} - Telegram OTP

Аутентификации по имени пользователя без указания домена

В Indeed AM SAML IDP существует возможность выбирать домен из выпадающего списка.

Для включения настройки необходимо выполнить следующее:

  1. Откройте конфигурационный файл SAML IDP Web.config (C:\inetpub\wwwroot\am\idp\Web.config).

  2. В теге "amAuthDomains", добавьте теги "amAuthDomain" и для параметра "name", задайте значения необходимых доменов.

    Пример
    <amAuthSet>
        <amAuthDomains>
    	  <amAuthDomain name="indeed.local"/>
          <amAuthDomain name="indeed-id.local"/>
          <amAuthDomain name="corp.local"/>
          <amAuthDomain name="dom.local"/>
        </amAuthDomains>
    ...
    </amAuthSet>
  3. По умолчанию выбирается домен, указанный первым в списке.

Включение защиты от перебора

Сервер Indeed AM поддерживает включение защиты от подбора УЗ пользователей для компонента Indeed AM SAML IDP. По умолчанию данная настройка отключена.

При включенной настройке злоумышленник не сможет определить валидные УЗ в домене по возвращаемой от компонента ошибке. 

Для включения настройки необходимо выполнить следующее: 

  1. Откройте конфигурационный файл сервера Indeed AM: C:\inetpub\wwwroot\am\core\Web.config
  2. В теге "appSettings", для параметра "bruteForceProtectionApps", задайте значение "SAML Identity Provider". 

    Пример
    <appSettings>
        <add key="bruteForceProtectionApps" value="SAML Identity Provider" />
        ...
    </appSettings>
  3. Сохраните изменения и перезапустите IIS сервер. 


Интеграция с приложениями 

  1. Identity Provider Login URL - http(s)://<полное_DNS_имя_сервера_Indeed_SAML>/am/idp/Account/SsoService
  2. Identity Provider Logout URL - http(s)://<полное_DNS_имя_сервера_Indeed_SAML>/am/idp/Account/Logout
  3. Identity Provider Name - urn:indeedid:saml_idp

Описание параметров конфигурационного файла saml.config:

  • CertificateThumbprint - Указывается отпечаток сертификата SP, загруженный в личное хранилище компьютера, где развернут Indeed AM Identity Provider
    • CertificateFile - Вместо отпечатка можно использовать путь к файлу сертификата. 
  • WantAuthnRequestSigned - Параметр указывает должен ли запрос аутентификации SAML быть подписанным. Значение по умолчанию: false.
  • SignSAMLResponse - Параметр указывает должны ли быть подписаны ответы SAML, отправляемые SP. Значение по умолчанию: false.
  • SignAssertion - Параметр указывает должны ли утверждения SAML быть подписаны. Значение по умолчанию: false.
  • EncryptAssertion - Параметр указывает должны ли утверждения SAML шифроваться. Значение по умолчанию: false.

Пример работы расширения

  1. Для аутентификации в SAML откройте URL http(s)://полное_dns_имя_сервера/am/idp/
  2. В появившемся окне аутентификации SAML нажмите "Back" для выбора способа аутентификации, по умолчанию используется последний используемый способ.

    Информация

    Если доступна "Проверка подлинности Windows" и выключена "Анонимная проверка подлинности" в методах аутентификации IIS, то логин пользователя подставляется автоматически без возможности изменить, и пробрасывается доменный пароль пользователя.

    Если используется "Анонимная проверка подлинности" и выключена "Проверка подлинности Windows", то пользователь может изменить логин и потребуется ввод доменного пароля.


  3. Выберите способ аутентификации и нажмите "Select". 

    Информация

    Если у пользователя нет обученного аутентификатора, то выберите "Windows Password".

Введите пароль и нажмите "Sing in". Если ввод данных был успешный, то произойдет вход.

Отключение отображения информации о платформе и версии

Для того, чтобы не добавлять заголовки, содержащие информацию о платформе и версии, на которой разрабатывалось приложение, в response, нужно:

    1. Открыть конфигурационный файл SAML IDP C:\inetpub\wwwroot\am\idp\Web.config;
    2. В зависимости от версии IIS:
      1. Для IIS 10 убрать комментарии со следующих строк:

        Пример
         <security>
              <requestFiltering removeServerHeader="true" />
           </security>
      2. IIS старше 10: 
        • Установить URL Rewrite
        • В секцию <system.webServer> добавить:

          Пример
          <rewrite>
            <outboundRules>
              <rule name="replace server header" patternSyntax="Wildcard" lockItem="false">
                <match serverVariable="RESPONSE_SERVER" pattern="*" />
                <action type="Rewrite" value="MyServer" />
              </rule>
            </outboundRules>
          </rewrite>

Примеры внедрения расширения

  1. Настройка Keycloak для аутентификации через Indeed AM SAML IDP.


 


  • No labels