Проверка подлинности API REST с помощью SAML

Я изо всех сил пытаюсь разработать аутентификацию SAML2.0 для REST API с использованием шлюза. REST используется между моим бэкэнд и моим приложением. Я использую фильтр Java Servlet и Spring.

Я вижу две возможности:

  • Добавление токенов SAML в заголовок каждый раз.

  • Аутентификация один раз с помощью SAML, а затем использование сеанса или аналогичного (безопасный разговор) между клиентом и шлюзом.

Случай 1: Это хорошее решение, потому что мы все еще RESTful, но:

  • Знаки SAML довольно большие. Это может вызвать проблему из-за большого размера заголовка.
  • Воспроизведение жетонов - не лучший способ для безопасности.

Случай 2: Он больше не имеет гражданства, и мне нужно управлять ссылкой с клиентом. Поскольку я использую шлюз, базовые службы все еще могут быть RESTful.

Случай 2 ищет лучший выбор, несмотря на то, что он не соответствует остальным ограничениям.

Кто-то уже должен был это сделать и дать мне несколько указателей (для разработки или реализации)?

Есть ли лучший способ сделать это с помощью SAML?

Любая помощь или совет приветствуются.

Ответ 1

Он все еще черновик, но: профиль канала OAuth2 SAML может быть возможным решением. http://tools.ietf.org/html/draft-ietf-oauth-saml2-bearer-17

Используйте SAML2 для аутентификации поставщику OAuth2, затем вызовите свою службу с помощью токена OAuth2.