2015-01-08 5 views
0

Не могли бы вы помочь мне определить, какой протокол проверки подлинности я должен использовать для следующего прецедента? Я новичок в этой области разработки, и я немного околдован всей технической информацией там, поэтому было бы очень благодарно ответить «за манекены».Выбор правильного протокола проверки подлинности

У меня есть онлайн-учебный веб-сайт, на котором размещаются курсы английского языка. Появилось требование о том, что мы должны интегрироваться с сторонними Enterprise Systems (потому что мы продаем курсы для предприятий).

Первичное требование - разрешить сторонним системам перенаправлять своих пользователей на мой сайт и получать к ним доступ с учетными данными сторонней системы (я считаю, что это называется Single Sign-on?). Системы сторонних разработчиков, очевидно, являются удаленными системами, и я уделяю больше внимания возможностям, чем 1 конкретный клиент/интеграция.

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

Я читал, что в этом пространстве есть много протоколов/вещей (SAML, OAuth, OAuth2, OpenID, Shibboleth и т. Д.), Поэтому я подумал, где я должен сосредоточить свое внимание и исследования? Что наиболее часто встречается среди корпоративных систем (CRM и т. Д.)?

Кроме того, в качестве дополнительного вопроса. Неужели OAuth устарел или ухмыльнулся, когда OAuth 2.0 выпущен?

Любая помощь действительно оценена!

Спасибо всем.

+0

название и тегам предложить по-разному, но это вопрос о подлинности (только), а не разрешение –

+0

Моих извинения - это мое невежество. Я изменил теги и формулировки. –

ответ

1

SAML 2.0 является самым популярным протоколом Single Sign On, когда дело доходит до систем Enterprise. Большинство, если не все предприятия могут предоставлять SSO на базе SAML для сторонних веб-сайтов.

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

В этом случае Enterprise будет называться Identity Provider (IDP), и ваш сайт будет называться поставщиком услуг (SP)

Существует несколько доступных библиотек с открытым исходным кодом, которые позволяют реализовать SAML (Spring и т. Д.), В качестве альтернативы ваши существующие серверы также могут иметь такую ​​возможность.

После реализации базы сделано, вы можете выбрать, чтобы сделать две вещи:

  1. Если пользователь не существует в вашей БД, создать новую запись и разрешить пользователю доступ.

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

Хотя второй вариант имеет много накладных расходов и не используется очень часто.

---------------------------- Ответ на комментарии --------------- ----------

Это зависит от того, как вы могли бы установить взаимодействие .. Есть два способа настройки SAML SSO:

  1. SP инициированные SSO: Это означает, что пользователи всегда получают доступ к вашему сайту, а затем перенаправляются на IDP для аутентификации. Ток SAML отправляется обратно на проверку подлинности на вашем сайте.

  2. IDO инициированный SSO: Это работает таким образом, что IDP генерирует токен SAML и отправляет его непосредственно в конечную точку SAML вашего сайта.

Если вы используете вариант # 1, а пользователи уже вошли в шаге C был бы не нужен, так как пользователь уже вошел в систему и маркер может быть непосредственно генерируется.

Для варианта № 2 потребуются только шаги D и E. Тем не менее я настоятельно призываю вас не пропустить реализацию SP, инициированного SSO, поскольку некоторые IDP не поддерживают инициированный IDP SSO.

Надеется, что это помогает

Avi

+0

Привет, Ави, Спасибо. Правильно ли я утверждаю, что если конфигурации правильные - тогда потребуются только шаги D и E этого потока SAML? [Ссылка на изображение потока SAML] (http://www.mutuallyhuman.com/assets/posts/2013/04/09/saml2-flow-203ac59962be61be8d370673a4f17313.png) –

+0

Поскольку они уже вошли на сервер авторизации в то время они нажимают на ссылку, чтобы перейти на мой сайт (сервер ресурсов). –

+0

Обновленный ответ со ссылкой на ваш вопрос в комментарии – Avi