Как я прочитал в книге обсуждаемой здесь:
https://salesforce-developer.ru/forum/topic-byt-sf-konsultantom-arhitektorom-analitikom
и как виже на практике, SFDC приходит на предприятие как расширение уже сущетсвующей системы.
пользователи логятся в свою родную систему и оттуда бесшовно входят в СФ аккаутн через SSO.
я этим впорос не занимался, но вижу что люди сталкиваются с многими проблема (порой залогивания просто не происходит).
у кого-то был опыт наладки SSO? как это все работает? какие проблемы?
Посмотри мои две статьи (единственные
) на
http://salesforce-developer.net/
Была когда-то задумка завоевать сердца англоязычных SF разработчиков ![]()
Отлично, буду изучать.
Предупрежу сразу - задача одна из топовых по сложности.
Все потому, что надо больше настраивать третью сторону - с кем ты собираешься интегрироваться.
Я экспериментировал с PHP с готовым популярным приложением. И то мне пришлось всю документацию перелопатить раза три. Я никогда так не вчитывался в документации
чтобы понять что там для чего.
осталось добавить, что у SF есть guide и на эту тему:
Single Sign-On Implementation Guide - Salesforce.com
как и все другие guides, это документ есть и в виде ПДФ, но я предпочитаю htm вариант.
Я им в основном и пользовался при изучении, и еще вот это разбирал по кубикам
Single Sign-On with SAML on Force.com
Тут опять же повторюсь важно знать и противоположную сторону.
Den, ты с какой платформой планируешь связывать свой орг?
Я проводил опыт над SimpleSAMLphp (php на то время был ближе
)
но есть куча других библиотек и готовых приложений бизнес уровня.
да в том то и дело, что нет доступа к головной платформе. Работать я буду с админом той платформы. Он вроде в этом всем SSO разбирается, осталось только самому разобраться, чтобы кооперация была эффективной.
Ну тогда это все сильно упрощает.
На стороне SF тебе только разобраться с парой настроек.
Моих исследований должно хватить выше крыши.
Только вот еще вспомнил
(только сейчас) там должно было быть 3 статьи. По ходу не хватило у меня сил или что-то мне помешало. 3 статья должна была быть самая интересная - как автоматически создавать пользователей на стороне Salesforce если их не было, но пользователь залогинился со стороны сервиса SSO. В принципе там ничего сложного, но результат очень понравился
Собственно такой результат и должен быть итогом настройки SSO.
Хотя с другой стороны автоматическое создание пользователей на стороне SF очень "опасная штука" - если это дело не проконтролировать, то можно быстро лишиться всех лицензий. Лучше конечно мигрировать пользователей вручную и уже потом открыть им доступ по SSO. Хотя опять же зависит от требований.
вот тут есть хороший рисунок на тему.
https://blog.surfnet.nl/?p=1417
как понял это работает так.
в страницу головного портала (IDP) заАйФремина орговая стандартная или кастомная или портальная страница СФ (SP), которая при загрузке делает пост реквест на спец страницу IDP и в тело поста закладывается SAML с инфой "я СФ орг такой то" в виде сертификата, а кто этот пользователь? И если юзер уже залогился в головной портал (а это так и будет), то IDP без труда определяет юзера, так как вызов идет с того браузера. И делает ответный ПОСТ реквест на спец страницу SP (нашего СФ орга) куда шлет ответный SAML с сертификатом IDP (я такой-то) и фед айди пользователя. ПОсле этого CФ сверяет данные и если все ок, то залогивает пользователя и переводит на изначально вызванную страницу.
Так получается? Но не понятно, а с чего бы это наша заАйФременная простая орговая (или портальная) страница вдруг сделает редирект браузера на спец страницу IDP с запросом "А хто енто ломится в Орг?". Вот это вопрос! Или изначально в айфрейм загружаем не целевую страницу Орга (куда и хотим попасть) и другую, специальную страницу которая знает как себя вести (то есть делает ПОСТ на IDP) .. вот это еще не понятно... и если это так, то как задается целевая страница, т.е страницу куда в принципе нужно попасть... а если через разные страницы головного портала мне нужно попадать на разные страницы СФ...
PS: подумал, если наш орг зайфремин в головной портал, то зачем вообще делать запрос от Орга (как это на рисунке в ссылке выше). В айфрем просто в адрес указывается наша спец страница для лога в СФ орг, и головной портал просто сходу отправлят ответ с именем пользователя, а та СФ страница образаобывает это и делает редирект куда-надо (а как делает?).
да, много написал, но пока это мои размышления о том как это все работает.
И как итог, мы должны знать и указать в настройках Орга спец страницу IDP, а он в свою очередь должен знать нашу спец страницу для ответа. И оба должны знать сертификаты др друга. Плюс разумеется фед айди для пользователей.
Плюс настройка еще двух страниц: для логаута и ошибки лога. как я понимаю это могут быть стандартные СФ стрнаицы или... кастомные СФ сттраницы или вообще не орговые СФ страницы а страницы внешнего портала, это пока не сообразил.
Дело в том что SSO работает на главной странице login Salesforce (насколько мне получилось понять). Получается что если просто откроешь орговую страницу или вставишь ее в ифрейм и попытаешься посмотреть, то Salesforce покажет тебе вместо этого страницу логина, на которой уже есть кнопка для входа через SSO (под логином и паролем стандартными). Нажав на эту кнопку тебе несколько раз редиректнет (в рамках того же iframe) и в итоге ты увидишь нужную орговую страницу (или home page наверное, надо проверять)
Получается что процедуру авторизации на SF надо проходить в любом случае, только с SSO она упрощается до нажатия одной кнопки вместо ввода своих кредов.
Вот как это дело автоматизировать (сделать невидимым для пользователя) вопрос!
как кнопка?!
я думал что там просто открываешь страницу с айфреймом, содержимое фрейма делает редиректы с сообщениеми для систем и вот ты уже видишь целевую страницу...
будет время спрошу своих коллег как это выглядит в Проде.
Да, обязательно уточни.
пока то что мне удалось выжать из SSO это просто дополнительная кнопка на странице login.
Вот как тут внизу n24idp

