Прокси-сервер с идентификацией (IAP) для URL-адреса - движок приложений Google

У нас есть два проекта -

Проект 1 - стандартный python 2.7 для движка Google App. Проект 2 - стандартный движок Google Appp Python 3.3

Приложение Project 1 защищено с помощью аутентификации пользователя Firebase. Нам необходимо получить доступ к определенной функции (URL) проекта 1, осуществляющего доступ из проекта 2. Вызов из проекта 2 будет выполняться сервером (а не пользователем). Нам это нужно, чтобы быть в безопасности.

Можем ли мы включить только эту функцию (URL) в Project 1 с IAP? И использовать инструкции здесь для аутентификации?

Если вышеперечисленное не является решением, каковы наши варианты?


person Jack tileman    schedule 25.09.2020    source источник


Ответы (1)


Да, ссылка, которую вы предоставляете, предлагает правильные решения. Хотя я считаю, что лучше всего использовать учетную запись службы для проекта 2, которая позволяет получить доступ к ресурсу проекта 1 (используйте правильную роль облачной функции).

Включите учетные данные учетной записи службы в Project 2 и используйте соответствующую библиотеку для вызова службы с использованием учетных данных учетной записи службы. Узнайте, как создать учетные данные для учетной записи службы здесь

person Juan David Ramirez Villegas    schedule 25.09.2020
comment
Как мы защищаем Project1? Сейчас он открыт для любого движения. Доступ к приложению Project 1 аутентифицируется пользователем Firesbase. Если мы сохраним аутентификацию firebase для этой функции в Project 1, как мы сможем использовать учетную запись службы для доступа к ней? - person Jack tileman; 26.09.2020
comment
Вы должны защитить облачную функцию проекта 1. Если служба, к которой вы пытаетесь получить доступ, находится в серверной части AppEngine, вы не можете защитить ее, не защищая дыру. Разрешения AppEngine однородны. В зависимости от процесса развертывания, которому вы следуете, это может немного измениться. Как только вы это сделаете, ресурс сможет вызывать только аутентифицированные запросы. - person Juan David Ramirez Villegas; 26.09.2020
comment
Вы можете вручную добавить аутентификацию к внутренним обработчикам вашей службы AppEngine, но это может быть сложнее, чем отделение вашей службы от AppEngine в облачной функции. - person Juan David Ramirez Villegas; 26.09.2020
comment
Это проблема, с которой мы столкнулись. Мы не хотим IAP для всего приложения (Проект 1). Потому что это открыто в Интернете, а аутентификация основана на firebase. Нам нужен только один обработчик, к которому сервер Project 2 должен получить безопасный доступ. Итак, рекомендация - создать облачную функцию в Project 1 и сделать ее доступной для Project 2? - person Jack tileman; 26.09.2020