我有一个云运行服务,它打开了经过身份验证的请求。我使用负载平衡创建了一个域映射,将子域指向容器。
我一直在向直接容器url发送请求,没有任何问题。
import os
from google.oauth2 import service_account
import google.auth.transport.requests
import google.oauth2.id_token
import requests
os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = 'service-account.json'
audience = "https://app-id.a.run.app"
request = google.auth.transport.requests.Request()
id_token = google.oauth2.id_token.fetch_id_token(request, audience)
requests.post(
audience + "/job",
headers={'Authorization': f"Bearer {id_token}"},
)
我的服务帐户具有Cloud Run Invoker权限,请求可以很好地通过身份验证。
域映射已配置到正确的Cloud Run服务&区域。
为什么我改变了
audience
到我的子域并发送请求,我没有通过身份验证?
编辑:子域正确指向容器,并且正在记录请求。