OAuth 2.0, Open ID Connect и SAML

1

Мне нужно разработать SSO-сервер для моего клиента. Мой вариант использования заключается в том, что у меня есть два приложения, и я хочу, чтобы у них не было собственного экрана входа в систему и чтобы пользователь мог перейти от приложения 1 к приложению 2 (App 1 и App 2 имели свои собственные ресурсы, и они должен зависеть от центрального сервера аутентификации только для аутентификации и авторизации пользователя). Я читал о создании SSO-сервера в java. Я начал читать о oauth 2.0, open ID connect и SAML. Чем больше я читаю, тем больше смущаюсь.

В некоторых местах, которые я прочитал, Oauth 2.0 не может использоваться для SSO, и в каком-то месте я прочитал, что он может быть использован.

Я понимаю, как эти три работают. Тем не менее, я не могу представить, как эти три отличаются друг от друга.

Я поставил свой вопрос ниже

  1. Может использовать Oauth 2.0 для SSO
  2. Какой из них лучше b/w Oauth 2.0, SAML и Open ID для финансовой корпорации, данные которой очень чувствительны. Также мы планируем иметь собственные мобильные приложения. Который также будет использовать тот же SSO-сервер для входа в систему.
  3. Есть ли какая-либо библиотека для реализации любой из них в java. Я намерен использовать сервер dropwizard
Теги:
openid-connect
single-sign-on
saml
oauth

3 ответа

2
Лучший ответ

WRT. на "1. Можно использовать OAuth для SSO", там очень хорошо читайте здесь: http://oauth.net/articles/authentication/, который в основном говорит: "не без профиля расширения, и это делается уже как стандартный профиль называется OpenID Connect "

1

Отказ от ответственности: Я председатель CAS и основатель CAS в облаке (https://www.casinthecloud.com).

CAS также является широко используемым решением SSO. Он работает на веб-сайтах и мобильных приложениях и обладает такими мощными функциями, как шлюз, обновление и прокси. Это очень простой протокол, который вы можете понять и интегрировать очень быстро. Многие клиенты CAS во многих технологиях работают с сервером CAS. Это с открытым исходным кодом и бесплатно, или вы можете полагаться на платного провайдера, если хотите.

1

OAuth не предоставляет истинного SSO в смысле Федерации, например, используя WS-Federation/SAML и службу маркеров безопасности (STS).

OAuth фактически является протоколом авторизации, т.е. используется для согласия. OpenID Connect обеспечивает уровень аутентификации поверх OAuth.

SAML является "лучшим" выбором, например, Shibboleth, Salesforce, WorkDay и т.д. Все используют его для SSO.

Тем не менее, SAML не подходит для родных приложений, потому что браузер основан на HTTP POST. OAuth лучше подходит для этого.

Для Java SAML вы можете использовать OpenSAML.

В Spring Security есть стек OAuth.

  • 0
    Поэтому я предполагаю, что Open ID Connect - лучший выбор (учитывая собственные мобильные приложения)
  • 0
    Рассмотрите возможность использования существующего STS, который поддерживает оба. SimpleSAMLphp поддерживает SAML, OAuth и OpenID Connect и является бесплатным.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню