Почему предоставление функции allAuthenticatedUsers роли «Cloud Functions Invoker» не работает для облачных функций Google? - PullRequest
0 голосов
/ 05 октября 2019

Согласно документации Google, член 'allAuthenticatedUsers' может включать любого, кто прошел проверку подлинности, включая обычные учетные записи gmail. Поэтому я дал этому участнику роль «Cloud Functions Invoker», полагая, что любой прошедший проверку пользователь должен иметь возможность вызывать мою облачную функцию Google. Это не работает. Я получаю следующие результаты:

Ошибка: запрещено Ваш клиент не имеет разрешения на получение URL / функции-1 с этого сервера.

Я доказал, что если я предоставлю 'Cloud Functions Invoker'role to' allUsers ', тогда функция может быть вызвана. Итак, я знаю, что эта функция работает (это функция по умолчанию, которую создает облако Google).

Так почему же не предоставление члену «allAuthenticatedUsers» роли «Cloud Functions Invoker» не работает для облачных функций Google? Чего мне не хватает?

Спасибо

Ответы [ 3 ]

0 голосов
/ 05 октября 2019

Вы можете применить эту роль к одной функции.

Если вы хотите защитить все свои ресурсы в своем проекте, я имею в виду, если вы не хотите разрешать allUsers для ресурсов GCP, таких как Function, Cloud Run, Storage (...), вы можете активировать Политика совместного использования ограничений домена (DRS) . При этом все пользователи запрещены.

0 голосов
/ 06 октября 2019

Правильный ответ

Автор кредита - Джон Хэнли. Мне нужно было использовать id_token вместо моего access_token в заголовке авторизации токена на предъявителя.

Я не уверен, как пометить этот вопрос как ответ. Я не мог принять комментарий, и я не мог принять свой собственный ответ. Моя цель - помочь другим, у которых возникли те же вопросы, пометив этот вопрос как ответивший, но я не могу этого сделать. Странно!

Пожалуйста, пометьте ответ как правильный, если можете.

0 голосов
/ 05 октября 2019

Не следует применять allUsers и allAuthenticatedUsers на уровне проекта в соответствии с Документами по облачным функциям (см. Примечание в разделе «Управление доступом ко всем функциям в проекте»). Можете ли вы попробовать применить это к той единственной функции, которую вы хотите защитить?

...