2013-07-12 5 views
0

Я хочу реализовать платформу SSO. Таким образом, мое требование:Single Sign On Framework

Как только пользователь зарегистрируется на конкретном веб-сайте и нажимает на внешнюю ссылку, ему не следует снова запрашивать его учетные данные.

EDIT: Здесь у меня есть контроль над «внешней ссылкой», о которой я говорю. Первая ссылка, в которую входит человек, может предоставить мне учетные данные или другую необходимую мне информацию, но я не контролирую ее.

Я немного исследовал и нашел, что CAS подходит для моего требования. Но я не хочу, чтобы конечный пользователь сначала входил в CAS, мне нужна инфраструктура, которая получает учетные данные с текущего зарегистрированного веб-сайта и использует то же самое для входа на другой внешний сайт. Разумеется, безопасность важна. Не могли бы вы дать мне несколько указателей/идей относительно того, как это сделать?

+1

Ваш вопрос довольно общий для темы, которая может быть очень подробной. Реализация, которую вы используете, зависит от множества факторов, таких как, какие из приложений вы контролируете, кто является Identity Provider (IdP), какой протокол SSO вы будете использовать. Если вы можете немного уточнить, это поможет настроить то, что вы ищете. Как правило, хотя ответ Юнеда ниже должен дать вам хорошее место для начала. Кроме того, ознакомьтесь с [этим сайтом] (http://documentation.pingidentity.com/display/PF610/Browser-based+SSO) для хорошего объяснения SAML. – lamarvannoy

+0

Я отредактировал мой вопрос. Я все еще взвешиваю свои варианты протокола SSO, который наилучшим образом соответствует моим требованиям. Любые предложения приветствуются. –

ответ

1

Основываясь на том, что вы описываете, это похоже на то, что инициированный идентификатор провайдера (IdP) профиль SAML будет отвечать вашим требованиям (хорошим визуальным представлением этого является here). Исходный веб-сайт, в который будет загружен ваш пользователь, будет функционировать как поставщик удостоверений. После аутентификации пользователя с этим приложением они смогут получить доступ к внешнему приложению, щелкнув ссылку. Вместо того, чтобы перенаправляться на страницу входа в систему для вашего приложения, оригинальное приложение будет перенаправлять данные авторизации пользователя через SAML вам, где подпись будет проверена и, возможно, проверена поставщиком удостоверений. Если все будет проверено, пользователь будет перенаправлен на запрошенный ресурс из вашего приложения без необходимости входа.

Обратите внимание, что вышеописанный протокол SSO. Существует много разных фреймворков, которые поддерживают SAML, которые вы можете использовать. Два, которые вы можете исследовать, - это Shibboleth и, как уже упоминалось, OpenAM.

Это довольно упрощенное объяснение, основанное на ограниченных деталях, но, надеюсь, это поможет привести вас к решению. Я бы рекомендовал провести тщательное исследование протоколов и рамок, доступных до принятия вашего решения. Кроме того, доказательство концепции никогда не помешает, чтобы доказать, что решение будет работать для вас, прежде чем инвестировать в него до такой степени, как возврат.

Удачи.

1

OpenAM должен помочь вам:

OpenAM обеспечивает открытым исходным кодом аутентификации, авторизации, полномочие и Федерации программного обеспечения. Через OpenAM сообщество активно продолжает разработку OpenSSO.

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

+0

Кроме того, если приложение, которое должно получить токен SSO, не принадлежит вам и не поддерживает SSO, вы можете использовать [OpenIG] ​​(http://openig.forgerock.org/), чтобы действовать как обратный прокси и подключаемый модуль приложение в рамки. – lamarvannoy

+0

Спасибо за ваш ответ Juned. OpenAM требует, чтобы провайдер реализовал протокол OAuth2, но в моем случае я не являюсь владельцем провайдера. У меня есть контроль только над приложением, к которому перенаправляется ссылка. –

+0

OpenAM действительно не нужен OAuth2, это опция, которую вы можете использовать для A & A –

1

О перечне википедии страницы единого входа на реализациях вы можете найти список SSO реализаций, есть столбец с указанием лицензии.

Подробнее о jboss sso от here.