Примеры конфигураций CAS > PingFederate в качестве центрального сервера аутентификации > Примеры конфигураций SSO > Пример. Интеграция аутентификации на основе сертификата с PingFederate
Пример. Интеграция аутентификации на основе сертификата с PingFederate
Этот пример содержит подробные пошаговые инструкции по входу в среду SSO, содержащую приложение ThingWorx, сконфигурированное для использования единого входа с PingFederate в качестве центрального сервера аутентификации (CAS) и поставщика удостоверений (IdP), а также Windchill DS в качестве хранилища данных с аутентификацией на основе сертификата (CBA). Это позволяет пользователям входить в ThingWorx с помощью своих учетных данных или сертификата.
Подробную документацию PingFederate см. в разделе Конфигурирование адаптера IdP с сертификатом X.509.
Часть A. Предварительные требования 
Шаг 1. Создание сертификатов
При настройке аутентификации на основе сертификата PingFederate конфигурируется так, чтобы сертификат, используемый для аутентификации пользователя, мог быть проверен на соответствие сертификату центра сертификации (CA), хранящемуся в PingFederate. Если у вас нет CA и сертификата пользователя, можно создать самоподписанный сертификат и использовать его в PingFederate. Чтобы создать открытый ключ и сертификат клиента, используйте следующие команды:
1. openssl genrsa -out ptc-sso-ca.key 4096
2. openssl req -x509 -new -nodes -key ptc-sso-ca.key -days 3650 -out ptc-sso-ca.pem
3. openssl genrsa -out ptc-sso-jsmith.key 2048
4. openssl req -new -key ptc-sso-jsmith.key -out ptc-sso-jsmith.csr
5. Создайте файл v3.ext:
extendedKeyUsage=clientAuth
keyUsage = digitalSignature
6. openssl x509 -req -in ptc-sso-jsmith.csr -CA ptc-sso-ca.pem -CAkey ptc-sso-ca.key -CAcreateserial -out ptc-sso-jsmith.pem -days 1024 -sha256 -extfile <path to v3.ext file>
7. openssl pkcs12 -export -out ptc-sso-jsmith.pfx -inkey ptc-sso-jsmith.key -in ptc-sso-jsmith.pem
Шаг 2. Добавление сертификата CA в PingFederate
Для использования лексемы X.509 PingFederate требуется дополнительный порт SSL. Чтобы задать дополнительный порт SSL, измените в файле <pf-install>/ping federate/bin/run.properties значение pf.secondary.https.port на действительный номер порта. (В этом примере мы настроим его как 9032.)
Шаг 3. Добавление сертификата доверенного CA
1. Перейдите в меню Security > Trusted CA > Import.
2. Выберите файл сертификата центра сертификации CA (pem-файл).
3. В окне Summary проверьте конфигурацию, внесите необходимые изменения и нажмите кнопку Save.
Шаг 4. Сохраните сертификат пользователя в браузере
Теперь импортируйте сертификат пользователя (pfx-файл) в браузер.
Часть B. Создание адаптера IdP для сертификата X509 
Этот адаптер будет использоваться для аутентификации пользователей на основе их сертификатов.
1. Войдите в PingFederate как администратор. Перейдите в меню Authentication > Integration > IdP > Adapters. Щелкните Create New Instance
2. Введите имя и идентификатор в поля Instance Name и Instance ID. Задайте тип как X.509 Certificate IdP Adapter 1.3.1. Нажмите кнопку Next.
3. Введите Client Auth Port, указанный для pf.secondary.https.port (9032). Для client hostname введите fqdn системы PingFederate.
4. Установите флажок Match Issuer DN in Client X.509 certificate и щелкните Show Advanced Fields.
5. Задайте Authentication Context как Policy OID и выберите опцию Include Subject Alternative Name (SAN). Нажмите кнопку Next.
6. На вкладке Extended Contract нажмите кнопку Add, чтобы ввести userPrincipalName и CN, а затем нажмите кнопку Next.
7. На вкладке Adapter Attributes задайте опцию Pseudonym для атрибута userPrincipalName и нажмите кнопку Next.
8. На вкладке Adapter Contract Mapping можно настроить дополнительные атрибуты из хранилища данных и критериев выдачи. Критерии выдачи проверяют присутствие пользователя в LDAP с помощью предоставленной информации из сертификата.
* 
Необходимо обязательно задать критерии выдачи для CBA в ThingWorx.
a. Щелкните Configure Adapter Contract.
b. В разделе Adapter Contract Mapping щелкните ADD Attribute Source.
c. Задайте LDAP как Attribute Source Id и Attribute Source Description. В активном хранилище данных выберите хранилище данных WindchillDS и нажмите кнопку Next.
d. В разделе LDAP Directory Search укажите следующие параметры:
i. Base DN = cn=Windchill_11.1,o=ptc
ii. Search Scope = Subtree
iii. Добавьте следующие пользовательские атрибуты: uid, CN и Subject DN
e. Нажмите кнопку Next.
f. В разделе LDAP FILTER задайте следующий фильтр: uid=${CN}. Нажмите кнопки Next и Done.
g. В разделе Adapter Contract Fulfillment задайте источник userPrincipalName как LDAP со значением uid. Для всех остальных источников контракта задайте Adapter. Нажмите кнопку Next.
h. В разделе Issuance Criteria щелкните Show Advanced Criteria.
i. Добавьте в поле Expression следующее выражение: #this.get("ds.LDAP.uid").hasValue(#this.get("CN").getValue())
ii. Укажите Error Result как "User was not found"
iii. Щелкните ADD.
9. Щелкните Next и затем Save
Часть C. Добавление адаптера сертификата к соединению SP 
1. Войдите в PingFederate как администратор. Перейдите в меню Applications > Integration > SP Connections. Выберите наименование для подключения.
2. Щелкните Authentication Source Mapping > Map New Adapter Instance.
3. На вкладке Adapter Instance выберите имя адаптера, созданного в части B. Нажмите кнопку Next.
4. Сопоставьте различные атрибуты со значениями адаптера или значениями динамического текста.
5. Нажмите кнопку Next, а затем Save.
Было ли это полезно?