Не знаю у нас на проекте все работает чудесно, на основе ActiveDrectory
ActiveDrectory это имеется в виду третья сторона, которая возвращает идентифицированного пользователя - identity provider. Я правильно понимаю. А на стороне SF как это организовано? Я так понял что пользователь на SF идентифицируется автоматом - ему не надо ничего нажимать?
Так точно. Для пользователя происходит все абсолютно прозрачно.
А в двух словах, как это работает?
Заходит товарищ на страницу Salesforce.
Получается вместо страницы login его отправляет на SSO провайдера.
Очень интересно.
Есть у меня догадка, но надо проверять.
Помню когда изучал SSO, то в настройках включал его вместе со стандартным логином.
Поэтому наверное я видел страницу логина с дополнительной кнопкой.
Но вроде стандартный логин можно было отключить, и остался бы один SSO, и в этом случае он наверное будет отрабатывать автоматом.
При использовании SAML вся магия происходит на стороне IDP.
В случае использования, например, ADFS, пользователи переходят на ADFS-ную ссылку, вида locallink.com/adfs/ls/idpinitiatedsignon.aspx?loginToRp=https://saml.salesforce.com
AD уже генерит сессию и редирректит по прописанному в настройках AD адресу, вместе со сгенерированной сессией, которую принимает форс.
надо, надо как нибудь засесть и изучить SAML и SSO теорию самым внимательных образом - в будущем это пригодится, можно и не сомневаться.
не подскажите какие хорошие статьи об этом на русском?
Увы, только на английском. Все стоящие ссылки в контексте SFDC перечислены выше.
Опять таки, все упирается в третью сторону - Identity Provider-а. + в контексте форса хорошо бы ознакомиться как с SAML, так и с oAuth и Delegated Authentication, дабы лучше понять основные кейсы использования.
Если хочется углубиться в "магию третьей стороны" по теме SAML, то можно посмотреть статью на хабре:
http://habrahabr.ru/post/151006/
Ну хорошо, что теперь на форуме есть участник, кто в этом хорошо разбирается. Будет у кого спросить, когда дело дойдет до реальной настройки и проблем по теме.
Есть у меня "американском" сайте про Salesforce с двумя статьями про SSO. Как-то давным давно решил запечатлить для истории мои эксперименты с SSO для Salesforce на базе PHP. (красоту моего английского в статьях прошу не комментировать
времени и сил не было дать кому-нибудь это дело не проверку). Год статьи пылились и нафиг никому не нужны были, а сейчас резко объявились товарищи которым позарез надо настроить этот самый SSO. Проблема в том что мой эксперимент закончился можно сказать на полпути, поэтому, естественно, что они могу сделать все по моей инструкции, но дальше - фиг. Помочь я тоже особо не могу в связи с нехваткой всего чего может нехватать.
К чему я - есть заинтересованные люди, которым нужно SSO, возможно потенциальные клиенты
Кому интересно, можете запостить туда коммент с контактными данными и предложением помощи, я заапрувлю.
http://salesforce-developer.net/salesforce-sso-with-simplesamlphp