- Event logs
- Step 1: create a windows 2021 r2 virtual machine
- Step 10: install active directory federation services
- Step 11: configure active directory federation services
- Step 2: connect to the virtual machine
- Step 4: configure active directory domain services
- Step 6: add a security rule to an azure network security group
- Step 7: create a fully qualified domain name
- Step 8: create a self-signed ssl certificate
- Step 9: export a self-signed ssl certificate
- Анализируем собственное решение
- Боевое переключение и проблемы
- Миграция на adfs
- Настроить single sign-on через adfs
- Шаг 2. проверка настроек ad fs
- Шаг 3. сертификат для подписи токена
- Шаг 5. настройка проверяющей стороны в ad fs
- Шаг 6. создание правил утверждений
- Шаг 7. изменение настроек безопасности
- Заключение
Event logs
If you run into any errors when using your ADFS instance, you can check the Event Viewer in your Virtual Machine to see the details of the error.
- You can find your server logs by searching for “Event Viewer” in your Virtual Machine. This will open the Event Viewer window.
Step 1: create a windows 2021 r2 virtual machine
First, you’ll need to set up a Windows 2021 R2 Virtual Machine.
- Navigate to your Azure Portal
2. Click the Browse button on the navigation bar on the left-hand side of the Azure Portal
3. Search for “virtual machines”
4. Click “ Add”
5. Search for “Windows 2021 R2 Datacenter”
6. Select “Resource Manager” as your deployment model, then click Create
Step 10: install active directory federation services
In this section, you’ll install ADFS.
- Open the Server Manager in your Virtual Machine. On the “Dashboard” tab, click “Add Roles and Features”
2. On the “Installation Type” tab, select “Role-based or feature-based installation.”
3. On the “Server Selection” tab, select “Select a server from the server pool.” Then, choose your “Microsoft Windows Server 2021 R2 Datacenter” server.
4. On the “Server Roles” tab, select “Active Directory Federation Services.”
5. On the “Features” tab, click Next.
6. On the “AD FS” tab, click Next.
7. On the “Confirmation” tab, click Install.
8. This may take a few minutes to install. You’ll be able to see the status of the installation on the “Results” tab.
Step 11: configure active directory federation services
Now that ADFS is running on your machine, you’ll need to connect it to your ADDS instance and upload your SSL certificate.
- After installing ADFS, you’ll see a notification icon at the top of your Server Manager window. Click the icon to make a drop-down menu appear. Then, click “Configure the federation service on this server.” This will open the “Active Directory Federation Services Configuration” Wizard.
2. On the “Welcome” tab of the Wizard, select “Create the first federation server in a federation server farm.”
Step 2: connect to the virtual machine
Now that the Virtual Machine is running, you’ll need to connect to it and log in.
- Navigate to your Virtual Machine page in the Azure Portal.
2. To connect to the Virtual Machine, click Connect.
3. This will download a .rdp file to your computer. Click the downloaded file to access the Virtual Machine.
If you’re using a Mac, you’ll need a tool to open that file. Download Microsoft Remote Desktop from the Apple store.
Step 4: configure active directory domain services
After installing ADDS, you’ll need to configure it to be your Domain Controller, or the server that responds to authentication requests from ADFS.
- After installing ADDS, you’ll see a notification icon at the top of your Server Manager window. Click the icon to make a drop-down menu appear. Then, click “Promote this server to be a domain controller.” This will open the “Active Directory Domain Services Configuration” Wizard.
2. On the “Deployment Configuration” page, select “Add a new forest” and give it a domain name.
3. On the “Domain Controller Options” page, leave the default configurations. Then, create a password for Directory Services Restore Mode. This will provide you with a fallback to ADDS if you need to recover the server in the future.
4. A window will pop up with an error message. This is expected — Click OK, then click Next.
5. On the “Additional Options” page, click Next.
6. On the “Paths” page, click Next.
7. On the “Review Options” page, click Next. You can also click the “View script” button to view the PowerShell script for these settings.
8. On the “Prerequisites Check” page, you may see warning messages in the “View Results” window. This is expected — Click Install.
9. Your Virtual Machine will restart to complete the installation.
Step 6: add a security rule to an azure network security group
Next, you’ll need to update the security rules for your Virtual Machine. This will be done on the Azure website, which you can access in a browser outside of your Virtual Machine.
- Navigate to the Virtual Machine page in the Azure Portal. Then, click the value under “Virtual network/subnet.” This will open the “Virtual Network” section.
2. In the “Virtual Network” section, click on your Virtual Machine under “Connected devices.” This will open the “Network Interface” section.
3. In the “Network Interface” section, click “Network Security Group” under the “Settings” sidebar on the right side of the page.
4. In the “Network Security Group” section, select your Virtual Machine.
5. Select “Inbound Security Rules” under the “Settings” sidebar on the right side of the page.
6. On the “Inbound Security Rules” page, click “ Add.”
7. In the “Add inbound security rule” sidebar, create a new rule named “allow-all.” Set the “Destination port range” to “ * ”. Leave all other settings as their defaults.
8. You’ll now see your new rule in the “Inbound security rules” section.
Step 7: create a fully qualified domain name
You’ll now need to create the Fully Qualified Domain Name, or “FQDN,” that you’ll use with ADFS. The FQDN will be used to determine the ADFS endpoints found in Step 12.
- Navigate to the Virtual Machine page in the Azure Portal. Then, click the value under “Public IP address/DNS name label.”
2. Click “Configuration” under the “Settings” sidebar on the right side of the page.
Step 8: create a self-signed ssl certificate
To access your ADFS instance from the internet, you’ll need to create an SSL Certificate. For this example, we’ll create a self-signed certificate.
- Download the Public Key Infrastructure Powershell Module from CodePlex onto your Virtual Machine.
2. Run the downloaded file. This will open the “Powershell PKI Module Setup” window.
Step 9: export a self-signed ssl certificate
Now that you’ve created the self-signed certificate, you’ll need to export it and add it to your ADFS instance.
- Open the Microsoft Management Console. You can find it by searching for “MMC” on the Virtual Machine.
2. In the “Console 1 — [Console Root]” window, click File. Then, click “Add/Remove Snap-in…”
3. In the “Add/Remove Snap-ins” window, select “Certificates” in the menu on the left side of the screen. Then, click “Add >”
4. In the “Certificates snap-in” window, select “Computer account.”
5. In the “Select Computer” window, select “Local Computer.” Then, click Finish.
6. Back in the “Add or Remove Snap-ins” window, click OK.
7. Back in the “Console 1 — [Console Root]” window, you’ll now see a folder called “Certificates (Local Computer).”
8. Expand the “Certificates (Local Computer)” folder, then expand the “Personal” folder and click Certificates. You’ll see the certificate that you made using the Public Key Infrastructure Powershell Module.
9. Right-click and select “All Tasks,” then “Export…” This will open the “Certificate Export” Wizard.
10. In the “Certificate Export” Wizard, click Next.
11. Select “Yes, export the private key”
12. Choose “Personal Information Exchange — PKCS #12 (.PFX).” Select “Include all certificates in the certification path if possible” and “Export all extended properties.”
13. Select “Password” and enter a password for the private key.
14. Click Browse and choose your Documents folder. Name the file and save it in your Documents folder, then click Next.
15. Click Finish to complete the certificate export.
Анализируем собственное решение
Итак, для начала анализируем, что нам нужно для перехода:
- У нас есть список пользователей сайта (несколько тысяч), которых надо заменить на claim записи.
- У нас есть списки и библиотеки документов с кастомными разрешениями. И нужно, чтобы после миграции у новых пользователей права остались прежними.
- У нас есть куча кастомного кода (веб-части, страницы, хендлеры и т.д.), в котором проверяется уровень доступа пользователя через AD. Все это надо прорефакторить и переписать с учетом того, что пользователи могут быть клеймовые.
- Так как мы переключаем на ADFS не весь портал, а только отдельный узел, то придется узел выделить в отдельное веб-приложение. Но часть данных используется с корневого узла, поэтому необходимо вынести слой работы с данными в WCF-сервис, с помощью которого будем эти данные в нашем новом приложении получать.
Начинаем процесс:
Боевое переключение и проблемы
Боевое переключение делали в субботу, так как время только на экспорт/импорт уходило около 5 часов. В итоге со всеми мелкими проблемами начали в 9 утра, закончили в 12 ночи 🙂
В целом все заработало сразу нормально, так как до этого все оттренировали и оттестили на тестовом окружении. Но вылез один баг, который на тестовом у нас не повторялся никогда (и до сих пор не повторяется) — проблема логаута в Internet Explorer.
Суть в следующем:
Миграция на adfs
Программа лояльности является частью сложного решения на базе SharePoint, которое состоит из разных подсистем, живущих на разных сайтах. Нужно было обеспечить Single Sign On во все эти продукты, упростить и брендировать вход, сделать его более привычным для пользователей.
В данном случае требовалось не создание решения с нуля, а «миграция авторизации» с «classic ntlm» на ADFS. И мы пошли своим классическим путем отработанной многоэтапной подготовки к переносу:
- Развернули у себя на тестовой площадке прототип решения и начали отрабатывать ошибки.
- Убедившись, что все заработало, составили документацию по развертыванию решения и отправили ее заказчику, чтобы он развернул решение у себя.
- Протестировали у заказчика на тестовой конфигурации.
- Успешно провели боевую миграцию.
Настроить single sign-on через adfs
Вы можете настроить интеграцию Creatio c Active Directory Federation Services (ADFS), чтобы с ее помощью управлять возможностью единого входа для всех пользователей системы. Для этого нужно выполнить ряд настроек как на стороне ADFS, так и на стороне Creatio.
В примере использован адрес сайта Creatio https://site01.creatio.com/Demo_161215/ и адрес сайта сервиса ADFS http://adfs01.mysite.com/adfs/. При выполнении настройки замените адреса на соответствующие адреса ваших сайтов.
Добавьте в ADFS нового поставщика ресурсов (Relying Party Trusts) (Рис. 1).
Выберите опцию ручного ввода данных (“Enter data about the relying party manually”), как показано на Рис. 2.
В поле Отображаемое имя (“Display name”) введите название Relying Party. Имя необходимо только для упорядоченного ведения списка доверенных приложений в ADFS.
Оставьте профиль “AD FS Profile”, выбранный по умолчанию. Нажмите кнопку Далее (“Next”).
На шаге выбора сертификата нажмите кнопку Далее (“Next”).
Включите поддержку протокола SAML 2.0. Укажите адрес сайта, добавьте к нему “/ServiceModel/AuthService.svc/SsoLogin“ (Рис. 3).
В настройках идентификаторов укажите полный адрес сайта и нажмите кнопку Добавить (“Add”) как показано на Рис. 4.
Идентификатор используется при проверке подлинности источника, который запрашивает выполнение аутентификации. URL должен совпадать полностью, включая “/” в конце.
Значения остальных параметров настройте в соответствии с требованиями безопасности вашей организации. Для тестового использования эти настройки можно оставить по умолчанию.
Нажмите Завершить (“Finish”). В открывшемся окне по кнопке Добавить правило (“Add Rule”) добавьте новое правило формирования SAML Assertion в SAML Response (Рис. 5).
Рис. 5 — Добавление правила
Данные, которые формируются новым правилом, будут использоваться приложением Creatio для поиска пользователя, актуализации его профиля и ролей.
На первом шаге добавления правила оставьте настройку, выбранную по умолчанию, и нажмите кнопку Далее (“Next”). Установите набор параметров, которые будут получены из данных пользователя (Рис. 6). В указанном примере в SAML Assertion будет передаваться имя (“Name”) пользователя и список групп домена, в которые он входит.
Нажмите кнопку Сохранить (“Save”).
Откройте настройки созданного поставщика ресурсов “Trusted Relay” и на вкладке с расширенными настройками (“Advanced”) укажите шифрование SHA-1 согласно алгоритму сертификата сайта.
Для настройки шифрования SAML-пакета на вкладке с настройками шифрования (“Encryption”) добавьте публичный ключ сертификата (Рис. 7).
Если вы используете Creatio cloud, то публичный ключ сертификата будет предоставлен службой поддержки.
На вкладке Конечные точки (“Endpoints”) добавьте конечную точку (“Logout endpoint”), и установите такие параметры (Рис. 8):
На вкладке Подпись (“Signature”) добавьте сертификат для подписывания (“Logout Request”) как показано на Рис. 9.
Без сертификата не будет работать выход из приложений.
Если вы используете Creatio cloud, то подготовьте информацию для настройки по инструкции ниже и обратитесь в службу поддержки Creatio для применения настроек на сайте.
Ниже приведена инструкция по настройке единого входа для пользователей Creatioon-site. Настоятельно рекомендуем предоставить службе поддержки временный доступ к конфигурации Creatio, либо производить эту настройку под руководством службы технической поддержки.
Чтобы выполнить настройку на стороне Creatio, необходимо выполнить следующие настройки в конфигурационных файлах:
Настройки для приложения на Framework и приложения на .Net Core имеют ряд различий, которые ниже будут рассмотрены подробнее.
Шаг 2. проверка настроек ad fs
Нажмите правой кнопкой мыши на Service и выберите Edit Federation Service Properties…
Убедитесь, что поля во вкладке General соответствуют вашей DNS-записи и именам сертификата. Адрес в поле Federation Service Identifier будет также использован при настройке SAML 2.0 на стороне iSpring Learn.
Шаг 3. сертификат для подписи токена
Найдите сертификат в базе.
Правой кнопкой мыши нажмите на сертификат и выберите View Certificate.
Перейдите на вкладку Details.
Найдите поле Thumbprint и скопируйте его значение.
Шаг 5. настройка проверяющей стороны в ad fs
Откройте Панель управления AD FS, нажмите правой кнопкой мыши на Relying Party Trusts и выберите Add Relying Party Trust…
Нажмите кнопку Next в окне приветствия мастера настройки проверяющей стороны и на шаге Select Data Source выберите последнюю опцию в списке – Enter data about the relying party manually.
На следующем шаге введите название Display name, которое будет использоваться в будущем.
На следующем шаге выберите профиль AD FS:
На следующем шаге оставьте все параметры в том же виде, как они выставлены по умолчанию.
Шаг 6. создание правил утверждений
Добавьте первое правило, нажав на Add Rule…

Выберите правило Send LDAP Attributes as Claims.

На следующем шаге введите название вашего Правила Утверждения. Например, E-mail to Learn, и выберите Active Directory для параметра Attribute store. Далее выберите следующие значения:
Далее добавьте второе правило и выберите Transform an Incoming Claim для параметра Claim rule template.

Нажмите ОК для создания правила утверждения, а затем снова ОК для подтверждения завершения создания правил.
Шаг 7. изменение настроек безопасности
Некоторые параметры настроек безопасности созданного Relying Party Trust необходимо изменить. Для перехода к этим настройкам, выберите Properties в боковой панели справа, убедившись, что также выбран параметр Relying Party Trust.
Заключение
Почему миграция программы лояльности на ADFS оказалась важна для заказчика?
