#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
Выводы
- Прокси-сервер аутентификации делает приложение простым и не беспокоится о том, кто спрашивает. Это может быть преимуществом до тех пор, пока вашему приложению не потребуется знать, кто запрашивает.
- Служба аутентификации требует изменения вашего кода.