2015-06-24 3 views
1

Прежде чем начать, я хочу сказать, что я новичок в создании RESTful API, а также никогда не рассматривал какую-либо аутентификацию.Аутентификация API RESTful на нескольких серверах

Я хочу настроить главный сервер, который получит запросы API от клиента (пусть сервер IP/Domain будет, api.example.com). Я хочу иметь возможность использовать запрос POST для отправки файла на сервер с помощью ключа API. Какими способами я могу аутентифицировать ключ API на главном сервере, а затем снова добавить файл с другого сервера на другой сервер в зависимости от ключа API (например, две категории 0 и 1)

Если файл является общедоступным на клиентский сервер, хорошо ли, если я просто отправлю URL-адрес на главный сервер, который передает его на второй сервер, а затем загрузит там файл? Как только это будет сделано, клиенту также придется использовать запрос GET.

Я думаю, что Wordpress на главном сервере упрощает регистрацию (напишите плагин для генерации api для каждого пользователя). Это хорошая идея ?

Я видел это: (. Все на стороне клиента услуги Напишем будет открытым исходным кодом, а сам апи открыты для разработчиков, чтобы разработать для своих собственных нужд) Web API creating API keys

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

EDIT

Я просто понял, что-то, но я не знаю, если это хорошая стратегия. Если бы я мог попросить пользователей добавить домен, из которого будет делать запрос, а затем просто иметь только один ключ API и отправить его на сервер, чтобы сервер мог сопоставляться между APIKey и Доменю, и если он указан в списке, продолжайте POST.

+0

Я рекомендую вам ознакомиться с методами аутентификации API, такими как HTTP Basic Auth, OAuth и HMAC. После того, как вы соберете свою сторону, есть множество фреймворков и библиотек, которые помогут вам сэкономить массу усилий. Я особенно рекомендую эту статью http://www.thebuzzmedia.com/designing-a-secure-rest-api-without-oauth-authentication/. – ODaniel

+0

Использует ли HMAC определенное использование ЦП? это слишком много или нормально, если у кого-то был клиент на общем хостинге. Поэтому я должен заставить разработчиков использовать один и тот же метод проверки подлинности? и если я использую завиток с терминала, как это сделать? – kks21199

+0

HMAC требует расширения openssl для установки php. Он проверяет подпись и шифрование, что не должно быть проблемой для современного сервера. Учитывая ваш начальный уровень на эту тему, я предлагаю вам перейти с Basic Auth, потому что это самый простой. При использовании curl для вызова API вы можете передать заголовок аутентификации в качестве аргумента. Для тестирования взгляните на Postman, отличный Chrome-плагин. – ODaniel

ответ

0

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

Смежные вопросы