gpt4 book ai didi

google-cloud-platform - 谷歌云功能授权失败

转载 作者:行者123 更新时间:2023-12-03 19:26:26 25 4
gpt4 key购买 nike

我有一个私有(private)谷歌云功能。所以我想通过 Authorization: Bearer token 对云功能进行身份验证标题。但我得到 401 Unauthorized作为回应。

我使用以下方法创建了私有(private)云功能:

gcloud beta functions deploy MyFunction --runtime go111 --trigger-http --memory 128 --region us-central1 --source gs://bucketname/code.zip



我创建了一个服务帐户并为其分配了访问云功能的权限:

gcloud beta functions add-iam-policy-binding MyFunction --member=serviceAccount:cf-access@my-project.iam.gserviceaccount.com --role=roles/cloudfunctions.admin



输出:
bindings:
- members:
- serviceAccount:cf-access@my-project.iam.gserviceaccount.com
role: roles/cloudfunctions.admin
etag: BwWOGyVdpDg=
version: 1

现在,我下载了服务帐户 json 文件。

所以现在为了访问云功能,我需要添加带有承载 token 的授权 header 。为了生成不记名 token ,我使用以下 java 代码:
String fileName = "path/service-account.json";
FileInputStream keyFileInputStream = new FileInputStream(fileName);
GoogleCredential credential = GoogleCredential.fromStream(keyFileInputStream).createScoped(Collections.singleton(ContainerScopes.CLOUD_PLATFORM));
credential.refreshToken();
String token = credential.getAccessToken();

我在授权 header 中使用此 token 。

URL-

us-central1-[project].cloudfunctions.net/MyFunction

Header-

Authorization: Bearer ya29.c.YpN3bEGV-H4WyTeLQn9kxxFq1Js7mcMtoESW1C-5HstmEgdaXR_gY_stxnlpJna8IL25VvnpwTg5tFL5OorcfBT2_Qtld7FViTbzHas4AiUUEme7mffXRtZOn29



我使用 Postman 发送请求。对于这个请求,我得到输出:
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>401 Unauthorized</title>
</head>
<body text=#000000 bgcolor=#ffffff>
<h1>Error: Unauthorized</h1>
<h2>Your client does not have permission to the requested URL
<code>/MyFunction</code>.
</h2>
<h2></h2>
</body>
</html>

有什么问题? token 生成逻辑有什么不同吗?

最佳答案

存在三种类型的 OAuth token 。刷新 token 、访问 token 、身份 token 。

您正在尝试使用 OAuth 访问 token 而不是 OAuth 身份 token 。

对于授权,Google Cloud Functions 使用 authorization: bearer 中的 OAuth 身份 token HTTP header 。

在您的问题中,您没有显示设置 IAM 成员对 Cloud Function 的访问权限。这意味着无论您使用什么身份 token ,都将被拒绝。

关于google-cloud-platform - 谷歌云功能授权失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57125081/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com