Я новичок в реализации SSO. Мы рассматриваем внедрение единого входа для клиента, который использует приложение php (поддерживается нами), чтобы его сотрудники могли войти в приложение. Мы находимся в процессе настройки Simple SAML для этого … Я читал статьи по SSO, многие из которых полезны. Простите, что спросил это, я знаю, что это глупо. В этом сценарии, кто является ВПЛ и кто будет поставщиком услуг. Клиент, очевидно, использует SSO и для других приложений. Может ли кто-то пролить свет на то, что все, что мне нужно настроить с нашей стороны … Я исследую, как сделать каждый из них … Может ли кто-нибудь помочь, упомянув, что необходимо реализовать.
кто является ВПЛ и кто будет поставщиком услуг.
IDP (Identity Provider) — это тот, кто создает, хранит, поддерживает и аутентифицирует личность пользователя или принципала в терминах saml. Так что в вашем случае это клиентское приложение.
SP (поставщик услуг) — это тот, кто предоставляет услугу или ресурс пользователю (аутентифицированному IDP), поэтому в вашем случае это ваше приложение.
Может кто-то, пожалуйста, помогите, упомянув, что должно быть реализовано.
Как видно на диаграмме выше, когда пользователь попытается получить доступ к ресурсу на вашем сайте, вам нужно будет перенаправить его в IDP, чтобы подтвердить, аутентифицирован ли этот пользователь или нет, и вы должны предоставить ему ресурс, который он ищет. URL-адрес единого входа и другие детали передаются между IDP и SP через метаданные.
Как только IDP подтвердит подлинность пользователя, он отправит ответ на URL вашего приложения. Этот ответ содержит утверждение с помощью которого вы будете знать некоторые пользовательские данные, и будет ли пользователь аутентифицирован или нет. Вам придется проанализировать этот ответ (xml). Кроме того, эти утверждения обычно подписываются сертификатом и кодируются на основе 64.
Вам также придется подумать о SLO, поэтому, когда пользователь нажимает на выход из системы на вашем сайте, вам, возможно, придется очистить свой сеанс от вашего приложения и перенаправить их в IDP, чтобы они также вышли из него.
Как предлагает smartin, вы можете использовать некоторую библиотеку, которая облегчит реализацию SAML. Я также узнаю о SAML, поскольку мы работаем над преобразованием нашего текущего приложения в IDP 🙂
Я нашел эту официальную документацию SAML и некоторые диаграммы очень полезными. http://docs.oasis-open.org/security/saml/Post2.0/sstc-saml-tech-overview-2.0-cd-02.html
Ваше приложение — SP, и клиент предоставит вам метаданные IdP для регистрации на вашем SP.
Чтобы добавить поддержку SAML в приложение PHP, у вас есть 2 варианта:
Все они хорошо документированы, вам придется потратить некоторое время на чтение / обучение.