После 3-х дней мучений и бесплодных попыток настроить SSO для SalesForce спешу поделиться с сообществом правильным способом решения проблемы, чтобы будущие поколения не тратили кучу драгоценного времени на биение головой о стену.
Если вам интересно, пожалуйста, посмотрите кат. О том, что это такое SSO (единый вход) Вики вам расскажет лучше, ведь я не мастер высокого стиля.
В целом проект требовал организовать SSO-поддержку такого сервиса как SalesForce .
Поскольку язык используется для общения между серверами SAML было решено помучить гугл поисками готовой реализации.
После упорных поисков была найдена библиотека OpenSAML для генерации SAML, которая спасла вселенную от рождения очередного велосипеда.
Прежде всего, мы сгенерируем сертификаты.
Я использовал keytool из JDK, но вы также можете использовать OpenSSL:
После того, как ключи были сгенерированы, вам необходимо настроить SalesForce, чтобы разрешить вход с использованием единого входа.keytool -genkey -keyalg RSA -alias SSO -keystore keystore keytool -export -alias SSO -keystore keystore -file certificate.crt
Лучшие инструкции находятся на их вики - Единый вход с использованием SAML на Force.com .
Статья хорошая и большая, но нам нужен только один пункт «Настройка Force.com для SSO».
Да, и с небольшими изменениями: поскольку моя реализация передает имя пользователя в элементе NameIdentifier, мы оставляем переключатели в состоянии по умолчанию: «Утверждение содержит имя пользователя пользователя salesforce.com» и «Идентификатор пользователя находится в элементе NameIdentifier элемента Предметное заявление».
Поскольку была найдена пара примеров для работы с библиотекой OpenSAML, был быстро написан простой генератор, подходящий для нужд тестирования.
После суток работы по вылизыванию кода был получен генератор, генерирующий валидный SAML (по версии валидатора SalesForce).
Ниже приведен отполированный код.
Так как помимо SalesForce планируется добавить поддержку и других сервисов, то генератор разделен на несколько классов: общую часть (SAMLResponseGenerator), реализацию для SalesForce (SalesforceSAMLResponseGenerator) и программу для запуска всего этого бардака: SAMLResponseGenerator.java: public abstract class SAMLResponseGenerator {
Теги: #java #saml #SSO #программирование #java
-
Интернет-Технологии: Формирование Сети
19 Oct, 24 -
Нам Нужны Твои Мозги
19 Oct, 24 -
Фильтрация Запросов На Уровне Dns
19 Oct, 24 -
Расширение Google I/O В Москве
19 Oct, 24 -
Поиск Статей В Журналах На Английском Языке
19 Oct, 24