Indeed SAML IdP аутентификация в Cisco ASA + Cisco AnyConnect
Автор Maksim Efanov, Last modified by Mariya Vorozhba на 01 марта 2024 10:20 PM

Предусловия

  1. Установленный и настроенный Indeed AM Saml IdP: https://confluence.indeed-id.com/display/IAM8D/Indeed+AM+SAML+IDP
  2. Установленный, с базовыми настройками, Cisco ASA.

    Карта сети для примера настройки

    Описание:

    DC - контроллер домена iid.local, DNS сервер домена, Indeed SAML IdP.


    Подготовка сертификатов для работы

    Необходимые сертификаты:

    1. Самоподписанный сертификат SAML idP с закрытым ключом, который создавался при установке SAML idP.
    2. Сертификат CiscoASA с закрытым ключом.
    3. Сертификат CiscoASA без закрытого ключа.
    4. Сертификат центра сертификации без закрытого ключа.

    Для создания сертификатов на данном стенде использовался доменный центр сертификации MS CA.

    1. Создадим шаблон сертификата для CiscoASA (шаблон веб-сервера):


      Укажем удобное для нас имя шаблона, в данном случае “IID-web”:

      Укажем версию Windows Server’a, на котором стоит Indeed SAML idP:



      Укажем, кто может создать запрос на выдачу сертификата:

      Увеличим размер ключа до “4096”:

      Настройка шаблона закончена, жмем “ОК”.
      Включим созданный шаблон. (Правая кнопка мыши по “Шаблоны сертификата” -> “Создать” -> “Выдаваемый шаблон сертификата”).
      Выбираем созданный шаблон “IID-web”



      Теперь он доступен для запроса:

    2. Создадим сертификат для CiscoASA.






    3. Экспортируем созданный сертификат CiscoASA:



      Обязательно указываем пароль сертификата (не менее 8 символов), иначе не получится импортировать его на CiscoASA.



    4. Аналогично экспортируем самоподписанный SAML idP сертификат:



    5. Выгружаем корневой сертификат без закрытого ключа:





    6. Аналогично экспортируем сертификат CiscoASA без закрытого ключа.

    Итого, у нас имеется следующий комплект сертификатов:

    Настройка Indeed SAML idP

    1. Переносим файл сертификата без закрытого ключа (ciscoasa.cer) для CiscoASA на сервер Indeed SAML в папку C:\inetpub\wwwroot\am\idp\ciscoasa\ciscoasa.cer
    2. Добавляем права на чтение для учетных записей IUSR и IIS_IUSRS



    3. Редактируем файл C:\inetpub\wwwroot\am\idp\saml.config. Добавляем поле, как показано на рисунке:

      <PartnerServiceProvider Name="https://ciscoasa.iid.local/saml/sp/metadata/iid_saml"
      AssertionConsumerServiceUrl="https://ciscoasa.iid.local/+CSCOE+/saml/sp/acs?tgname=iid_saml"
                                WantAuthnRequestSigned="true"
                                SignSAMLResponse="false"
                                SignAssertion="true"
                                EncryptAssertion="false"
        CertificateFile="C:\inetpub\wwwroot\am\idp\ciscoasa\ciscoasa.cer"/>

      Name - IdentityID полученное от CiscoASA;
      AssertionConsumerServiceUrl - ссылка на CiscoASA, куда отправится ответ от Indeed SAML;
      WantAuthnRequestSigned - проверка подписи запроса от CiscoASA в сторону Indeed SAML;
      SignAssertion - проверка подписи ответа от Indeed SAML в сторону CiscoASA;
      CertificateFile - указание на сертификат CiscoASA для проверки подписи.

      Данные для этих параметров получены по ссылке с метаданными CiscoASA https://ciscoasa.iid.local/saml/sp/metadata/iid_saml, которая станет активна после настройки политики iid_saml.
    4. Добавим информацию о сертификате, которым будем подписывать ответ от Indeed SAML в сторону CiscoASA (для версий ниже 8.0.5, для версий 8.0.5 и выше отпечаток требуется указать только в Web.config):
       

      CertificateThumbprint="EA1BD873EF2DDF45994E91AC907309AE7CAB1B50" - отпечаток сертификата, используемого для SAML. Используется для подписи ответа. Получить его можно с помощью команды PowerShell: Get-ChildItem -Path Cert:\LocalMachine\My

       

      1. Укажем разрешение на доступ к закрытому ключу сертификата , для учетных записей IIS:




        1. Редактируем файл C:\inetpub\wwwroot\am\idp\Web.config

          Добавляем строки:
          <amIdentityProviderSettings CertificateThumbprint="7FE9EA1CA7EED0C33DF23356E13300AA94566497" />
          <amAuthFormat id="https://ciscoasa.iid.local/saml/sp/metadata/iid_saml" inLoginFormat="Name" outLoginFormat="PrincipalName" />

          CertificateThumbprint="EA1BD873EF2DDF45994E91AC907309AE7CAB1B50" - отпечаток сертификата, используемого для SAML idP. Используется для подписи ответа.
          Получить его можно с помощью команды PowerShell: Get-ChildItem -Path Cert:\LocalMachine\My
          id
          - PartnerServiceProvider Name, из файла saml.config;
          inLoginFormat - формат логина для ввода при аутентификации (допускается UPN формат и <domain>\<login>);
          outLoginFormat - формат логина для ответа в сторону CiscoASA (указан UPN).

        Настройка CiscoASA

        1. Импорт сертификатов на Cisco ASA. На Cisco ASA требуется установить корневой сертификат, и подписанные им сертификаты для CiscoASA и для SAML idP.
          1. Устанавливаем корневой сертификат:


          2. Устанавливаем сертификаты SAML и CiscoASA:



        2. Синхронизация времени на CiscoASA и Windows Server с установленным Indeed SAML idP. При погрешности во времени, подпись ответа от Indeed до CiscoASA будет не действительна.

          Укажем сервер синхронизации времени:


          IP-адрес сервера синхронизации времени можно найти например здесь: https://tf.nist.gov/tf-cgi/servers.cgi

          После применения настроек, требуется перезагрузить CiscoASA. Этот же сервер времени нужно прописать на Windows Server с SAML.

        3. Укажите сертификат CiscoASA для SSL подключения:



        4. Указываем разрешения интерфейсам, на которые будем подключаться, на использование SSL и IPSec:


        5. Создаем отдельный профиль:


          1. Для аутентификации учетных записей из домена, требуется настройка LDAP подключения:



          2. SAML профиль:



            Указываем IDP Entity ID:
            urn:indeedid:saml_idp

            Sign In URL - ссылка на SAML сервис Indeed
            saml.iid.local/am/idpAccount/SsoService

            Sign OutURL - ссылка на страницу выхода SAML Indeed
            saml.iid.local/am/idp/Account/Logout

            Base URL - DNS имя ciscoasa
            ciscoasa.iid.local

            Identity Provider Certificate - сертификат Indeed SAML idP, импортированный вначале
            Service Provider Certificate - сертификат CiscoASA, импортированный вначале
            Request Signature - подпись запроса в сторону Indeed SAML iDP, по алгоритму rsa-sha1
            Request Timeout - допустимое время задержки между запросом и ответом, лучше - больше

          3. Пул адресов для VPN клиентов:


          4. Добавляем отдельную политику группы:



          5. Параметры аутентификации:

            Указываем, что искать пользователя будем по LDAP подключению к домену:


            Укажем, что проверяем по UPN имени:


            Проброс доменных групп на CiscoASA:

          6. Ассоциации для быстрого доступа к способу аутентификации. По умолчанию должен был создаться Alias iid_saml. Если нет - добавим в ручную.

            Далее добавим Group URLs.

            При вводе ссылки в браузере или в Cisco Anyconnect, будет пропущен выбор способа аутентификации, и сразу перейдет на Indeed SAML idP.

            Нажав на ОК, применяем политику и сохраняем конфигурацию. Если ошибок не возникло, то метаданные Service Provider’a CiscoASA доступны по ссылке: https://ciscoasa.iid.local/saml/sp/metadata/iid_saml, где “iid_saml” - alias профиля для saml подключения.

        Подготовка работы клиентских устройств для Cisco AnyConnect

        1. Установим корневой сертификат ca.cer на рабочую станцию, в доверенные корневые центры сертификации:


        2. Переходим по ссылке: https://ciscoasa.iid.local/


          Если перейти по ссылке https://ciscoasa.iid.local/saml, то сразу перенаправит на страницу аутентификации Indeed SAML idP:





          Подключаемся через Cisco AnyConnect:


        (1 голос(а))
        Эта статья полезна
        Эта статья бесполезна

        Комментарии (0)
        Добавить новый комментарий
         
         
        Полное имя:
        Email:
        Комментарии: