【问题标题】:Istio (1.6.2) : RBAC Access Denied for Valid JWT TokenIstio (1.6.2):有效 JWT 令牌的 RBAC 访问被拒绝
【发布时间】:2020-10-27 19:09:06
【问题描述】:

我是 Istio 的新手。我正在使用 JWT 实现授权。我收到有效 JWT 令牌的 RBAC 访问被拒绝错误。我添加了 JWT Payload and Authorization Policy 以供参考。我正在使用 Kubernetes 版本 v1.18.3 和 Istio 1.6.2。我在 minikube 上运行集群。

JWT 负载:

{
  "iss": "https://dev-n63ipah2.us.auth0.com/",
  "sub": "sEbjHGBcZ16D0jk8wohIp7vPoT0MWTO0@clients",
  "aud": "http://10.97.72.213/",
  "iat": 1594125596,
  "exp": 1594211996,
  "azp": "sEbjHGBcZ16D0jk8wohIp7vPoT0MWTO0",
  "scope": "read:contact write:contact update:contact delete:contact",
  "gty": "client-credentials"
}

授权政策:

apiVersion: "security.istio.io/v1beta1"
kind: "AuthorizationPolicy"
metadata:
  name: dex-ms-contact-require-jwt
  namespace: default
spec:
  selector:
    matchLabels:
      app: dex-ms-contact
  action: ALLOW
  rules:
  - from:
    - source:
       requestPrincipals: ["https://dev-n63ipah2.us.auth0.com/sEbjHGBcZ16D0jk8wohIp7vPoT0MWTO0@clients"]
    to:
    - operation:
       methods: ["*"]
       paths: ["*"]
    when:
    - key: request.auth.claims[iss]
      values: ["https://dev-n63ipah2.us.auth0.com/"]

应用授权策略后,我通过邮递员点击 GET http://10.97.72.213/contact/1 API,我得到 403 Forbidden RBAC: access denied。

注意:10.97.72.213 是 Minikube 集群的公共 IP 地址。

【问题讨论】:

  • 嗨,您可以添加特使日志以查看您的请求被拒绝的原因吗?您可以从here 了解如何获取这些日志。

标签: kubernetes oauth-2.0 jwt authorization istio


【解决方案1】:

根据 Istio 文档:

requestPrincipals - Optional. A list of request identities (i.e. “iss/sub” claims), which matches to the “request.auth.principal” attribute.

在你的情况下,isshttps://dev-n63ipah2.us.auth0.com/subhttps://dev-n63ipah2.us.auth0.com/,所以你可能想要这样的东西:

- from:
    - source:
       requestPrincipals: ["https://dev-n63ipah2.us.auth0.com//sEbjHGBcZ16D0jk8wohIp7vPoT0MWTO0@clients"]

(请注意双斜线 - 第一个是 iss 的一部分,第二个是分隔符)。

【讨论】:

  • 您是使用 base64 编码来获取字符串“sEbjHGBcZ16D0jk8wohIp7vPoT0MWTO0”还是客户端 ID?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-11-13
  • 2021-10-02
  • 2018-04-28
  • 2020-12-19
  • 1970-01-01
  • 2020-06-13
  • 2023-03-21
相关资源
最近更新 更多