【发布时间】:2019-03-19 10:43:15
【问题描述】:
我正在运行 isio 1.0.2,无法根据针对 Azure AD 的 JWT 声明配置服务授权。
我已成功配置并验证了 Azure AD oidc jwt 最终用户身份验证,并且工作正常。
现在我想使用 request.auth.claims["preferred_username"] 属性配置 RBAC 授权。 我创建了一个如下所示的 ServiceRoleBinding:
apiVersion: "rbac.istio.io/v1alpha1"
kind: ServiceRole
metadata:
name: service-reader
namespace: default
spec:
rules:
- services: ["myservice.default.svc.cluster.local"]
methods: ["GET"]
paths: ["*/products"]
---
apiVersion: "rbac.istio.io/v1alpha1"
kind: ServiceRoleBinding
metadata:
name: service-reader-binding
namespace: default
spec:
subjects:
- properties:
source.principal: "*"
request.auth.claims["preferred_username"]: "user@company.com"
roleRef:
kind: ServiceRole
name: "service-reader"
但是,我不断从服务代理收到 403 Forbidden,即使来自 Authentication 标头的 preferred_username 声明是正确的。
如果我注释掉request.auth.claims["preferred_username"]: "user@company.com" 行,则请求成功。
谁能指出关于基于 oidc 和 jwt 配置授权的正确方向?
【问题讨论】:
标签: authorization jwt rbac istio