【问题标题】:Authenticate the JWT using firebase by using Istio endpoint authentication通过使用 Istio 端点身份验证,使用 Firebase 对 JWT 进行身份验证
【发布时间】:2020-10-09 09:53:29
【问题描述】:

我有一个带有 GLCB 的 GKE 后端(使用 Ingress-GCP,根据到各种 bakend 服务的路径完成路由)。我需要验证标头中的令牌并将请求传递给后端,如果它是有效的令牌。为了检查令牌的有效性,我需要传递给火力基地。一旦 firebase 说没问题,然后路由到正确的后端。

我最初使用的是 ingress-GCE,但似乎这只能通过使用 Istio 来实现。谁能建议如何进行基于 istio 的最终用户身份验证?

【问题讨论】:

  • 我认为你可以使用 AuthorizationPolicy 和 RequestAuthentication 来做到这一点。关于那个有istio documentation。你能检查一下并告诉我这是否是你要找的吗?
  • 感谢 Jakub 的回复。我浏览了这个文件,我不清楚的是让我详细说明。从 UI 端(使用 firebase 生成 jwt 的 android)在 API 调用的标头中为我提供了 JWT。 Istio 在 RequestAuthentication 中做了什么?我应该给 ``` jwtRules: - issuer: "testing@secure.istio.io" jwksUri: "raw.githubusercontent.com/istio/istio/release-1.7/security/…" ''' 赋予什么价值。我不确定这个 issuer 和 jwksURI 是什么意思。你能帮忙吗?
  • 嗨@Jithin Kumar S 我已经回答了你所有的问题。我希望这将帮助您了解应该放在那里的内容。

标签: kubernetes-ingress istio nginx-ingress


【解决方案1】:

您可以使用AuthorizationPolicyRequestAuthentication 来执行此操作。在 istio 文档中有 example 相关的内容。

Istio 在 RequestAuthentication 中做了什么?

如上所述here

RequestAuthentication 定义工作负载支持的请求身份验证方法。如果请求包含无效的身份验证信息,If 将根据配置的身份验证规则拒绝请求。不包含任何身份验证凭据的请求将被接受,但不会具有任何经过身份验证的身份。要仅限制对经过身份验证的请求的访问,这应附带授权规则。


如上所述here

issuer -> 标识发布 JWT 的 issuer。查看 issuer 具有不同 iss 声明的 JWT 将被拒绝。

示例:https://foobar.auth0.com 示例:1234567-compute@developer.gserviceaccount.com

jwksUri -> 提供者公钥集的 URL,用于验证 JWT 的签名。请参阅 OpenID 发现。

示例:https://www.googleapis.com/oauth2/v1/certs

firebase 有 2 个 jwtRules 和 jwskUri 示例。

其他所有资源:

【讨论】:

猜你喜欢
  • 2017-03-11
  • 1970-01-01
  • 2016-04-07
  • 1970-01-01
  • 2020-10-09
  • 1970-01-01
  • 2023-03-27
  • 2021-05-29
  • 2017-07-30
相关资源
最近更新 更多