Разрешение на взаимодействие между модулями Google App Engine
В Документах Google говорится
Вы можете настроить любой модуль ручного или базового масштабирования для приема запросов от других модулей в вашем приложении, ограничив его обработчик только разрешенными учетными записями администратора, указав логин: admin для соответствующего обработчика в файле конфигурации модуля. С этим ограничением, любой URLFetch из любого другого модуля в приложении будет автоматически аутентифицирован App Engine, и любой запрос, который не из приложения, будет отклонен.
поэтому я сделал это, но, к сожалению, он не работает. Я запрашиваю url из модуля A модуля B, который защищен свойством login: admin
Я могу получить этот url в браузере, который показывает мне страницу входа в систему, и после того, как я продолжу в качестве администратора, я могу получить свой маршрут.
Как это должно работать? Насколько я понимаю, он должен добавить заголовок для запроса, который включает в себя какой-то токен авторизации.
Если я получаю тот же url в запросе на модуле A, я получаю тот же самый переадресацию. urllib2
по умолчанию отображается код состояния 302
, а результат - страница входа в систему.
Я запускаю среду, используя команду gcloud preview app run
. Модуль A является модулем по умолчанию, а модуль B является управляемая VM Контейнер, может быть, здесь проблема?
Ответы
Ответ 1
Я могу подтвердить, что это происходит, и я воспроизвел проблему. Эта проблема отслеживается в отслеживании сообщений об ошибках App Engine. Следите за обновлениями.
В настоящее время я считаю, что гораздо лучше вручную проверять заголовок X-Appengine-Inbound-Appid
, поскольку он управляется инфраструктурой и не может быть подделан.
Вы также можете реализовать OAuth, но это добавляет накладные расходы, которые вам могут не понадобиться или нужно в небольшом приложении.