Как вызвать конечные точки администратора в GAE, не прибегая к инструментам низкого уровня? - PullRequest
1 голос
/ 15 января 2020

Мы используем Google App Engine (python) и конечные точки Google Cloud (OpenAPI). У нас есть некоторые конечные точки для эксклюзивного использования администратором. В нашем app.yaml есть что-то вроде этого:

handlers:
- url: /_ah/api/appname/v1/admin/.*
  script: main.api
  login: admin

Обычно я использую Postman, когда мне нужно отправить специальный запрос, но для запросов к login: admin конечным точкам, Postman перенаправляет и открывает источник Страница входа в Google, которая фактически не позволяет мне войти.

Если я открою такой URL перенаправления в браузере, я действительно смогу войти, но после этого я буду перенаправлен на версию GET конечной точки, которая также не помогает. Я не думаю, что в браузере есть функция, которая легко позволяет мне делать пользовательские запросы POST после того, как я войду в систему.

Итак, в конце я вижу две альтернативы ... одна из них "импортирует" аутентификация куки в POSTMAN после входа в систему. Другой - использовать javascript в консоли браузера, чтобы «вручную» сделать запрос POST, который я пытаюсь сделать.

Обе опции кажутся мне несколько слишком сложными, и я чувствую, что мне не хватает некоторых более простой способ сделать то, что я пытаюсь сделать.

Поэтому мой вопрос заключается в том, как сделать простой запрос POST к развернутой конечной точке облака Google, защищенной именем входа: admin?

1 Ответ

1 голос
/ 17 января 2020

После расследования я вижу, что вы используете App Engine с временем выполнения Python 2.7 и что конечная точка login: admin аутентифицирована с помощью учетных записей Google. Когда вы защищаете конечные точки, все запросы к ним должны быть надлежащим образом аутентифицированы, чтобы их можно было принять, поэтому вам фактически необходимо предоставлять свои учетные данные для аутентификации серверу при каждом запросе. Поскольку учетные данные имеют время жизни из соображений безопасности, вы не можете упростить процесс постоянного хранения их в файле.

Ответ действительно на ваш вопрос, если вы хотите использовать POSTMAN, вы должны импортировать куки после войдите или создайте скрипт, который обрабатывает как процесс аутентификации, так и последующий запрос. Вот документация для POSTMAN , если вы решите go таким образом, и вот документация Google по выполнению аутентифицированных запросов API .

Тем не менее, есть некоторые важные вещи, которые нота. Python 2.7 - это sunsetting , это означает, что могут появиться уязвимости в системе безопасности, которые, вероятно, не будут исправлены, что может привести к огромным нарушениям безопасности и / или необходимости переписать весь бэкэнд в более новую python во время выполнения; Документация Google поощряет переход.

Кроме того, в какой-то момент пользовательская библиотека будет устарела , поэтому вы можете рассмотреть возможность изменения схемы аутентификации для использования Auth0 с тем преимуществом, что эта опция доступна для обеих сред выполнения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...