IAP подписанные заголовки и стандарт AppEngine Python 3.7 Runtime - PullRequest
0 голосов
/ 06 сентября 2018

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

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

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

  • AppEngine Standard должен использовать 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 Ответ

0 голосов
/ 07 сентября 2018

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

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

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

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

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

...