首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从App Engine前端查询Google Cloud Platform的元数据服务器,获取Compute engine后端的身份令牌(JWT)?

如何从App Engine前端查询Google Cloud Platform的元数据服务器,获取Compute engine后端的身份令牌(JWT)?
EN

Stack Overflow用户
提问于 2020-07-31 09:30:54
回答 1查看 413关注 0票数 0

我们目前在前端有一个Angular 9 GCP App Engine实例,在后端有一个Django GCP Cloud Run服务。我们希望Angular应用程序从元数据服务器查询GCP中的JWT令牌,我们将把它放在后端的每个请求的头部中。在根据this page进行查询时,我们不断得到以下“混合内容”错误。

代码语言:javascript
复制
Mixed Content: The page at {our App Engine url} was loaded over HTTPS, but requested an insecure XMLHttpRequest endpoint 'http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/identity?audience={audienceName}'. This request has been blocked; the content must be served over HTTPS.

我们已尝试使用上述GCP元数据url的https版本,但该版本不存在。从理论上讲,我们应该能够检索这些元数据,因为GCP实例,即GCP应用程序引擎应用程序,正在与GCP计算引擎后端通信。有没有人有从UI进行此查询以获取令牌以设置后端请求的经验?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-11 03:35:48

即使你的Angular9应用程序托管在app Engine上,代码( TS代码,翻译成Javascript)也不能在App Engine上运行,但它可以在客户端浏览器上运行。

好的,你肯定知道这一点,但这将有助于我向你解释你的问题。您尝试调用内部Google URL (http://metadata.google.internal/...)。因此,您的Angular应用程序在您的用户浏览器上无法访问此API。

好的模式不是这个。您必须在后台(appEngine或其他地方,云函数或云运行)公开一个接口,接受来自您的Angular9应用程序的请求(根据您的服务要求,请求可以进行身份验证(例如使用firebase身份验证)或不进行身份验证)。

然后,托管在Google Cloud上的后端可以请求元数据服务器,然后生成一个令牌来访问其他服务。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63184537

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档