Перейти к основному содержимому
Версия: 7.0

Конфигурация SSO c AD FS

осторожно

Перед настройкой SSO убедитесь, что в config.env параметр APP_URL соответствует текущему домену Пассворка, пример — APP_URL=https://passwork.example.ru

Для примера используются следующие имена серверов:

  • Провайдер (IDP) — ad-fs.passwork.local
  • Сервер Пассворка (SP) — passwork.example.ru

Добавление отношения доверия проверящей стороны

Открыть — Диспетчер серверовСредстваУправление AD FSОтношения доверия проверяющей стороныДействия:

Пример создания приложения Пассворк

Поэтапно выполнить действия в — Мастер добавления отношений доверия проверяющей стороны:

  1. Поддерживающие утверждения;
  2. Ввод данных о проверяющей стороне вручную;
  3. Заполнить Отображаемое имя (пример: passwork-sp);
  4. Пропустить шаг — Настройка сертификата, нажать Далее;
  5. На шаге Настройка URL-адреса:
    1. Включить поддержку протокола SAML 2.0 WebSSO;
    2. Скопировать из Пассворка в — Настройки и пользователиНастройки SSO — адрес URL ответа;
    3. Поместить в URL-адрес службы SAML 2.0 SSO проверяющей стороныhttps://passwork.example.ru/api/v1/sso/acs
  6. На шаге Настройка идентификатора:
    1. Скопировать из Пассворка в — Настройки и пользователиНастройки SSO — адрес Идентификатора;
    2. Поместить в Идентификатор отношения доверия проверяющей стороныhttps://passwork.example.ru/api/v1/sso/metadata
  7. Пропустить шаг — Выбрать политику управления доступом, нажать Далее;
  8. Пропустить шаг — Готовность для добавления отношения доверия, нажать Далее;
Пример вывода созданного доверия в PowerShell
Get-ADFSRelyingPartyTrust -Name "passwork-sp" # Команда для вывода

