OpenID, OpenSSO и OAuth
Насколько я понимаю, OpenID состоит в том, что он обеспечивает способ, чтобы один сайт содержал всю вашу идентификационную и периферийную информацию, но позволял другим OpenID-совместимым (и доверенным пользователям) сайтам повторно использовать эту информацию для идентификации и аутентификации пользователя. По сути, это сводит к минимуму количество учетных данных (имен пользователей и паролей), которые пользователь имеет для Интернета.
Насколько я понимаю, OpenSSO позволяет вам входить на один сайт и автоматически входить на все остальные сайты, которым доверяет первый сайт. По сути, это сводит к минимуму количество раз, когда пользователь должен войти на эти разные сайты.
Я понимаю, что OAuth позволяет пользователям предоставлять сторонним сайтам определенный доступ к их информации, расположенной на одном конкретном сайте. По сути, как и в OpenSSO, он сводит к минимуму количество раз, когда пользователь должен войти на эти разные сайты. Отличия от OpenSSO в том, что OpenSSO регистрирует пользователя на всех участвующих сайтах одновременно (с включенными полными привилегиями), тогда как OAuth предоставляет более детальный доступ к этим участвующим сайтам.
Итак, во-первых, если что-то, что я сказал, неверно, пожалуйста, начните исправлять меня!
Предполагая, что я более или менее прав, тогда у меня есть следующие вопросы / нуждаются в разъяснении по следующим пунктам:
- Когда я выберу OpenSSO вместо OAuth - только когда я хочу ограничить доступ, который есть у других участвующих сайтов, когда пользователь входит в систему на одном из них?
- Различают ли их различные риски безопасности для каждой из этих технологий, которые мне придется учитывать и интегрировать в мое приложение, или они считаются безопасными сами по себе (в основном я могу быть уверен, что если мое приложение использует их, мое приложение не будет открыто для них). какие-нибудь новые атаки)?
Поскольку эти технологии так тесно связаны, мне трудно увидеть весь "лес сквозь деревья" здесь - заранее спасибо!
2 ответа
Не совсем правильное сравнение. OpenID & OAuth - это протоколы, OpenSSO (теперь OpenAM) - это реализация тех и других протоколов (SAML, OAuth и т. Д.)
Вообще говоря, протоколы для OpenID и OAuth схожи, даже если они созданы с учетом различных вариантов использования. В настоящее время существует множество сближений вокруг OAuth 2.0 для случаев федерации (аутентификации) и авторизации. Новое поколение OpenID под названием OpenID Connect построено на основе OAuth 2.0, и его предшественники уже есть в Google, Facebook, Twitter и т. Д.
Что касается безопасности, всегда есть некоторые риски, особенно с ошибками реализации. Выберите хорошую реализацию и прочитайте спецификации, чтобы понять, каковы риски и контрмеры.
OpenSSO для вас, чтобы войти на один сайт и войти на несколько сайтов.
OAuth позволяет одному сайту извлекать ваши данные со второго сайта (извлекать ваши твиты или статусы в Facebook), при этом первый сайт не должен знать, как войти на второй сайт.