Как пройти аутентификацию из моего заявления на SSO моего клиента - PullRequest
0 голосов
/ 18 октября 2018

Я занимаюсь разработкой веб-приложения с использованием EC2 на AWS.

В этом приложении мой клиент запрашивает использование его единого входа (единого входа), чтобы я мог проверить пользователя по его Active Directory.Моя проблема в том, что я не могу понять, с чего начать, вот некоторые из моих вопросов:

1) Это SSO происходит в моем коде или на моем сервере?

2) Нужно ли создавать различные конфигурации для различных сред развертывания (например, aws, azure, digitalocean и т. Д.)?

3) Где я могу определить, отправить и проанализировать формат SAML 2.0?

4) У меня есть запрос POST на сервер, на котором установлен SSO?Или как это сделать?

Пока я нашел этот учебник , но я все еще не знаю, что делать в первую очередь, поэтому любая пошаговая информация поможет.

Ответы [ 2 ]

0 голосов
/ 19 октября 2018

Сначала вам понадобятся метаданные SAML2 клиента (Idity Provider IdP).Он будет иметь URL-адрес конечной точки единого входа и сертификат подписи X509.

Затем вы отправите им свои метаданные SAML2 с URL-адресом службы поддержки пользователей (ACS) и сертификатом подписи X509.

Образец метаданных здесь .Или вы можете создать его здесь .

Сертификаты - это, как правило, долгоживущие самозаверяющие сертификаты.Они могут быть самозаверяющими, поскольку каждая сторона имеет копию сертификата другой стороны, которую они будут использовать для проверки подписанного запроса и ответа.

Вы создаете SAMLRequest и отправляете его по URL-адресу единого входа.Здесь приведен пример запроса здесь .

Они отображают свою страницу входа в систему пользователю, и пользователь аутентифицируется на своем конце.

Они собирают атрибуты для пользователя из своей Active Directoryи включите их в атрибуты SAML и поместите их в SAMLResponse.

Они ПОСТАВЛЯЮТ SAMLResponse в ваш URL ACS.Вот пример ответа здесь .

Вы проверяете подпись на их SAMLResponse, используя их сертификат X509 из их метаданных SAML2.

Вы извлекаете атрибуты SAML из их проверенныхSAMLResponse и выполните соответствующие действия в вашем приложении, например, создайте учетную запись пользователя, возможно, его адрес электронной почты является одним из их атрибутов.

Вышеуказанное называется профилем единого входа SAML2 Web Browser, объяснено здесь .

0 голосов
/ 18 октября 2018

В зависимости от вашего стека, вы можете использовать что-то вроде:

  • Shibboleth (промежуточное программное обеспечение, устанавливается на ваш сервер, оно прерывает запросы к определенным путям, требующим Authn для Identity Provider [ADFS]и возвращает пользователя после успешной авторизации, устанавливая некоторые атрибуты, сообщающие вам информацию о пользователе, такую ​​как имя пользователя и т. д.). Лучше всего работает, если вы можете разделить защищенный контент по определенному пути на сайте, например /secure.

  • SimpleSAMLphp (защита ресурсов PHP напрямую)

  • Коммерческий SAML (ComponentSpace и т. Д. - хорошо работает, если приложение .Net)

По сути, найдите что-то для своего стека. НЕ ПЫТАЙТЕСЬ СДЕЛАТЬ СВОЮ РЕАЛИЗАЦИЮ SAML!

...