对开发者进行身份验证

使用集合让一切井井有条 根据您的偏好保存内容并对其进行分类。

除了创建、更新和删除服务等管理操作以外,开发者通常还需要在发布服务之前进行不公开测试。

准备工作

请确保您授予访问要向其进行身份验证的服务的权限。您必须将 Cloud Run Invoker 角色授予开发者或开发者组:

控制台界面

  1. 前往 Google Cloud Console:

    前往 Google Cloud Console

  2. 选择相应服务。

  3. 点击右上角的显示信息面板,以显示权限标签页。

  4. 点击添加成员

  5. 添加成员字段中,输入开发者帐号电子邮件地址。

  6. 选择角色下拉菜单中选择 Cloud Run Invoker 角色。

  7. 点击保存

gcloud

使用 gcloud run services add-iam-policy-binding 命令:

gcloud run services add-iam-policy-binding SERVICE \
  --member='USER:EMAIL' \
  --role='roles/run.invoker'

其中

  • SERVICE 是服务的名称。
  • USER 的值是 usergroup,具体取决于您是向单个开发者授权还是向群组授权。
  • EMAIL 是电子邮件帐号。

    例如:

    gcloud run services add-iam-policy-binding myservice \
    --member='user:test-user@gmail.com' \
    --role='roles/run.invoker'
    

测试专用服务

要测试需要身份验证的服务,最简单的方法是使用 curl 之类的工具,并在 Authorization 标头中传递一个身份验证令牌:

curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" SERVICE_URL

为了让 curl 命令正常运行,您必须将一个有效的身份令牌传递给具有 run.routes.invoke 权限的用户,例如 Cloud Run AdminCloud Run Invoker。如需查看角色及其关联权限的完整列表,请参阅 Cloud Run IAM 角色

如示例所示,要为当前登录 gcloud 的身份获取有效的身份令牌,您可以使用 gcloud auth print-identity-token。 请注意,使用 gcloud 命令生成的 ID 令牌应仅在开发设置中使用,因为不需要指定“audience”。如果要求指定 audience,则可以降低重放攻击的风险。相比之下,通过服务帐号生成令牌时,必须指定 audience

为了方便重复使用该令牌,您可以在 Linux 或 macOS shell 配置文件中创建命令行别名

alias gcurl='curl --header "Authorization: Bearer $(gcloud auth print-identity-token)"'

使用它向您的服务发出请求:

gcurl OPTIONAL_CURL_FLAGS SERVICE_URL

要在浏览器中测试网站或 API,您可以使用修改 HTTP 请求标头的浏览器扩展程序。