Я работаю с единым входом (SSO) в течение некоторого времени. Я использую Ping Federate в качестве поставщика удостоверений (IdP) и образец приложения с пружинной загрузкой Java в качестве поставщика услуг (SP). Используемый протокол — SAML.
Я загрузил приложение spring из https://start.spring.io с зависимостями «Интернет» и «Безопасность» и с нетерпением жду установления соединения. При выполнении настройки необходимо загрузить файл метаданных приложения Spring, которое в данном случае является поставщиком услуг, в Ping Federate. Я хочу знать, как я могу создать файл метаданных для моего весеннего приложения?
Я сослался на некоторые документы, но ничего не мог с собой поделать. https://docs.spring.io/spring-security-saml/docs/1.0.0.RELEASE/reference/html/chapter-quick-start.html
Любая помощь будет очень кстати.
Чтобы ответить на ваш вопрос «как я могу создать файл метаданных для своего весеннего приложения?»,
(1) Я загрузил последнюю версию Ping Federate, т. е. pingfederate-9.2.2.zip.
(2) Я создал «Ping Federate в качестве поставщика удостоверений (IdP) и образец приложения с пружинной загрузкой Java в качестве поставщика услуг (SP)» в Ubuntu 16.04 со ссылкой на информацию, предоставленную в вашем посте.
(3) Затем я успешно проверил связь SAML между «Ping Federate в качестве поставщика удостоверений (IdP)» и «примером приложения Spring-boot Java в качестве поставщика услуг (SP)» со ссылкой на информацию, предоставленную в вашем посте.
Следующие ответы и ответ помогут вам войти в «мое весеннее приложение (в качестве поставщика услуг (SP))» через единый вход SAML, предоставляемый «Ping Federate (в качестве поставщика удостоверений (IdP))».
(1) Процитируйте ваш пост «Я скачал весеннее приложение от https://start.spring.io с зависимостями «Интернет» и «Безопасность» и с нетерпением жду установления соединения».
Ответ:
Я выполнил те же задачи, что и вы, выполнив команды ниже.
# Download demo.zip from https://start.spring.io with "Web" and "Security" dependencies
$unzip demo.zip
$cd demo
$sudo mvn package
$sudo cp target/demo-0.0.1-SNAPSHOT.war /opt/tomcat/webapps/
$ls /opt/tomcat/webapps/demo-0.0.1-SNAPSHOT/WEB-INF/
classes lib lib-provided
Теперь мы обнаруживаем, что приложение spring (вы загрузили с зависимостями «Интернет» и «Безопасность») НЕ было установлено с SAML SP. Другими словами, приложение Spring НЕ является приложением с поддержкой SAML SP. Поэтому «Я НЕ могу создать файл метаданных для своего весеннего приложения».
(2) Процитируйте свой пост "Я ссылался на некоторые документы, но ничего не мог с собой поделать. https://docs.spring.io/spring-security-saml/docs/1.0.0.RELEASE/reference/html/chapter-quick-start.html"
Ответ:
Процитируйте важную информацию, предоставленную по приведенной выше ссылке "весна-безопасность-самл", в своем сообщении.
4.2.1 Downloading sample application
Download the Spring SAML Extension either from sources or from one of the releases.
(I) Щелкните ссылку "из источников" в репозитории GitHub.
Затем щелкните папку «образцы» (например, весна-безопасность-saml/образцы/), чтобы прочитать README «Как запустить простой пример поставщика удостоверений (IDP) и поставщика услуг (SP)».
(II) Следуйте инструкциям, приведенным в README, я успешно подтвердил «вход в систему, инициированный SP, и вход, инициированный IDP».
Поскольку в примерах приложений имя хоста жестко закодировано как localhost,
без потери общности, изменив хост-файл DNS на вашем локальном компьютере в демонстрационных целях, мы предполагаем, что
имя хоста «Ping Federate как поставщика удостоверений (IdP)» — ping.example.com.
имя хоста «примера весенней загрузки Java в качестве поставщика услуг (SP)» — localhost.
(3) Процитируйте свой вопрос: «Необходимо загрузить файл метаданных приложения Spring, которое в данном случае является поставщиком услуг, в Ping Federate при выполнении настройки. Я хочу знать, как я могу создать файл метаданных для моего приложения Spring. ?"
Отвечать:
(I) Получите доступ к конечной точке файла метаданных SAML SP приложения spring, созданного с помощью «spring-security-saml/samples/»,
http://localhost:8080/sample-sp/saml/sp/metadata
для «создания/загрузки файла метаданных для моего весеннего приложения», т. е. saml-sp-metadata.xml
(II) Загрузите файл метаданных для моего весеннего приложения (например, saml-sp-metadata.xml) в «Ping Federate как поставщик удостоверений (IdP)»
(III) Загрузите файл метаданных IdP «Ping Federate в качестве поставщика удостоверений (IdP)» в «мое весеннее приложение в качестве поставщика услуг (SP)»
(a) Добавьте приведенный ниже код в конец файла конфигурации «моего весеннего приложения в качестве поставщика услуг (SP)»
$sudo vi spring-security-saml/samples/boot/simple-service-provider/src/main/resources/application.yml
- alias: pingfederate
metadata: https://ping.example.com:9031/pf/federation_metadata.ping?PartnerSpId=spring.security.saml.sp.id
link-text: Ping Federate IDP
authentication-request-binding: urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST
(b) Перезапустите мое весеннее приложение в качестве поставщика услуг (SP), следуя ПРОЧТИ МЕНЯ в разделе «Как запустить простой пример поставщика удостоверений (IDP) и поставщика услуг (SP)» в репозитории GitHub.
чтобы загрузить метаданные IdP «Ping Federate в качестве поставщика удостоверений (IdP)» в «мое весеннее приложение в качестве поставщика услуг (SP)».
(IV) Подтвердить систему единого входа SAML, предоставленную Ping Federate (в качестве поставщика удостоверений (IdP)) для моего весеннего приложения (в качестве поставщика услуг (SP))
(a) Доступ к конечной точке SSO, инициированной Ping Federate IdP, для «моего весеннего приложения в качестве поставщика услуг (SP)»
https://ping.example.com:9031/idp/startSSO.ping?PartnerSpId=spring.security.saml.sp.id
(b) Отправьте свои учетные данные имени пользователя/пароля (например, johndoe/password) локальной учетной записи пользователя Ping Federate во всплывающем диалоговом окне.
(c) Вы успешно перенаправлены и вошли в мое весеннее приложение в качестве поставщика услуг (SP).
Следующее сообщение будет отображаться на главном экране моего весеннего приложения в качестве поставщика услуг (SP).
Success User:johndoe
You are authenticated!