Подтвердить что ты не робот

Аутентификация мобильных пользователей против SAML IDP

Я ищу решение для - аутентификации пользователей мобильных приложений против SAML IDP и получил некоторые основные запросы (я новичок в SAML, OAuth:)) В этом случае поток может быть похож на то, что мобильный пользователь будет аутентифицирован IDP, ответ SAML, сгенерированный IDP, отправляется поставщику услуг (через мобильный браузер - веб-просмотр). Затем поставщик услуг создаст токен, который будет использоваться мобильным приложением для последующих вызовов. Правильно ли это понимание?

Кроме того, как мобильный пользователь будет аутентифицироваться в IDP, я имею в виду, должен ли соответствующий IDP поддерживать мобильные приложения? Экран входа IDP будет отображаться на мобильном устройстве во время входа в систему?

В моем приложении в настоящее время пользователь мобильных (Rest API) пользователя аутентифицируется против своих учетных данных приложения в базе данных. Но теперь настольное приложение включает SAML для аутентификации. Таким образом, мобильные пользователи должны быть аутентифицированы против SAML IDP.

Спасибо заранее!

4b9b3361

Ответ 1

Да, ваше понимание верное. Чтобы использовать SAML IDP с мобильными клиентами, вам нужно пройти тот же процесс, что и на обычных клиентах (AuthnRequest → Обмен ответами между SP и IDP). Весь поток может выглядеть так:

  • ваше мобильное приложение открывает WebView, который обращается к общедоступному URL вашего SP
  • ваш SP запускает аутентификацию с помощью IDP, отправив перенаправление на SAML IDP с помощью AuthnRequest
  • пользователь аутентифицируется внутри интерфейса IDP (который должен иметь возможность корректно отображать для мобильных клиентов при его открытии с использованием мобильного клиента).
  • IDP перенаправляет обратно на ваш SP с ответом
  • процессы вашего SP-приложения Response и генерирует токен, который можно использовать с вашими API-интерфейсами Rest
  • SP передает токен обратно в мобильное приложение (например, с помощью WebViewClient + onPageFinished + cookie или вызывает объект, предоставленный с помощью addJavascriptInterface или что-то еще, что вы уже используете)

По сравнению с обычной мобильной аутентификацией с IDP (например, с использованием OAuth 2 для Facebook/Google), SAML сложнее. С помощью OAuth 2.0 легко извлечь токен авторизации и перехватить ответ, используя специальную схему URL, без необходимости использования развернутого (SP) компонента. Поскольку SAML не поддерживает поток, подобный "неявному" в Oauth (по соображениям безопасности), и поскольку обработка ответа SAML намного сложнее (из-за XML-подписи, шифрования XML...), этот подход невозможен при использовании SAML.