为什么不向'allAuthenticatedUsers'成员授予'Cloud Functions Invoker'角色对Google云功能起作用?

时间:2019-10-05 04:27:35

标签: google-cloud-platform oauth-2.0 google-cloud-functions

根据Google文档,“ allAuthenticatedUsers”成员将包括经过身份验证的任何人,包括常规gmail帐户。因此,我为该成员指定了“云功能调用者”角色,以为任何经过身份验证的用户都应该能够调用我的Google云功能。那是行不通的。我得到以下结果:

错误:禁止。您的客户端无权从此服务器获取URL / function-1。

我已经证明,如果我将“ Cloud Functions Invoker”角色授予“ allUsers”,则可以调用该功能。因此,我知道该功能有效(这是Google Cloud创建的默认功能)。

那么,为什么不授予“ allAuthenticatedUsers”成员“ Cloud Functions Invoker”角色用于Google云功能呢?我想念什么?

谢谢

3 个答案:

答案 0 :(得分:0)

您不应该根据Cloud Functions Docs在项目级别应用allUsersallAuthenticatedUsers(请参阅“控制项目中所有功能的访问”中的注释)。您可以尝试将此方法应用于您要保护的单个功能吗?

答案 1 :(得分:0)

您可以将此角色应用于单个功能。

如果您想保护项目上的所有资源,我的意思是,如果您不想允许功能,云运行,存储(...)等GCP资源上的所有用户,可以激活{{3 }}。有了它,allUsers被禁止。

答案 2 :(得分:0)

正确答案

信用归约翰·汉利所有。我需要在承载令牌授权标头中使用id_token而不是我的access_token。

我不确定如何将此问题标记为已回答。我不能接受评论,也不能接受自己的回答。我的目的是通过将此问题标记为已回答但我不能解决,以帮助遇到相同问题的其他人。奇怪!

请尽可能将答案标记为正确。