Подключение AD FS как клиент(Service Provider) для Blitz IDP
Настройка интеграции
Основная настройка интеграции заключается в обмене файлами метаданных с параметрами подключения между AD FS и Blitz IDP. 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
1. В оснастке управления AD FS добавьтенеобходимо добавить внешний провайдер, данные для настройки импортируйте из файла метаданных Blitz IDP. Название на следующем шаге - произвольное, например - Blitz IDP.
2. После создания провайдера в его настройках необходимо изменить алгоритм хэширования на SHA-1 .
Настройка на стороне Blitz IDP .
- В Консоли администратора cоздайте новое приложение с идентификатором http://adfs.company.com/adfs/services/trust (проверить идентификатор можно в метаданных ADFS, значение параметра "entityID") и значением домена adfs.company.com.
2. После создания приложения необходимо сконфигурировать протокол SAML:
Метаданные: в метаданные загрузитеданные cметаданнымиADFSAD FS - FederationMetadata.xml.xml .
SAML профиль: выберите SAML 2.0 Web SSO Profile, и задайте параметры:- Подписывать утверждения -
always,always - Шифровать утверждения -
never,never - Шифровать идентификаторы (NameIds) -
never,never
активируйтенастройку3. Отметьте чек-бокс "Включить передачу SAML-утверждений о пользователе в специальном блоке Attribute Statement".
Проверить корректность этих настроек можно в метаданных ADFS FederationMetadata.xml по пути /EntityDescriptor/SPSSODescriptor/
Атрибуты пользователя:выберите,указатькакиеатрибуты,изкоторыенастроенныхнеобходимо передавать в AD FS. О настройке самих атрибутовбудут-переданыдалее вADFS. О их настройке ниже.- Подписывать утверждения -
1.
Настройка передачи атрибутов Blitz IDP -> ADFS -> КлиентПриложение
Есть две схемы передачи атрибутов из Blitz IDP в КлиентскуюКлиентское системуприложение через ADFS. Их можно использовать как совместно так и по отдельности:-ADFS
- AD FS работает просто как "передатчик" - присланный из Blitz IDP атрибут передает в клиентское приложение с таким же или измененным названием.
- - Blitz передает определенный атрибут (с именем http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname и значением ДОМЕН\пользователь), по которому ADFS может найти пользователя в AD и отправить в клиентское приложение атрибуты из AD этого пользователя. Этот вариант менее затратный, т.к. не потребует настройки передачи всех атрибутов из Blitz, настройки их приёма в ADFS и изменения настроек всех клиентских приложений ADFS на новые атрибуты.
Ниже рассмотрим как настроить оба способа.
В Blitz IDP
- В консоли администратора
перейтивво вкладкуразделе SAML, в блоке "Атрибуты"нажмитеи нажать "+ Добавить новый SAML-атрибут", Название -любое,произвольное, Источник - название атрибута пользователя, значение из которого будет отправлено Кодировщик.
- В SAML помимо значения атрибута передается еще и его тип. Для вновь созданного
SAML_атрибутSAMLнужноатрибута необходимо настроить как минимум один кодировщик, иначе атрибут передан не будет. ДляADFSAD FS нужно выбирать кодировщик SAML2. Для SAML2 есть два кодировщика: String и StringNameID.
ВНИМАНИЕ. По спецификации SAML в ответе должен быть один атрибут NameID (не ноль и не два и более), иначе ответ будет считаться ошибочным и принят клиентом не будет.
Настройте хотя бы один кодировщик для типа NameID, значение передаваемого в нем атрибута будетсмаппленосопоставлено с внутренним атрибутомADFSAD FS под названием Name (http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name).ЛогичнееПравильным будет в NameID передавать атрибут sub изBlitz.Blitz IDP, таким образом будет выполнено сопоставление уникальных идентификаторов в обеих системах. Количество атрибутов с кодировщиком Stringможетнебытьограничено"любым".
-
Тип кодировщика выбрали ранее, Название нужно выбрать из Приложения 1 - по нему
ADFSAD FS определяет к какому внутреннему атрибутуADFSAD FS относится входящий атрибут из SAML-Response.Response, который формирует Blitz IDP. Формат имени обычно persistent, проверить можно в метаданныхADFSADFederationMetadata.xmlFS по пути /EntityDescriptor/SPSSODescriptor/ - тут перечислены допустимые NameID.
В ADFSAD FS
- Помимо известного для
ADFSAD FS названия атрибута нужно настроить его приём вADFSAD FS для возможности дальнейшей обработки\передачи. В Claim Provider Trusts выберите настроенный ранее провайдерBlitz,Blitz IDP, справа нажмите "Редактировать правила обработки утверждений", добавьте новое правило из имеющихся шаблонов, а также введите дополнительную информацию, нужную для работы правила. Полное описание правил.
- Для простого приёма атрибута в
ADFSAD FS без его изменения выберите правило "Проход через входящие утверждение или его фильтрация": Название - любое понятное, ниже - выбранный ранее шаблон, Тип входящего утверждения должен соответствовать "Имени в ADFS" из Приложения 1
- Для простой передачи атрибута в клиентское приложение нужно добавить правило "Проход через входящие утверждение или его фильтрация" в политику выдачи утверждений в настройках приложения:
Настройка передачи данных из AD при аутентификации
через внешний провайдер
Для этого нужно в Blitz IDP настроить передачу атрибута с названием в кодировщике http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname и значением NetBIOS-имя-домена\пользователь: CONTOSO\user. В AD атрибута с таким значением у пользователя нет, поэтому будем использовать вычисляемый атрибут в Blitz.Blitz IDP. Создаём вычисляемый атрибут с правилом вычисления CONTOSO\\${sub}:
Настройте SAML-атрибут и Кодировщик для него:
В приложении для подключения ADFSAD FS настройте передачу созданного атрибута:
В ADFSAD FS для провайдера нужно создать кастомное правило обработки утверждений, которое меняет подпись для утверждения http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname из внешнего провайдера на "AD AUTHORITY" - без такой подписи AD поиск пользователя отклонит:
Правило: 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);
Приложение 1. Атрибуты и названия claim внешнего провайдера для их автоматического маппинга в ADFSAD FS
| Имя в ADFS | Описание | Название атрибута для передачи |
|---|---|---|
| E-Mail Address | The e-mail address of the user | http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress |
| Given Name | The given name of the user | http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname |
| Name | The unique name of the user | http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name |
| UPN | The user principal name (UPN) of the user | http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn |
| Common Name | The common name of the user | http://schemas.xmlsoap.org/claims/CommonName |
| AD FS 1.x E-Mail Address | The e-mail address of the user when interoperating with AD FS 1.1 or AD FS 1.0 | http://schemas.xmlsoap.org/claims/EmailAddress |
| Group | A group that the user is a member of | http://schemas.xmlsoap.org/claims/Group |
| AD FS 1.x UPN | The UPN of the user when interoperating with AD FS 1.1 or AD FS 1.0 | http://schemas.xmlsoap.org/claims/UPN |
| Role | A role that the user has | http://schemas.microsoft.com/ws/2008/06/identity/claims/role |
| Surname | The surname of the user | http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname |
| PPID | The private identifier of the user | http://schemas.xmlsoap.org/ws/2005/05/identity/claims/privatepersonalidentifier |
| Name Identifier | The SAML name identifier of the user | http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier |
| Authentication Method | The method used to authenticate the user | http://schemas.microsoft.com/ws/2008/06/identity/claims/authenticationmethod |
| Deny Only Group SID | The deny-only group SID of the user | http://schemas.xmlsoap.org/ws/2005/05/identity/claims/denyonlysid |
| Deny only primary SID | The deny-only primary SID of the user | http://schemas.microsoft.com/ws/2008/06/identity/claims/denyonlyprimarysid |
| Deny only primary group SID | The deny-only primary group SID of the user | http://schemas.microsoft.com/ws/2008/06/identity/claims/denyonlyprimarygroupsid |
| Group SID | The group SID of the user | http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid |
| Primary group SID | The primary group SID of the user | http://schemas.microsoft.com/ws/2008/06/identity/claims/primarygroupsid |
| Primary SID | The primary SID of the user | http://schemas.microsoft.com/ws/2008/06/identity/claims/primarysid |
| Windows account name | The domain account name of the user in the form of <domain>\<user> | http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname |






