Центральный вход в систему с помощью SAML и создание сайта для работы в качестве поставщика удостоверений личности


Итак, мой сценарий выглядит так:

У меня есть два сайта a.com и сайт b.com и один сервер аутентификации cauth.com.

Чего хочет клиент, так это...

Когда пользователь приземляется на a.com или b.com пользователь заполняет форму входа на соответствующем сайте, но действие формы будет cauth.com (cauth.com/authenticate). когда пользователь проходит аутентификацию на cauth, он регистрируется на обоих сайтах.

Я думаю внедрить SAML для достижения того же и поток похож на iDP после аутентификации(cauth.com ) отправит ответ SAML как поставщикам услуг, так и пользователю, которому будет предоставлен доступ к обоим сайтам.

Я новичок в SAML и не могу получить надлежащую документацию и понимание для того же самого.

Что я хочу знать, так это:

  1. Стоит ли реализовывать мое решение проблемы?
  2. Можно ли сделать сайт (cauth.com ) в качестве поставщика удостоверений личности.Я посмотрел на поток , создающий ваш PHP-сайт в поставщика удостоверений SAML, но не смог получить правильное решение.
 12
Author: Community, 2015-05-30

6 answers

SimpleSAMLphp должен быть довольно простым в настройке. Вы захотите сделать копию папки modules/exampleauth/, а затем изменить файл modules/<yournewmodule>/lib/Auth/Source/External.php, чтобы он работал для вашего сайта. Документация, тем не менее, хорошая, и это определенно самая простая вещь для ваших нужд и правильная.

Я должен добавить, что следование инструкциям по настройке SimpleSAMLphp должно дать вам базовое представление о том, какие файлы метаданных наиболее важны, где они находятся и как все взаимодействует.

 2
Author: chad_, 2015-06-04 19:46:20

Я не уверен, какую технологию вы используете для своего приложения. Если вы можете свободно переключиться на JAVA, я могу предложить вам Spring-Saml, потому что его очень легко реализовать и выполнить ваши требования. Spring-Saml имеет хорошую документацию и онлайн-поддержку, а также является проектом с открытым исходным кодом. Вы можете сослаться на эту ссылку для Spring-saml, а для репозитория кода используйте эту ссылку

Вы можете интегрировать spring-saml в свой abc.com и xyz.com приложение, чтобы сделать это Поставщик услуг (SP), и вы также можете развернуть его в другом домене. Затем вам необходимо иметь один IDP (сервер поставщика удостоверений личности) для вашего SPs. Таким образом, вы можете использовать ADFS с Active directory или LDAP в качестве IDP.

У нас было аналогичное требование к нашему клиенту. Недавно я интегрировал spring-saml в свой проект.

Пожалуйста, дайте мне знать о любой помощи

 2
Author: ManojP, 2015-06-05 11:10:02

Механизм единого входа в систему (SSO), такой как SAML или OpenID Connect, даст вам то, что вы хотите.

Это связано с важным отличием, что форма входа не будет представлена на a.com или b.com, но эти сайты скорее перенаправят на cauth.com, и пользователь будет проходить аутентификацию там. cauth.com затем отправит проверяемое "утверждение" a.com и b.com о том, что пользователь успешно прошел проверку подлинности. Это составляет одну из основных целей федеративного единого входа, а именно то, что учетные данные пользователя не должны предоставляться/храниться на иностранных веб-сайтах и делают средства аутентификации независимыми от целевых веб-сайтов ("Полагающиеся стороны").

Итак, что вам следует искать, так это подходящую реализацию SAML или OpenID Connect для вашей платформы (не пишите ее самостоятельно!) и используйте это.

 1
Author: Hans Z., 2015-06-05 11:30:05

Shibboleth является открытым исходным кодом и одним из самых популярных решений единого входа. Он включает в себя Поставщик удостоверений SAML, который вы можете скачать здесь: https://shibboleth.net/downloads/identity-provider/latest/ .

Если ваш клиент готов, одним из подходов было бы использование облачного поставщика единого входа, такого как Okta, который имеет программу разработчика и может упростить задачу.

 0
Author: Grokify, 2015-06-06 03:30:56

Я думаю, что в вашем описании есть тонкое недоразумение. Для аутентификации SAML, если пользователь на сайте a.com либо нажимает ссылку/кнопку для входа в систему, либо пытается получить доступ к защищенной странице, этот пользователь получит перенаправление http 305 на cauth.com . Там пользователь введет свои учетные данные, и пользователь будет перенаправлен обратно на a.com . Если этот пользователь затем перейдет на сайт b.com и пытается получить доступ к защищенному контенту, b.com отправляет пользователя на cauth.com с тем же перенаправлением http 305. На этот раз, так как есть активный сеанс для браузера пользователя по адресу cauth.com , пользователь НЕ видит форму учетных данных. Вместо этого IDP возвращает пользователя с успешной аутентификацией в b.com . Пользователю кажется, что они автоматически вошли на сайт b, но на самом деле произошел поток аутентификации SAML.

Ответ Ганса Z исключает тот факт, что IDP отправляет утверждения только по запросу a или b (Проверяющие стороны или RP, также известные как Поставщики услуг или SPs). Это не трансляция для всех RPS.

Я подчеркну, что SAML НЕ поддерживает a.com получение учетных данных от пользователя и последующая передача их в механизм аутентификации. Это шаблон, с которым можно ознакомиться по LDAP.

Взгляните на диаграмму последовательности в статье википедии о SAML.

 0
Author: judielaine, 2015-06-08 23:32:45

Следуйте приведенной ниже инструкции, чтобы получить имплиментацию SAML с PHP.

  • Настройка входа в SAML очень проста в php.
  • Сначала зарегистрируйтесь на сервере onelogin https://www.onelogin.com/signup и создайте на нем демонстрационное приложение. После этого следуйте всем инструкциям, чтобы установить Idp (настройка поставщика удостоверений) и sp (настройка поставщика услуг) в settings.php https://developers.onelogin.com/saml/php

Это идеально сработало для меня с CI и и php

 -2
Author: amba patel, 2017-11-25 09:52:55