Служба регистрации и аутентификации API

#python #api #http #authentication

#python #API #http #аутентификация

Вопрос:

Я работаю над приложением службы регистрации и аутентификации API с использованием python. Разработчики смогут зарегистрировать свое приложение (доменное имя приложения), и для зарегистрированного приложения будет сгенерирован случайный ключ API.

Затем зарегистрированное приложение будет отправлять ключ API в службу API с каждым запросом API. Сервер API аутентифицирует домен входящего запроса с помощью переданного ключа API, чтобы подтвердить, что запрос действителен. Я использую перенаправленный хост для проверки доменного имени запроса API, однако он не работает, так как в некоторых случаях (когда открытая страница является первой страницей), перенаправленный хост остается пустым.

Существует ли лучший подход к аутентификации запроса или какие-либо изменения, необходимые в процессе регистрации API для надежной аутентификации запроса? Некоторые указания будут полезны.

Ответ №1:

Использование прокси-сервера авторизации

Образцы являются «3scale.net «, предлагая бесплатный уровень, существуют и другие коммерческие решения.

Решение с открытым исходным кодом, о котором я знаю, — это ApiAxle, которое намного проще, но все же очень полезно.

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

Использование службы авторизации

Другое решение заключается в том, чтобы какая-то внутренняя служба оценивала, авторизован ли набор предоставленных клиентом ключей (providerid, appid, accesskey, …) или нет. Для этой цели вы должны:

  • настройка службы авторизации
  • измените свой код, добавив 2-3 строки в верхней части каждого вызова, вызывающего службу аутентификации.

Пример кода для 3scale находится здесь: https://github.com/3scale/3scale_ws_api_for_python

Выводы

  • Прокси-сервер аутентификации делает приложение простым и не беспокоится о том, кто спрашивает. Это может быть преимуществом до тех пор, пока вашему приложению не потребуется знать, кто запрашивает.
  • Служба аутентификации требует изменения вашего кода.