Google cloud endpoints 云标识和云端点,是否有任何方法阻止角色/组中的某些用户向端点发出POST/GET请求

Google cloud endpoints 云标识和云端点,是否有任何方法阻止角色/组中的某些用户向端点发出POST/GET请求,google-cloud-endpoints,google-cloud-identity,Google Cloud Endpoints,Google Cloud Identity,例如,假设用户A需要对某个端点具有GET权限,但没有POST权限。有没有办法: 在特定用户无法发出特定类型请求的情况下创建角色 到终点 确保端点遵循这些规则 关于第一个问题,云IAM角色旨在控制用户帐户对项目中存在的服务和产品的访问级别。允许限制哪些用户可以启用您的API,但它们不提供细粒度权限来控制确实允许调用的用户如何与API的特定路由交互 现在,可以限制对特定API方法的访问,我将介绍以下两种方法: 使用Auth0并以编程方式检查用户授权:当允许到达端点的用户发出请求时,其身份将传递给标

例如,假设用户A需要对某个端点具有GET权限,但没有POST权限。有没有办法:

  • 在特定用户无法发出特定类型请求的情况下创建角色 到终点
  • 确保端点遵循这些规则

  • 关于第一个问题,云IAM角色旨在控制用户帐户对项目中存在的服务和产品的访问级别。允许限制哪些用户可以启用您的API,但它们不提供细粒度权限来控制确实允许调用的用户如何与API的特定路由交互

    现在,可以限制对特定API方法的访问,我将介绍以下两种方法:

    • 使用Auth0并以编程方式检查用户授权:当允许到达端点的用户发出请求时,其身份将传递给标题
      X-endpoint-API-UserInfo
      下的处理代码。然后,您可以检查谁是来电者,以否定回答。这将需要一些数据库通信来检查受限用户,或者检查硬编码用户的有问题的天真方法。从安全角度来看,这种方法是可靠的,因为云IAP将阻止未经授权的用户访问API,然后您可以根据需要进一步限制访问范围。这种方法唯一的缺点是会造成一些延迟。有关几种语言的文档和代码示例链接,请参阅
    • API键:只要您能够区分端点路由,API键就提供了一种到各个方法的方法。例如,您可能允许某些键调用
      yourendpoint/route/method1
      ,但限制
      yourendpoint/route/method2
      。这样做有几个缺点,第一个是API密钥用于标识项目/应用程序/网站/IP,而不是单个用户,这与您的要求不完全相同。第二,它们不如身份验证安全,一旦您的API密钥公开,几乎任何人都可以使用它,这可能会给您的账单帐户带来意外的费用。尽管如此,为了完整起见,我还是想提及它,因为它在其他情况下可能会有用。有关API键的概述,请参阅

    总的来说,我建议将Auth0与编程身份验证结合使用。

    感谢您的见解。那么Gsuite/GoogleAdmin组呢,有可能对它们做些什么吗?不是在您需要的级别,您可以允许组访问API,但这无助于限制特定的方法