Как настроить SAML Spring Security для работы с Okta?

Я пытаюсь сделать spring-boot-security-saml-sample Приложение работает с Okta. Чтобы добавить Okta в качестве поставщика, я внес следующие изменения в WebSecurityConfig.java:

https://gist.github.com/mraible/c8b52972f76e6f5e30d5

Я нашел следующий вопрос, который дает некоторые рекомендации, но я не могу заставить все работать.

настройка saml-sample (SP) для работы с Okta (IdP)

Вот что я использую для значений в Okta:

Application label: Spring Boot SAML App
Force Authentication: false
Post Back URL: http://localhost:8080/
Name ID Format: EmailAddressRecipient
Recipient: http://localhost:8080/saml/SSO/alias/defaultAlias
Audience Restriction: com:vdenotaris:spring:sp
authnContextClassRef: PasswordProtectedTransport
Response: Signed
Assertion: Signed
Request: Compressed
Destination: http://localhost:8080/saml/SSO/alias/defaultAlias
Default Relay State: (none)
Attribute Statements: email|${user.email},firstName|${user.firstName}

По логам вроде работает:

[2014-12-30 12:18:33.004] boot - 18748 DEBUG [http-nio-8080-exec-8] --- BaseMessageEncoder: Successfully encoded message.
[2014-12-30 12:18:33.004] boot - 18748 DEBUG [http-nio-8080-exec-8] --- HttpSessionStorage: Storing message a12gf64fh3f35fgh2a8dd1fd0i0dc02 to session C5D010344EF5D022718B12B6D25F1D1E
[2014-12-30 12:18:33.004] boot - 18748  INFO [http-nio-8080-exec-8] --- SAMLDefaultLogger: AuthNRequest;SUCCESS;0:0:0:0:0:0:0:1;com:vdenotaris:spring:sp;http://www.okta.com/k2gpb06TOMYOKAWUSXJM;;;

Однако он перенаправляет меня на сайт Okta, а не обратно на мой сайт.


person Matt Raible    schedule 30.12.2014    source источник
comment
У меня нет личного опыта в этом, но я знаю, что команда идентификации Cloud Foundry сделала это. См. Исходный код здесь: github.com/cloudfoundry/login-server / tree / master / src / main /.   -  person Dave Syer    schedule 31.12.2014


Ответы (2)


Я заставил его работать! Ключ, похоже, устанавливает для запроса значение «Несжатый». Оттуда я удалил «alias / defaultAlias», так как это работает только тогда, когда вы устанавливаете псевдоним в ExtendedMetadata. Мои настройки, которые работают на стороне Okta:

Application label: Spring Boot SAML App
Force Authentication: false
Post Back URL: http://localhost:8080/saml/SSO
Name ID Format: EmailAddressRecipient
Recipient: http://localhost:8080/saml/SSO
Audience Restriction: com:vdenotaris:spring:sp
authnContextClassRef: PasswordProtectedTransport
Response: Signed
Assertion: Signed
Request: Uncompressed
Destination: http://localhost:8080/saml/SSO
Default Relay State: (none)
Attribute Statements: email|${user.email},firstName|${user.firstName}
person Matt Raible    schedule 05.01.2015
comment
Для тех, кто интегрирует Okta с Spring SAML, руководство теперь содержит базовое пошаговое руководство по интеграции для Okta, см. docs.spring.io/autorepo/docs/spring-security-saml/ - person Vladimír Schäfer; 01.02.2015
comment
@ VladírSchäfer Не могли бы вы обновить конфигурацию java по указанной выше ссылке. - person rogue lad; 13.11.2017
comment
Вот руководство, которое я обновил в прошлом месяце (октябрь 2017 г.): разработчик. okta.com/blog/2017/03/16/spring-boot-saml - person Matt Raible; 13.11.2017

Мэтт,

Попробуйте установить для «Post Back URL» значение «localhost: 8080 / saml / SSO / alias / defaultAlias».

Судя по вашей конфигурации, «localhost: 8080 / saml / SSO / alias / defaultAlias» - это конечная точка SAML на «localhost», на которую мы отправляем ответ SAML.

Прямо сейчас это "localhost: 8080 /" - ваш демонстрационный сайт, вероятно, просто перенаправляет вас обратно на Okta, а не анализирует ответ SAML.

Вы не упомянули, что вы сделали на стороне Okta, чтобы проверить это. Вот инструкции, как это сделать - https://support.okta.com/entries/27560008-Using-the-App-Integration-Wizard - с помощью нашего мастера приложений, который создает правильные конечные точки SAML IDP на стороне okta. URL-адрес для входа в SAML на стороне Okta необходим вашему демонстрационному сайту, чтобы он знал, куда перенаправлять запросы SAML.

Для получения дополнительной информации о SAML - вы можете ознакомиться с нашим руководством по SAML на нашем сайте для разработчиков - http://developer.okta.com/docs/getting_started/saml_guidance.html

Дай мне знать, как дела. Ваше здоровье

Стивен

person Stephen Lee    schedule 31.12.2014
comment
Я пробовал, но все равно не работает. Я использовал шаблон SAML 2.0 Application для создания приложения на стороне Okta. Мне удалось легко заставить работать приложения Node и Sinatra. И гораздо меньше кода. - person Matt Raible; 05.01.2015
comment
Я попытался изменить запрос на несжатый на стороне Okta и пошел немного дальше. Теперь он перенаправляется обратно в мое приложение, но я вижу в своих журналах следующую ошибку: gist.github.com/ mraible / 02ad43d4deb7823ce449 - person Matt Raible; 05.01.2015