- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试设置服务到服务身份验证,以便外部应用程序可以向 Cloud Run 应用程序(在 Cloud Endpoints API 网关后面)发出请求。
我已关注 Cloud Endpoints authentication between services文档,但是在尝试访问 Cloud Run 服务时我继续收到以下错误:
401: Jwt issuer is not configured
在 openapi 规范中,我设置了端点安全和 securityDefinition:
/endpoint_1:
get:
...
security:
- service_account: []
securityDefinitions:
service_account:
authorizationUrl: ""
flow: "implicit"
type: "oauth2"
x-google-issuer: "<service_account_email>"
x-google-jwks_uri: "https://www.googleapis.com/robot/v1/metadata/x509/<service_account_email>"
x-google-audiences: "https://<cloud-run-service>-pjcfvhz2qq-uc.a.run.app"
然后使用 ESPv2 Beta 将其部署到 Cloud Run,如 Cloud Endpoints documentation 所述.
部署完所有内容后,我尝试从我的本地计算机运行以下脚本以生成签名的 jwt 并向 Cloud Run 服务发出请求:
import os
import json
import time
import requests
import google.auth.crypt
import google.auth.jwt
now = int(time.time())
expiry_length = 3600
sa_email = '<service_account_email>'
payload = {
'iat': now,
'exp': now + expiry_length,
'iss': sa_email,
'sub': sa_email,
'email': sa_email,
'aud': 'https://<cloud-run-service>-pjcfvhz2qq-uc.a.run.app',
}
file_path = "service-account.json"
signer = google.auth.crypt.RSASigner.from_service_account_file(file_path)
signed_jwt = google.auth.jwt.encode(signer, payload)
headers = {
'Authorization': 'Bearer {}'.format(signed_jwt.decode('utf-8')),
'content-type': 'application/json',
}
url = "https://<cloud-run-service>-pjcfvhz2qq-uc.a.run.app/endpoint_1"
res = requests.get(url, headers=headers)
print(res.json())
获取请求的响应:
{'message': 'Jwt issuer is not configured', 'code': 401}
颁发者已在 openapi 规范中指定为与用于生成 JWT 的颁发者相匹配的服务帐户电子邮件。
任何关于Jwt issuer is not configured 实际含义的指导,我们都很感激。
最佳答案
我认为您需要 Google 签名的 JWT token ,而不是自签名 token 。尝试用这个更改代码的结尾(在 signed_jwt = ...
行之后)
auth_url = "https://www.googleapis.com/oauth2/v4/token"
params = {
'assertion': signed_jwt, # You may need to decode the signed_jwt: signed_jwt.decode('utf-8')
"grant_type": "urn:ietf:params:oauth:grant-type:jwt-bearer",
}
r = requests.post(auth_url, data=params)
if r.ok:
id_token = r.json()['id_token']
headers = {
'Authorization': 'Bearer {}'.format(id_token),
'content-type': 'application/json',
}
url = "https://<cloud-run-service>-pjcfvhz2qq-uc.a.run.app/endpoint_1"
res = requests.get(url, headers=headers)
print(res.json())
# For debugging
print(r)
print(vars(r))
关于python - Cloud Endpoints 返回 401 Jwt issuer is not configured,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62668372/
运行 ANT 脚本目标时出现以下错误。错误消息显示“服务器证书验证失败”。请帮助如何消除这个问题。我在 Windows XP 中工作。 C:\apache-ant-1.8.1>ant checkout
在钥匙串(keychain)中,我的证书显示为无效颁发者。 虽然我有正确的“应用全局开发者关系证书颁发机构”,该证书将于 2023 年到期。 我多次尝试这些链接但没有成功 This certifica
我的问题的简短版本是:如何访问从第 3 方应用程序同步的联系人的电话号码? 这是长版: 我可以很容易地访问常规的 Android 联系人。问题是当联系人列表中的唯一信息与 Facebook 或 Lin
我有一个简单的 web api 项目,它看起来像这样: [Authorize] [Route("Get")] public ActionResult SayHello(
Webpack 的 Rule 选项 presents two things (完整语法,而非快捷语法):resource 和 issuer。 In a Rule the properties test
我正在 Windows 上开发一个应连接到服务器的应用程序。因此我实现了一个 QSslSocket。 执行连接方法后,sslSocket errorString 发送 The issuer certi
我们正在升级我们自己和合作伙伴之间的连接,他们要求我们升级到 MTLS。我一直在调试低级 java, javax.net.debug=all我可以看到握手成功。然而,合作伙伴对主题和发行人字段进行了完
我目前正在使用证书在我的本地 Windows 计算机上的命令行中执行一个使用 curl 的 php 脚本来测试网站上的 API。但是脚本永远无法到达服务器。我已经为这个明显常见的错误查找了解决方案,并
curl -L https://get.rvm.io | bash -s stable --ruby 当我尝试这个时,我得到了这个,我认为我的 openssl 坏了, % Total % Receiv
我有一个本地 gitlab,我试图在其中运行一些构建/管道,但出现以下错误 - fatal: unable to access 'https://gitlab-ci-token:[MASKED]@gi
尝试开发并部署到 Firebase 托管,但当我从 PowerShell 运行 firebase init 时收到以下错误消息: 服务器错误。无法获取本地颁发者证书 有人知道这个吗?这是日志文件内容:
我有我的 groovy 脚本来在 azure 应用服务上部署一个简单的 api(nodejs)。 pipeline { agent none environment { //app servi
我刚刚使用 HAProxy 1.5.2 设置了一个负载均衡器,但 HTTPS 前端无法正常工作。 我使用 curl 向我的服务器发出如下请求: curl https://haproxy.example
当我启用 CURLOPT_SSL_VERIFYPEER 时,我从 curl 得到了这个错误:SSL 证书问题:无法获取本地颁发者证书。 我读到我应该在 php.ini 文件中包含一些内容,但我无权访问
我正在尝试在 iOS 上使用 curl 设置与 HTTPS 服务器的安全连接(应用程序是用 C++ 编写的) 我发现我需要为 CURLOPT_CAPATH 选项设置 cacert.pam ( http
这个问题在这里已经有了答案: This certificate has an invalid issuer Apple Push Services (14 个答案) 关闭 6 年前。 编辑: 我们发
我使用的是 OSX:10.12.4 我最初能够毫无问题地使用 git、homebrew 和 curl。我不记得我做了什么导致它,但突然间这些 SSL 错误开始出现在我的 git 命令中。 我在运行任何
这个问题在这里已经有了答案: This certificate has an invalid issuer Apple Push Services (14 个答案) 关闭 6 年前。 钥匙串(key
我正在尝试使用 python 从网络获取数据。我为其导入了 urllib.request 包,但在执行时出现错误: certificate verify failed: unable to get l
我正在尝试在 gitLab 中推送我的第一个项目,但出现此错误“fatal: unable to access 'https://.git.: SSL certificate problem: una
我是一名优秀的程序员,十分优秀!