Skip to content

AlexKarandash/sso-saml-example

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 

Repository files navigation

sso-saml-example

Пример реализации sso через SAML

Собираем maven'ом mvn clean install и запускаем приложение командой jetty:run

Логика приложения простая и применимая для любого сервиса. Приложение предлагает пользователю ввести email, если для этого домена не настроено SSO SAML, то приложение ругается на то, что юзер не может SSO. Если же настроено, то смотрим на какой IdP настроен данный домен, формируем сообщение и перенаправляем запрос туда. После успешной аутентификации получаем сформированное сообщение на наш ACS URL от IdP, из сообщения берем email, берем сертификат для данного домена и проводим валидацию сообщения. В случае успешной проверки берем атрибуты из сообщения FirstName, LastName. Если пользователь уже существует меняем ему значения этих атрибутов в нашем сервисе. Если пользователя еще нет, то создаем его. В пример SSO доступно двум доменам: example.com и realtimeboard.com. Их настройки лежат в файлах example.com.properties и realtimeboard.com.properties соответственно. Для себя можете настроить сколько угодно доменов. В примере они идентичны. У себя же для домена realtimeboard.com я ставил настройки для нашего девелоперского аккаунта из OneLogin (при необходимости для себя так же можете создать его, либо настроить дргуие доступные). Для домена example.com стоят настройки перехода к IdP okta. Можно с него сразу переходить в приложение, а можно с приложения редиректится на него, а он уже обратно после Sign In. В обоих случаях ему надо заполнить данные в форме, главное ему указать Вашу ссылку acs, в примере это http://a59200b0.ngrok.io/sso/acs

Для корректной работы примера необходимо будет поменять свойство acsUrl=http://a59200b0.ngrok.io/sso/acs в файле common.properties. Это внешняя ссылка Вашего приложения, которая обрабатывает saml запросы. В примере главная http://a59200b0.ngrok.io/sso и эту ссылку обязательно надо открыть, чтобы инициализировать SAML библиотеки, а обработчик сообщений от IdP http://a59200b0.ngrok.io/sso/acs. Для размещения локального проекта в вебе и генерации этой ссылки помог сервис ngrok. Дизайн решения и обсуждение было на доске нашего сервиса.

About

Пример реализации sso через SAML

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages