Вопрос или проблема
Я работаю над приложением для планшета и столкнулся с интересной проблемой.
У нас есть планшет, присоединенный к домену, на котором работает приложение Windows Store. У нас уже есть идентификация пользователя, и нам нужно вызвать конечную точку веб-сервиса, защищенную SAML.
Мне нужно обратиться к IDP, чтобы получить SAML-токен и передать его вместе с вызовами веб-сервиса? Или будет достаточно идентификационного объекта, чтобы получить контекст идентификации моего вызова?
Веб-сервис – это сервис SAP, который принимает только SAML.
Не имеет значения, что у вас есть идентификация, если вы не являетесь доверенным IDP для сервиса, который защищает свои ресурсы с помощью SAML. Сказав это, если у вас есть SAML-ответ от IDP, которому сервис доверяет, то вы должны иметь возможность отправить это им как токен SSO.
Ответ или решение
Ваша задача состоит в том, чтобы обеспечить надлежащую аутентификацию при вызове веб-сервиса, защищенного стандартом SAML, с вашего планшетного приложения. Рассмотрим основные моменты, которые необходимо учесть в этом контексте.
1. Понимание SAML и его контекста
SAML (Security Assertion Markup Language) — это стандарт, который позволяет обмениваться аутентификационной и авторизационной информацией между сторонами, называемыми провайдерами идентификации (IdP) и сервис-провайдерами (SP). Ваша целевая веб-служба, защищенная SAML, требует валидного SAML токена для получения доступа.
2. Необходимость получения SAML токена
Чтобы авторизоваться в веб-службе, вам действительно необходимо получить SAML токен от IdP, которому доверяет данная служба. Независимо от того, что у вас уже есть объект идентичности, для доступа к ресурсам, защищённым SAML, требуется именно SAML токен. Объект идентичности может содержать информацию о пользователе, но существующая аутентификация [например, Active Directory] не будет достаточной для авторизации в SAML.
3. Процесс получения SAML токена
Для получения SAML токена вам потребуется:
-
Аутентификация пользователя – пользователь должен пройти аутентификацию через IdP. На данном этапе IdP проверит идентификационные данные пользователя, например, с использованием логина и пароля или других механизмов.
-
Запрос SAML токена – после успешной аутентификации IdP выдаст SAML токен, который содержит утверждения об идентичности пользователя.
-
Использование токена – полученный SAML токен вы должны отправить при вызове защищённого веб-сервиса. Это необходимо для того, чтобы сервис мог подтвердить, что запрос исходит от аутентифицированного и авторизованного пользователя.
4. Как передать SAML токен в веб-сервис
Когда вы отправляете запрос к веб-сервису SAP, вам следует включить SAML токен в заголовок HTTP-запроса или в тело POST-запроса в зависимости от специфики реализации веб-сервиса. Эта информация будет использована сервером для проверки ваших прав доступа на ресурсы.
5. Доверие между IdP и SP
Обратите внимание, что IdP, откуда вы получаете SAML токен, должен быть доверен вашей целевой SAML-службой. Это означает, что служба должна быть настроена для приема токенов от этого конкретного IdP, что обычно осуществляется через метаданные или предварительную реестрацию.
Заключение
Таким образом, в вашем случае для успешного вызова веб-службы SAP, защищенной SAML, необходимо провести аутентификацию через доверенный IdP, получить SAML токен и затем использовать этот токен в ваших запросах к веб-сервису. Понимание структуры и требований SAML помогут вам обеспечить безопасный и корректный доступ к необходимым ресурсам.