Jwt 更改Azure AKS中的istio授权策略

Jwt 更改Azure AKS中的istio授权策略,jwt,istio,azure-aks,Jwt,Istio,Azure Aks,我在Azure AKS中使用istio进行身份验证时遇到问题。据我所知,我正在生成一个有效的令牌,但我得到一个403错误 应用程序的istio授权配置为: kind: AuthorizationPolicy metadata: name: entitlements-jwt-authz namespace: osdu spec: selector: matchLabels: app: entitlements-azure action: DENY rules

我在Azure AKS中使用istio进行身份验证时遇到问题。据我所知,我正在生成一个有效的令牌,但我得到一个403错误

应用程序的istio授权配置为:

kind: AuthorizationPolicy
metadata:
  name: entitlements-jwt-authz
  namespace: osdu
spec:
  selector:
    matchLabels:
      app: entitlements-azure
  action: DENY
  rules:
    - from:
        - source:
            notRequestPrincipals: ["*"]
      to:
        - operation:
            notPaths: ["/",
                       "*/v2/api-docs",
                       "*/swagger-resources","*/swagger-ui.html",
                       "*/actuator/health",
                       "/entitlements/v1/swagger-resources/*",
                       "/entitlements/v1/webjars/*"]

我想尝试改变这一政策,使其仅允许,这样我就可以尝试将其隔离为一个象征性的问题,但我不确定如何改变这一政策,因为kubernetes不是我的经验。谁能给我指一下正确的方向吗

我不确定我是否提供了足够的信息,因此请询问是否需要更多信息

谢谢
Mike

我猜您有一个与istio的签名验证不兼容的
访问令牌

去分析你的代币。
标题是否包含一个
nonce
?如果是,这就是问题所在。Azure对此并不真正透明,但据我所知,签名必须使用JWKS和nonce进行验证,而istio不能这样做


对我来说,解决方案是将范围从默认MS Graph范围更改为自定义范围。您可以在应用程序注册中创建作用域或使用默认作用域:
/.default
,例如
abce-1234-ghkli-5677/。default

此授权策略应该做什么?如果您只想将其更改为
允许
,那么您只需要更改
操作
。如果要将整个授权策略从deny更改为allow,但要继续执行相同的操作,则必须更改
操作
操作
。因此,您将使用
action:ALLOW
requestPrincipals:[“*”]
路径
。另外,您可以看看,我使用AuthorizationPolicy deny和allow进行了一些测试。如果这能回答你的问题,请告诉我。