Как стать поставщиком услуг SAML

Моя компания в настоящее время разрабатывает веб-приложение на Java. У пары наших клиентов есть внутренние серверы SAML (поставщики удостоверений?), И они попросили нас интегрироваться с ними. Так недавно я я читал об этом и играл с OpenAM. Примерно через 3 дня у меня есть общее представление об этом, но все еще есть некоторые пробелы в моих знаниях. Я надеюсь, что кто-нибудь сможет прояснить это для меня.

Вот как я представляю себе рабочий процесс входа пользователя в систему.

Давайте определим сервер SAML наших клиентов как https://their.samlserver.com . Итак, пользователь приходит в наше веб-приложение за защищенным ресурсом. Допустим, этот URL-адрес http://my.app.com/something .

Итак, если я прав, my.app.com - это то, что SAML определяет как Поставщик услуг . Наше приложение понимает, что этому пользователю необходимо войти в систему. Затем мы представляем пользователю такую ​​страницу ...


И эта someBase64Data должна быть base64 закодированной версией этого ...


 http://my.app.com
 

Итак, моя первая пара вопросов.

Что такое ID значение должно быть?

И почему я могу объявить себя Эмитентом ?

Знает ли обо мне поставщик удостоверений? Возможно это тот Круг доверия , который я видел на OpenAM . И если он знает обо мне, как он узнает обо мне и что ему нужно знать?

Итак, после того, как пользователь перенаправляется на эту страницу, он попадает на страницу, предоставленную IDP https: / /their.samlserver.com . Они проходят аутентификацию на этой странице, и IDP творит чудеса, проверяя аутентификацию и находя пользователя. После успешной аутентификации IDP отправляет обратно определил здесь .

Еще несколько вопросов.

Во-первых, как возвращается в мое веб-приложение, поэтому Я могу это проверить?

И что я должен искать в этом ответе, чтобы подтвердить его успешность? Как выглядит сбой?

В настоящее время мы используем адрес электронной почты (LDAP) для идентификации пользователей, поэтому мы, вероятно, возьмем его из ответа и будем использовать так же, как сейчас. Что еще я должен учитывать в этом ответе?

Итак, теперь, когда мы проверили этот ответ на достоверность, мы можем предоставить пользователю сеанс, как мы это делаем сейчас. Но когда они хотят выйти, есть ли для этого рабочий процесс? Обязательно ли мне уведомлять IDP о том, что пользователь ушел?

И, наконец, Есть несколько тем, которые я часто обсуждаю при чтении, и я не уверен, как они вписываются в этот рабочий процесс. Это Круг доверия , Токены и Артефакты .

Всем спасибо за любую помощь. Я нашел много информации за последние пару дней, и, возможно, я смогу собрать их воедино, немного поиграв. Но я еще не нашел простой статьи о рабочем процессе «Вот пост». Может быть, это потому, что я ошибаюсь в том, как это работает. Может это потому, что это не так популярно. Но я действительно хотел убедиться, что у меня есть рабочий процесс, чтобы не пропустить важный шаг в такой важной вещи, как аутентификация пользователя.

79
задан Duncan Jones 22 July 2019 в 08:34
поделиться