Как предоставлять услуги OAuth с сайта? - PullRequest
5 голосов
/ 16 июня 2011

OAuth позволяет вам, пользователю, предоставить доступ к своим личным ресурсам на одном сайте другому сайту.Но как именно это происходит.И если я хочу предоставить функции OAuth на своем сайте (как в качестве поставщика услуг, так и потребителя), как мне это сделать.Я использую сервер на базе Fedora 13.И можно ли настроить Round Cube / Squirrel Mail для предоставления этих Услуг.Как и сейчас все мои пользователи имеют почтовую учетную запись на сервере, я хочу, чтобы учетные данные в почте использовались для предоставления услуг OAuth.

Ответы [ 3 ]

4 голосов
/ 16 июня 2011

Если вы хотите быть поставщиком данных, вам нужно внедрить сервер OAuth на своем сайте, а если вы хотите быть потребителем, вам нужно будет внедрить клиент OAuth на своем сайте.

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

В случае, если вы являетесь поставщиком, версия протокола 1.0 работает следующим образом:

  1. Потребителю требуется доступ к личным данным конечного пользователя
  2. Поставщик выдает токенпотребителю
  3. Конечный пользователь авторизует токен
  4. Потребитель может делать авторизованные запросы с этим токеном для личных данных конечных пользователей

Хорошее место для начала:http://hueniverse.com/oauth/

Вы также можете прочитать RFC, когда решите, будете ли вы внедрять версию протокола 1.0a или 2.0.Я реализовал только 1.0a, поэтому не могу дать совет, какой из них лучше.Я предполагаю, что версия 2.0 имеет больше возможностей, и все говорят, что ее легче реализовать.Что касается более простого, 1.0a не сложна в реализации также, потому что есть хорошие библиотеки с открытым исходным кодом как для клиентов, так и для серверов, и вы можете настроить и запустить сервер или клиент в течение 1 дня, если вы понимаете механизм протокола.

Конечно, если вы хотите создать хороший сервер с различными областями доступа, наследованием областей и если ваш API сложный и расширяемый, вам придется проделать там гораздо больше работы, независимо от того,выберите версию 1.0a или 2.0 OAuth

3 голосов
/ 28 июня 2011

Простой пример демонстрации потока oauth. Понимание концепции помогает спроектировать соответственно: enter image description here

2 голосов
/ 30 июня 2011

Что касается «Как я это сделаю?»

Есть много хороших библиотек.Вот отличный список: http://oauth.net/code/

...