Заголовки IAP со знаком и стандартная среда разработки AppEngine Python 3.7

Нужно ли проверять подписанные заголовки из IAP во время выполнения AppEngine Standard Python 3.7?

В документации IAP ничего не говорится о специфике среды исполнения Python 3.7.

Документация IAP гласит:

  • Стандарт AppEngine должен использовать API пользователя
  • проверка необходима для защиты приложений в AppEngine Flex

Пользовательский API недоступен для стандарта 3.7. Подписанные заголовки есть. Проверка заголовков возможна.

Я вижу, что среда AppEngine добавляет несколько заголовков. Мне интересно, можно ли неявно доверять значениям X-Appengine- (т. Е. Присоединяет ли AppEngine их после проверки заголовков из IAP)?

X-Appengine-User-Id: <user id>
X-Appengine-Auth-Domain: <domain>
X-Appengine-User-Email: <user email>
...
X-Goog-Iap-Jwt-Assertion: <assertion>
X-Goog-Authenticated-User-Email: accounts.google.com:<user email> 
X-Goog-Authenticated-User-Id: accounts.google.com:<user id>

1 ответ

Из заголовков, специфичных для App Engine:

За login:admin или же login:required обработчики, указанные в app.yamlApp Engine также предоставляет следующий набор заголовков:

  • X-AppEngine-User-Email, с примером заголовка: "ange@example.com"
  • X-AppEngine-Auth-Domain, с заголовком примера: "example.com"
  • X-AppEngine-User-ID, с примером заголовка: "100979712376541954724"

Таким образом, им можно доверять, чтобы они не приходили извне GAE. Но я не уверен, как они относятся к IAP ниже.

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

Другие вопросы по тегам