我目前遇到了一个关于JWT身份验证的Istio AuthorizationPolicy配置的问题。我们的目标是为来自命名空间外部的流量启用JWT身份验证,同时允许命名空间内的请求在没有身份验证的情况下继续进行。
以下是相关配置:
- List item
apiVersion: security.istio.io/v1beta1
kind: AuthorizationPolicy
metadata:
annotations:
name: auth-policy
namespace: istio-system
spec:
rules:
- from:
- source:
requestPrincipals:
- '*'
- source:
notNamespaces:
- <namespace>
selector:
matchLabels:
<key>: <value>
apiVersion: "security.istio.io/v1beta1"
kind: "RequestAuthentication"
metadata:
name: jwt
namespace: istio-system
spec:
selector:
matchLabels:
<key>: <value>
jwtRules:
- issuer: "<issuer>"
jwksUri: "<jwksUri>"
fromHeaders:
- name: x-jwt-assertion
prefix: "Bearer "
字符串
我们遇到的问题是,尽管在AuthorizationPolicy中使用了notNamespaces字段,但指定名称空间中的请求也需要身份验证。我们期望名称空间内的请求可以免于身份验证。
如果任何人遇到类似的问题,或者了解正确的配置以实现我们所需的行为,我将非常感谢您的帮助。提前感谢您的帮助!
在Istio AuthorizationPolicy配置中,我们尝试使用以下规则实现JWT身份验证:
所有来自命名空间外部的流量都需要JWT身份验证。应允许指定命名空间内的请求,而无需进行任何身份验证。为此,我们在AuthorizationPolicy中使用notNamespaces字段来指定应该绕过身份验证的名称空间。
我们期望来自指定名称空间的请求不会触发JWT身份验证过程,并且可以在没有任何身份验证要求的情况下继续进行。
然而,尽管我们进行了配置,指定名称空间内的请求仍然受到JWT身份验证,这不是我们想要的行为。我们正在寻求帮助,以了解和解决这一问题。
1条答案
按热度按时间kiayqfof1#
您必须在
from
节中使用AND语义。您编写它的方式就好像有两个单独的具有OR语义的规则。卸下
-
使其与:字符串