# Подключение AD FS как клиент (Service Provider) для Blitz IDP

**AD FS (Active Directory Federation Services)** - компонент Windows Server, обеспечивающий федеративное управление удостоверениями и доступом. Он позволяет использовать единый вход (SSO) для безопасного доступа к внешним веб-приложениям, облачным сервисам и ресурсам партнеров, используя учетные данные корпоративной Active Directory

Основная настройка интеграции заключается в обмене файлами метаданных с параметрами подключения между AD FS и Blitz IDP:

- URL метаданных Blitz IDP: ``https://login.company.com/blitz/saml/profile/Metadata/SAML``
- URL метаданных AD FS: ``https://adfs.company.com/FederationMetadata/2007-06/FederationMetadata.xml``

Подключение AD FS к Blitz Identity Provider выполняется по протоколу SAML и состоит из двух этапов:

- Этап 1. Настройки на стороне AD FS
- Этап 2. Настройки на стороне Blitz Identity Provider
- Этап 3. Настройка атрибутов AD FS


### Этап 1. Настройки на стороне AD FS

1. В оснастке управления AD FS необходимо добавить внешний провайдер, данные для настройки импортируйте из файла метаданных Blitz IDP. Название на следующем шаге - произвольное, например - Blitz IDP.

[![image.png](https://docs.identityblitz.ru/kb/uploads/images/gallery/2026-04/scaled-1680-/SUzimage.png)](https://docs.identityblitz.ru/kb/uploads/images/gallery/2026-04/SUzimage.png)

2. После создания провайдера в его настройках необходимо изменить алгоритм хэширования на **SHA-1 .**

[![image.png](https://docs.identityblitz.ru/kb/uploads/images/gallery/2026-04/scaled-1680-/Pbuimage.png)](https://docs.identityblitz.ru/kb/uploads/images/gallery/2026-04/Pbuimage.png)

### Этап 2. Настройки на стороне Blitz IDP

1. В Консоли администратора cоздайте новое приложение с идентификатором ``http://adfs.company.com/adfs/services/trust`` и значением домена ``adfs.company.com``. Проверить идентификатор можно в метаданных ADFS, значение параметра ``entityID``.

 
2. После создания приложения необходимо сконфигурировать протокол SAML:
  - **Метаданные**: в метаданные загрузите метаданными AD FS ``FederationMetadata.xml``.   
  - **SAML профиль**: выберите ``SAML 2.0 Web SSO Profile`` и задайте параметры:
    - Подписывать утверждения: ``always``
    - Шифровать утверждения: ``never``
    - Шифровать идентификаторы (NameIds): ``never``

3. Отметьте чек-бокс _Включить передачу SAML-утверждений о пользователе в специальном блоке Attribute Statement_. В **Атрибуты пользователя** указать атрибуты, которые необходимо передавать в AD FS. 

### Этап 3. Настройка передачи атрибутов Blitz IDP -&gt; ADFS -&gt; Приложение

Есть две схемы передачи атрибутов из Blitz IDP в Клиентское приложение через ADFS. Их можно использовать как совместно, так и по отдельности:

- Вариант 1. AD FS работает просто как "передатчик" - присланный из Blitz IDP атрибут передает в клиентское приложение с таким же или измененным названием.

- Вариант 2. Blitz передает определенный атрибут (с именем ``http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname`` и значением ``ДОМЕН\пользователь``), по которому ADFS может найти пользователя в AD и отправить в клиентское приложение атрибуты из AD этого пользователя. Этот вариант менее затратный, т.к. не потребует настройки передачи всех атрибутов из Blitz, настройки их приёма в ADFS и изменения настроек всех клиентских приложений ADFS на новые атрибуты.

#### Вариант 1. Передача атрибута в Приложение через AD FS

##### Шаг 1. Настройка со стороны Blitz IDP

1. В консоли администратора **SAML -> Атрибуты -> Добавить новый SAML-атрибут**:

   - Название: произвольное,
   - Источник: название атрибута пользователя, значение из которого будет отправлено Кодировщик.

[![Screenshot 2026-05-04 103354.png](https://docs.identityblitz.ru/kb/uploads/images/gallery/2026-05/scaled-1680-/screenshot-2026-05-04-103354.png)](https://docs.identityblitz.ru/kb/uploads/images/gallery/2026-05/screenshot-2026-05-04-103354.png)
   
2. В SAML помимо значения атрибута передается еще и его тип. Для вновь созданного SAML атрибута необходимо настроить как минимум один кодировщик, иначе атрибут передан не будет.

   Для AD FS нужно выбирать кодировщик SAML2. Для SAML2 есть два кодировщика: **String** и **StringNameID**.

<div style="background-color: #fff3cd; border: 1px solid #ffc107; border-radius: 5px; padding: 10px;">
     <strong>Важно:</strong> <p>По спецификации SAML в ответе должен быть один атрибут <b>NameID</b> (не ноль и не два и более), иначе ответ будет считаться ошибочным и принят клиентом не будет.</p>
 </div>

Настройте хотя бы один кодировщик для типа **NameID**, тогда значение передаваемого в нем атрибута будет сопоставлено с внутренним атрибутом AD FS под названием **Name** ``http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name``.
   
   Правильным будет в **NameID** передавать атрибут ``sub`` из Blitz IDP, таким образом будет выполнено сопоставление уникальных идентификаторов в обеих системах. Количество атрибутов с кодировщиком String не ограничено.
   
[![image.png](https://docs.identityblitz.ru/kb/uploads/images/gallery/2026-05/scaled-1680-/2qHimage.png)](https://docs.identityblitz.ru/kb/uploads/images/gallery/2026-05/2qHimage.png)

3. После выбора типа кодировщика нужно выбрать Название из Приложения 1 - по нему AD FS определяет к какому внутреннему атрибуту AD FS относится входящий атрибут из SAML-Response, который формирует Blitz IDP. Формат имени обычно ``persistent``, проверить можно в метаданных AD FS по пути ``/EntityDescriptor/SPSSODescriptor/`` - тут перечислены допустимые **NameID**.

[![image.png](https://docs.identityblitz.ru/kb/uploads/images/gallery/2026-05/scaled-1680-/2dcimage.png)](https://docs.identityblitz.ru/kb/uploads/images/gallery/2026-05/2dcimage.png)

##### Шаг 2. Настройка на стороне AD FS

1. Помимо известного для AD FS названия атрибута нужно настроить его приём в AD FS для возможности дальнейшей обработки\\передачи. В **Claim Provider Trusts** выберите настроенный ранее провайдер Blitz IDP, справа нажмите **Редактировать правила обработки утверждений**, добавьте новое правило из имеющихся шаблонов, а также введите дополнительную информацию, нужную для работы правила. [Полное описание правил.](https://learn.microsoft.com/en-us/windows-server/identity/ad-fs/deployment/configuring-claim-rules)  

[![image.png](https://docs.identityblitz.ru/kb/uploads/images/gallery/2026-05/scaled-1680-/cQGimage.png)](https://docs.identityblitz.ru/kb/uploads/images/gallery/2026-05/cQGimage.png)

2. Для простого приёма атрибута в AD FS без его изменения выберите правило *"Проход через входящие утверждение или его фильтрация"*:

   **Название:** любое понятное,
   
   ниже - выбранный ранее **шаблон**,
   
   **Тип входящего утверждения** должен соответствовать "Имени в ADFS" из Приложения 1

[![image.png](https://docs.identityblitz.ru/kb/uploads/images/gallery/2026-05/scaled-1680-/DZhimage.png)](https://docs.identityblitz.ru/kb/uploads/images/gallery/2026-05/DZhimage.png)

3. Для простой передачи атрибута в клиентское приложение нужно добавить правило *"Проход через входящие утверждение или его фильтрация"* в политику выдачи утверждений в настройках приложения:

[![image.png](https://docs.identityblitz.ru/kb/uploads/images/gallery/2026-05/scaled-1680-/KmUimage.png)](https://docs.identityblitz.ru/kb/uploads/images/gallery/2026-05/KmUimage.png)

#### Вариант 2. Настройка передачи данных из AD при аутентификации через внешний провайдер

1. В Blitz IDP надо настроить передачу атрибута с названием в кодировщике ``http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname`` и значением `NetBIOS-имя-домена\пользователь: CONTOSO\user`. В AD атрибута с таким значением у пользователя нет, поэтому будем использовать вычисляемый атрибут в Blitz IDP. Создаём вычисляемый атрибут с правилом вычисления `CONTOSO\\${sub}`:

[![image.png](https://docs.identityblitz.ru/kb/uploads/images/gallery/2026-05/scaled-1680-/RZgimage.png)](https://docs.identityblitz.ru/kb/uploads/images/gallery/2026-05/RZgimage.png)

2. Настройте SAML-атрибут и Кодировщик для него:

[![image.png](https://docs.identityblitz.ru/kb/uploads/images/gallery/2026-05/scaled-1680-/Wleimage.png)](https://docs.identityblitz.ru/kb/uploads/images/gallery/2026-05/Wleimage.png)

3. В приложении для подключения AD FS настройте передачу созданного атрибута:

[![image.png](https://docs.identityblitz.ru/kb/uploads/images/gallery/2026-05/scaled-1680-/Wmtimage.png)](https://docs.identityblitz.ru/kb/uploads/images/gallery/2026-05/Wmtimage.png)

4. В AD FS для провайдера нужно создать кастомное правило обработки утверждений, которое меняет подпись для утверждения ``http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname`` из внешнего провайдера на "AD AUTHORITY" - без такой подписи AD поиск пользователя отклонит:

[![image.png](https://docs.identityblitz.ru/kb/uploads/images/gallery/2026-05/scaled-1680-/fukimage.png)](https://docs.identityblitz.ru/kb/uploads/images/gallery/2026-05/fukimage.png)

**Правило:** 
``` 
c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname"]
 => issue(Type = c.Type, Issuer = "AD AUTHORITY", OriginalIssuer = c.OriginalIssuer, Value = c.Value); 
 ```

### Дополнительно

#### Атрибуты и названия claim внешнего провайдера для их автоматического маппинга в AD FS

<table aria-label="What are claim types?" class="table table-sm margin-top-none" id="bkmrk-name-description-uri" style="width: 110%;"><thead><tr><th style="width: 15.0179%;">Имя в ADFS</th><th style="width: 26.5882%;">Описание </th><th style="width: 58.3939%;">Название атрибута для передачи</th></tr></thead><tbody><tr><td style="width: 15.0179%;">E-Mail Address</td><td style="width: 26.5882%;">The e-mail address of the user</td><td style="width: 58.3939%;">http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress</td></tr><tr><td style="width: 15.0179%;">Given Name</td><td style="width: 26.5882%;">The given name of the user</td><td style="width: 58.3939%;">http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname</td></tr><tr><td style="width: 15.0179%;">Name</td><td style="width: 26.5882%;">The unique name of the user</td><td style="width: 58.3939%;">http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name</td></tr><tr><td style="width: 15.0179%;">UPN</td><td style="width: 26.5882%;">The user principal name (UPN) of the user</td><td style="width: 58.3939%;">http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn</td></tr><tr><td style="width: 15.0179%;">Common Name</td><td style="width: 26.5882%;">The common name of the user</td><td style="width: 58.3939%;">http://schemas.xmlsoap.org/claims/CommonName</td></tr><tr><td style="width: 15.0179%;">AD FS 1.x E-Mail Address</td><td style="width: 26.5882%;">The e-mail address of the user when interoperating with AD FS 1.1 or AD FS 1.0</td><td style="width: 58.3939%;">http://schemas.xmlsoap.org/claims/EmailAddress</td></tr><tr><td style="width: 15.0179%;">Group</td><td style="width: 26.5882%;">A group that the user is a member of</td><td style="width: 58.3939%;">http://schemas.xmlsoap.org/claims/Group</td></tr><tr><td style="width: 15.0179%;">AD FS 1.x UPN</td><td style="width: 26.5882%;">The UPN of the user when interoperating with AD FS 1.1 or AD FS 1.0</td><td style="width: 58.3939%;">http://schemas.xmlsoap.org/claims/UPN</td></tr><tr><td style="width: 15.0179%;">Role</td><td style="width: 26.5882%;">A role that the user has</td><td style="width: 58.3939%;">http://schemas.microsoft.com/ws/2008/06/identity/claims/role</td></tr><tr><td style="width: 15.0179%;">Surname</td><td style="width: 26.5882%;">The surname of the user</td><td style="width: 58.3939%;">http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname</td></tr><tr><td style="width: 15.0179%;">PPID</td><td style="width: 26.5882%;">The private identifier of the user</td><td style="width: 58.3939%;">http://schemas.xmlsoap.org/ws/2005/05/identity/claims/privatepersonalidentifier</td></tr><tr><td style="width: 15.0179%;">Name Identifier</td><td style="width: 26.5882%;">The SAML name identifier of the user</td><td style="width: 58.3939%;">http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier</td></tr><tr><td style="width: 15.0179%;">Authentication Method</td><td style="width: 26.5882%;">The method used to authenticate the user</td><td style="width: 58.3939%;">http://schemas.microsoft.com/ws/2008/06/identity/claims/authenticationmethod</td></tr><tr><td style="width: 15.0179%;">Deny Only Group SID</td><td style="width: 26.5882%;">The deny-only group SID of the user</td><td style="width: 58.3939%;">http://schemas.xmlsoap.org/ws/2005/05/identity/claims/denyonlysid</td></tr><tr><td style="width: 15.0179%;">Deny only primary SID</td><td style="width: 26.5882%;">The deny-only primary SID of the user</td><td style="width: 58.3939%;">http://schemas.microsoft.com/ws/2008/06/identity/claims/denyonlyprimarysid</td></tr><tr><td style="width: 15.0179%;">Deny only primary group SID</td><td style="width: 26.5882%;">The deny-only primary group SID of the user</td><td style="width: 58.3939%;">http://schemas.microsoft.com/ws/2008/06/identity/claims/denyonlyprimarygroupsid</td></tr><tr><td style="width: 15.0179%;">Group SID</td><td style="width: 26.5882%;">The group SID of the user</td><td style="width: 58.3939%;">http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid</td></tr><tr><td style="width: 15.0179%;">Primary group SID</td><td style="width: 26.5882%;">The primary group SID of the user</td><td style="width: 58.3939%;">http://schemas.microsoft.com/ws/2008/06/identity/claims/primarygroupsid</td></tr><tr><td style="width: 15.0179%;">Primary SID</td><td style="width: 26.5882%;">The primary SID of the user</td><td style="width: 58.3939%;">http://schemas.microsoft.com/ws/2008/06/identity/claims/primarysid</td></tr><tr><td style="width: 15.0179%;">Windows account name</td><td style="width: 26.5882%;">The domain account name of the user in the form of &lt;domain&gt;\\&lt;user&gt;</td><td style="width: 58.3939%;">http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname</td></tr></tbody></table>