Внедрение Системы Единого Входа Для Salesforce

После 3-х дней мучений и бесплодных попыток настроить SSO для SalesForce спешу поделиться с сообществом правильным способом решения проблемы, чтобы будущие поколения не тратили кучу драгоценного времени на биение головой о стену.

Если вам интересно, пожалуйста, посмотрите кат. О том, что это такое SSO (единый вход) Вики вам расскажет лучше, ведь я не мастер высокого стиля.

В целом проект требовал организовать SSO-поддержку такого сервиса как SalesForce .

Поскольку язык используется для общения между серверами SAML было решено помучить гугл поисками готовой реализации.

После упорных поисков была найдена библиотека OpenSAML для генерации SAML, которая спасла вселенную от рождения очередного велосипеда.

Прежде всего, мы сгенерируем сертификаты.

Я использовал keytool из JDK, но вы также можете использовать OpenSSL:

  
   

keytool -genkey -keyalg RSA -alias SSO -keystore keystore keytool -export -alias SSO -keystore keystore -file certificate.crt

После того, как ключи были сгенерированы, вам необходимо настроить SalesForce, чтобы разрешить вход с использованием единого входа.

Лучшие инструкции находятся на их вики - Единый вход с использованием 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

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.