当前位置: 首页 > 知识库问答 >
问题:

使用JWT令牌的Google云认证服务到服务

萧英睿
2023-03-14

是否可以从应用程序A中创建JWT令牌,并使用GCP服务帐户在应用程序B中验证它?我如何在Python中做到这一点?

这两个应用程序都部署在GCP中。应用程序可以部署在GCF、Cloud Run、AppEngine、GKE甚至GCE中。

我花了一些时间阅读Google Cloud文档,但我没有找到如何处理服务间身份验证的“通用”答案。(很可能是因为它们对每个GCP产品都不相同)

那么,考虑到我们抛开了谷歌的任何简化身份验证的无服务器产品,我如何在彼此之间验证我的服务呢?(例如,自动检查令牌的云运行/CF)

def serviceA():
"""
serviceA function gets a token and pass it in it's request to the serviceB
"""
    token = # How do I retrieved a token that I can use to auth my call? ID Token? Signed JWT?
    req.add_header("Authorization", f"Bearer {token}")

    response = urllib.request.urlopen(req)
    return response.read()
@app.route('/')
def hello():
"""Return a friendly HTTP greeting."""
  if "Authorization" not in request.headers:
    return "Forbidden", 403
  # Check if the request is authenticated
  verify_token(request.headers)
  # proceed...
    null

共有1个答案

乐正焕
2023-03-14

我能想到的唯一适合您用例的服务是BeyondCorp:

BeyondCorp是Google对零信任模型的实现
(...)
BeyondCorp允许单点登录、访问控制策略、访问代理以及基于用户和设备的身份验证和授权。
BeyondCorp的原则是:
-对服务的访问不得由连接的网络决定
-对服务的访问是根据用户及其设备的上下文因素授予的
-对服务的访问必须经过身份验证、授权和加密

 类似资料:
  • 我被难倒了....对于获得向缺少什么,有什么想法吗?

  • 我有两个云运行服务:和。前端是用vue.js/nuxt.js编写的,因此使用的是节点后端。后端是用Kotlin编写的,带有Spring Boot。 为了在前端和后端之间进行经过身份验证的内部通信,我需要使用一个令牌thttps://cloud.google.com/run/docs/authenticating/service-to-service#JavaHat是从google Metaserv

  • 我尝试用angular2前端实现jwt令牌。当我尝试使用Postman接收带有post方法的令牌时,我接收到授权令牌,但在Angular中这样做返回空响应对象。这里是我使用的Angular服务的代码片段。 问题是,当我尝试记录时,令牌是空的,与响应相同。对于代码的后端部分,我遵循了jwt令牌的这个实现。

  • 我在springboot中用jwt令牌开发了一个oauth2服务器,我在注销时遇到了困难http://www.baeldung.com/spring-security-oauth-revoke-tokens 注销后,如果在头中提供令牌并点击/user,则它将提供所有用户信息,而应该抛出并错误地表示用户已注销

  • 我将使用Laravel框架构建micrservices。我有用户微服务,它处理客户端凭证并验证它们(为客户端创建JWT)。此外,还有另一种需要用户认证的微服务。 问题是,如果秘密访问令牌密钥仅在用户微服务中,我如何验证客户端在微服务(用户微服务除外)中的访问令牌?或者,我应该在每个微服务中保留密钥吗?

  • 在服务器上验证令牌的正确方法是什么? 我正在我的应用程序中使用jwt令牌机制,下面是它目前的工作方式: null null