AllowedAuthenticationClassReferences : {}
EncryptionCertificateRevocationCheck : CheckChainExcludeRoot
PublishedThroughProxy : False
SigningCertificateRevocationCheck : CheckChainExcludeRoot
WSFedEndpoint :
AdditionalWSFedEndpoint : {}
ClaimsProviderName : {}
ClaimsAccepted : {}
EncryptClaims : True
Enabled : True
EncryptionCertificate :
Identifier : {https://passwork.example.ru/api/v1/sso/metadata}
NotBeforeSkew : 0
EnableJWT : False
AlwaysRequireAuthentication : False
Notes :
OrganizationInfo :
ObjectIdentifier : 03363cb7-5eef-ef11-b8b3-000c2993a976
ProxyEndpointMappings : {}
ProxyTrustedEndpoints : {}
ProtocolProfile : WsFed-SAML
RequestSigningCertificate : {}
EncryptedNameIdRequired : False
SignedSamlRequestsRequired : False
SamlEndpoints : {Microsoft.IdentityServer.Management.Resources.SamlEndpoint}
SamlResponseSignature : AssertionOnly
SignatureAlgorithm : http://www.w3.org/2001/04/xmldsig-more#rsa-sha256
TokenLifetime : 0
AllowedClientTypes : Public, Confidential
IssueOAuthRefreshTokensTo : AllDevices
RefreshTokenProtectionEnabled : True
RequestMFAFromClaimsProviders : False
ScopeGroupId :
ScopeGroupIdentifier :
DeviceAuthenticationMethod :
Name : passwork-sp
AutoUpdateEnabled : False
MonitoringEnabled : False
MetadataUrl :
ConflictWithPublishedPolicy : False
IssuanceAuthorizationRules :
IssuanceTransformRules :
DelegationAuthorizationRules :
LastPublishedPolicyCheckSuccessful :
LastUpdateTime : 01.01.1900 5:00:00
LastMonitoredTime : 01.01.1900 5:00:00
ImpersonationAuthorizationRules :
AdditionalAuthenticationRules :
AccessControlPolicyName : Permit everyone
AccessControlPolicyParameters :
ResultantPolicy : RequireFreshAuthentication:False
IssuanceAuthorizationRules:
{
Permit everyone
}

Get-ADFSRelyingPartyTrust -Name "passwork-sp" | Select-Object -ExpandProperty SamlEndpoints # Команда для вывода

Binding : POST
BindingUri : urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST
Index : 0
IsDefault : False
Location : https://passwork.example.ru/api/v1/sso/acs
Protocol : SAMLAssertionConsumer
ResponseLocation :

Открыть Свойства созданного Отношения доверия проверяющей стороны:

Открыть свойства созданного приложения

В Свойствах перейти в Конечные точки и выполнить следующие действия:

  1. Добавить SAML;
  2. Тип конечной точки — Завершение сеанса SAML;
  3. Привязка — Redirect;
  4. Скопировать из Пассворка в — Настройки и пользователиНастройки SSO — адрес URL выхода;
  5. Поместить в Доверенный URL-адресhttps://passwork.example.ru/api/v1/sso/sls
  6. Применить изменения и закрыть Свойства.

Настройка правил обработки запросов от SP (Пассворка) в IDP (AD FS)

осторожно

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

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

В Отношения доверия проверяющей стороны встать на созданное доверие (passwork-sp) и открыть — Изменить политику подачи запросов:

Открыть политики подачи запросов
Настройка правил обработки для username@passwork.local формата

Выполнить следующие действия:

  1. Добавить правило;
  2. Отправка атрибутов LDAP как утверждений;
  3. Имя правила утверждения — AttributeStatement;
  4. Хранилище атрибутов — Active Directory;
  5. Атрибут LDAP — User-Principal-Name;
  6. Тип исходящего утверждения — UPN.
Пример настройки атрибута подтверждения

Выполнить следующие действия:

  1. Добавить правило;
  2. Преобразование входящего утверждения;
  3. Имя правила утверждения — Name ID Format;
  4. Тип входящего утвеждения — UPN;
  5. Тип исходящего утверждения — Name ID;
  6. Формат ИД исходящего имени — Временный идентификатор.
Пример настройки Name ID правила утверждения
Настройка правил обработки для username формата

Выполнить следующие действия:

  1. Добавить правило;
  2. Отправка атрибутов LDAP как утверждений;
  3. Имя правила утверждения — AttributeStatement;
  4. Хранилище атрибутов — Active Directory;
  5. Атрибут LDAP — SAM-Account-Name;
  6. Тип исходящего утверждения — E-Mail Address;
Пример настройки атрибута подтверждения

Выполнить следующие действия:

  1. Добавить правило;
  2. Преобразование входящего утверждения;
  3. Имя правила утверждения — Name ID Format;
  4. Тип входящего утвеждения — E-Mail Address;
  5. Тип исходящего утверждения — Name ID;
  6. Формат ИД исходящего имени — Временный идентификатор.
Пример настройки Name ID правила утверждения

Настройка правил обработки дополнительных атрибутов для передачи в SP

Отредактировать созданное правило с именем AttributeStatement:

  1. Передавать в SP (Пассворк) Display-Name атрибут:
    1. Атрибут LDAP — Display-Name;
    2. Тип исходящего утверждения — прописать displayName;
  2. Передавать в SP (Пассворк) E-mail-Address атрибут:
    1. Атрибут LDAP — E-Mail-Addresses;
    2. Тип исходящего утверждения — прописать emailAddress;
Пример добавл�ения отдачи дополнительных атрибутов

Настройка и заполнение параметров единого входа (SSO) в Пассворке

Заполнение значений «Атрибуты пользователя»

Авторизоваться в веб-интерфейсе Пассворка, перейти в — Настройки и пользователиНастройки SSO и заполнить атрибуты сопоставления:

  • Атрибут электронной почты — emailAddress;
  • Атрибут полного имени — displayName.

Заполнение значений «Поставщик удостоверений → Пассворк»

Открыть Управление AD FS → встать на директорию AD FSИзменить свойства службы федерации:

Открыть свойства службы федерации

Скопировать адрес — Идентификатор службы федерацииhttp://ad-fs.passwork.local/adfs/services/trust:

Скопировать идентификатор службы федерации

Открыть — Настройки и пользователиНастройки SSO и заполнить значения:

Заполнение значения «Сертификат»

Открыть и экспортировать сгенерированный SSL сертификат в base64 формате — Управление AD FSСлужбаСертификатыДля подписи маркера:

Получить в base64 публичный SSL сертификат AD FS

Экспортированный SSL сертификат открыть с помощью Блокнота, скопировать и поместить в соответствующее поле — Настройки и пользователиНастройки SSO.

Пример экспортированного ключа в base64 формате
-----BEGIN CERTIFICATE-----
MIIE5DCCAsygAwIBAgIQM/9SlLjzJLBHaSgQVsIEPzANBgkqhkiG9w0BAQsFADAu
MSwwKgYDVQQDEyNBREZTIFNpZ25pbmcgLSBhZC1mcy5wYXNzd29yay5sb2NhbDAe
Fw0yNTAyMTkyMDA3MjFaFw0yNjAyMTkyMDA3MjFaMC4xLDAqBgNVBAMTI0FERlMg
U2lnbmluZyAtIGFkLWZzLnBhc3N3b3JrLmxvY2FsMIICIjANBgkqhkiG9w0BAQEF
AAOCAg8AMIICCgKCAgEAs6isogLhwqdncR1tYqKgS+Dwmi3DOIMfDpQNgaD/S5Vd
FngFsZ048zfYqJAn9Ypnu8UCTftoKJ2BQzRPoqaT2lpaAivyTDLKBMmbaAyOHoQH
RAd6NQazUYcbW2vMWwA4sa8hTDwwwZPOFhx3AR5EbW4IQo0sHWHOYCIWmH0td9+4
Lqiy7VkHT3fcUCuDL+kopjnsvdJLvbpg7ZPFkYLgy/ANP9+90yt/L1/Mj682bV3b
HgaPbAOzaG7qS6pA94wPmKYLnNf2C89vSfBaA+KjfWjhK5YMPbWLUxolNX7zz6bx
BQKdU/W7pTQIIIffy0rLNwWyaQbKKh77C9OKWLE3k54OhNAyJHXF332CK7psPSVT
fRDqagYGZQF/EhPQG7kMPpr6IiZ76v9FmZz59ruYaLA9f0YYK2NpiLdY1EHLdm19
H+72T/ZFEOLKExr+BbEOcQAlnqGXSs0YdrWTwMEBCqnrPiS4153298VEqKto1sUz
hqnBookmLgUymqApN50KIffezRK/ghfoxBY16EzlYAyVyWqaAB5WEAbCgdB2p9RN
KZHeYz3iB/cQzps1DYsZhZJ9SLS0yr8aQgYMl0PyKS7ajPR9GlGSKKz/7Q6POOtY
jz7qLcBgApacUJfOqUr2OcPzU/TsvRyHhPNzW41hIEjGWBVJ6WlpUFQYJxp5rxkC
AwEAATANBgkqhkiG9w0BAQsFAAOCAgEAbKOjd7u1qnVfL4HsVNSCSUTqXI4knvxI
NKQxZWCpkdCxPzpJJdtMPsGukZQAblEcgQPX+v94F32BA2bk8cgp08ra2OrXEXR7r
XCCm3BvUAsI6nmbzKHPm6y/3awadOu59k8qE1c+DRSrHHM9927Z4QWMKYLfKEQL4
4WBYbw/jgqs7HqMbxrdfCtNdQzGKcE+sVaT9OnDp86TopHbsndRUyXqfqkB/LSbq
cstg/cC1b9xJ+FI3xUXEl/33e9/p8ovFko5slW5kU6qET9cg6GA0OreIb+8FbbiV
LOll4aIsn44/wQ6mu3biw77l1TpoUQpf11G9fpuOV10WRttOtk4IsryMhsbrGa/R
RZMbWH2MgkLs1VlcigrUE6kMIkU743d8oyLQb7N4+O+h56YLIuWWXUMM1FNNCIov
tVutUBpSO6OgTUo5tcD9uqaD5R1+rf5A68yUslMgU+4mE9hdY/143bZMDPexKcUt
jfZOI9v4ppmoFgeWZDYMtxU40OkYZh/grnxw9aoZEPLfr8Vnf+LhGvhEFWKvvwdv
J7n49c1WxZxK7rDaSwKeydgLC1bySFQoiYkOucfO+NcdBi6R44cXBrWk1EESLuCq
X2LLIS2NoKg8pX2BPqPcTuZGclEivpg0rrovksNj3L3BRtFO3jWooqxxOfVUbk8h
uFmSLzpAW1I=
-----END CERTIFICATE-----

Заполнение значения «Дополнительные настройки»

Поместить в JSON формате следующее содержимое:

{
"sp": {
"entityId": "https://passwork.example.ru/api/v1/sso/metadata",
"assertionConsumerService": {
"url": "https://passwork.example.ru/api/v1/sso/acs"
},
"singleLogoutService": {
"url": "https://passwork.example.ru/api/v1/sso/sls"
},
"NameIDFormat": "urn:oasis:names:tc:SAML:2.0:nameid-format:transient"
}
}
осторожно

Заменить в URL-адресах домен passwork.example.ru на домен вашего сервера Пассворка.

Открыть окно авторизации в веб-интерфейсе Пассворка и выполнить вход через SSO для проверки корректной настройки:

Выполнить аутентификацию в Пассворке с помощью SSO