Аутентификация веб-службы с использованием OpenID
Я собираюсь создать веб-службу REST-ful для нового общедоступного веб-сайта. Идея веб-службы заключается в том, чтобы сторонние разработчики разработали полнофункциональные пользовательские интерфейсы для бизнес-логики.
По соображениям безопасности я бы хотел, чтобы пользователи не предоставляли свои пароли для наших услуг сторонним приложениям. (Возможно, это не должно быть большой проблемой?) Вместо этого я ищу для внедрения на нашем сайте какую-то систему входа в систему, которая предоставляет токен аутентификации стороннему приложению, но сохраняет фактический пароль из своих рук.
Это заставило меня подумать, что OpenID может быть потенциальным решением здесь. Мне кажется, что он должен работать: фактический пароль обрабатывается провайдером OpenID и поэтому не поддерживается сторонним приложением. Я думаю, что проблема, вероятно, будет связана с различными проходами, но это должно быть управляемо.
Тем не менее, неожиданное отсутствие информации о Googleable по этому поводу, поэтому я бы хотел, чтобы мнение SO. Кто-нибудь реализовал подобную систему раньше? Возможно ли это? Это стоит того?
Ответы
Ответ 1
Я полностью согласен с тем, что вам нужно OAuth; Я говорю, что работал как на OAuth, так и на OpenID. Я также был в вашей лодке несколько раз, чтобы разработать веб-сервис REST api.
Для действительно хороших идей по OAuth и почему именно вы хотите увидеть эту прилагаемую статью:
Они должны читать, есть четыре части, которые они читают:
http://hueniverse.com/oauth/guide/
RFC, прочитайте после чтения выше, поскольку это может быть немного сложнее для большинства:
http://oauth.net/core/1.0
И, наконец, может быть, какой-то код. У меня есть несколько проектов, которые используют Java/Groovy для выполнения OAuth. Один из них - простой старый клиент OAuth, другой - клиент для конкретных взаимодействий с NetFlix.
http://www.blueleftistconstructor.com/projects/
Если вы относительно неопытны с REST (вы еще не создали полномасштабную веб-апи), я бы порекомендовал вам купить (или лучше получить своего босса) "RESTful Web Services" Ричардсона и Руби. Это книга О'Рейли. Я могу сказать, что это одна из их лучших книг для дебюта в последние несколько лет.
Это может также помочь взглянуть на некоторые API RESTful OAuth. API NetFlix - прекрасный пример: http://developer.netflix.com/docs
Удачи и счастливого кодирования!
Ответ 2
До сих пор я нашел 1 ссылку:
http://markmail.org/message/utf7js473zqv45hv
В этом разговоре упоминается что-то под названием "OpenID Exchange", которое находится прямо вверх по моей переулке... но включенная ссылка сломана, и для нее не так много достоверной информации в Google.
Похоже, OAuth может быть билетом: http://oauth.net/
Ответ 3
Мы работаем над проектом по интеграции OpenID Authentication для веб-сервисов SOAP. Вы можете найти наш проект http://code.google.com/p/ws-sandhana/.
Вы можете предоставить Single Sing On для своих веб-сервисов с использованием проверки подлинности OpenID, и вы можете принудительно использовать доверенных поставщиков OpenID и необходимые атрибуты пользователей, определяя политики безопасности службы.
Это версия с открытым исходным кодом на Apache Rampart, которая является модулем безопасности для веб-сервиса Apache Axis2. Вы можете найти наш блог в http://sandhana-project.blogspot.com/для получения дополнительной информации.