OAuth 2.0, соединение с открытым идентификатором и SAML

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

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

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

Я задам свой вопрос ниже

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

person syed imty    schedule 23.11.2014    source источник


Ответы (3)


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

person Hans Z.    schedule 23.12.2014

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

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

SAML - это «лучший» выбор, например. Shibboleth, Salesforce, WorkDay и другие используют его для единого входа.

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

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

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

person rbrayb    schedule 23.11.2014
comment
Поэтому я предполагаю, что Open ID Connect — лучший выбор (с учетом собственных мобильных приложений). - person syed imty; 23.11.2014
comment
Рассмотрите возможность использования существующей STS, которая поддерживает обе функции. SimpleSAMLphp поддерживает SAML, OAuth и OpenID Connect и является бесплатным. - person rbrayb; 23.11.2014

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

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

person jleleu    schedule 24.11.2014