更新时间:2024-03-04 GMT+08:00
分享

请求认证

在服务网格中配置请求授权,可以实现来源认证。在接收用户请求时,该配置用于认证请求头信息中的Access Token是否可信,并授权给来源合法的请求。请求认证通过负载选择器Selector选择目标负载。认证的规则通过JWTRule来描述,定义如何匹配JWT令牌上的认证信息。

创建请求认证

支持YAML创建请求认证。

  1. 登录UCS控制台,在左侧导航栏中单击“服务网格”。
  2. 单击服务网格名称,进入详情页。
  3. 在左侧导航栏,单击“服务安全”下的“请求认证”,进入请求认证详情页。
  4. 单击右上角“YAML创建”,弹出请求认证YAML创建界面。
  5. 为命名空间下的服务访问,校验请求中的认证信息。

    apiVersion: security.istio.io/v1beta1
    kind: RequestAuthentication               # 创建服务安全类别为请求认证
    metadata:
      name: forecast                          # 请求认证名
      namespace: weather                      # 在weather命名空间下创建
    spec:
      selector:
        matchLabels:
          app: forecast                       # 标签键值对
      jwtRules:
        - issuer: "weather@cloudnative-istio.book "
          jwksUri: https://cloudnative-istio.book/jwks-demo/jwks

更新请求认证

  1. 登录UCS控制台,在左侧导航栏中单击“服务网格”。
  2. 单击服务网格名称,进入详情页。
  3. 在左侧导航栏,单击“服务安全”下的“请求认证”,进入请求认证详情页。
  4. 选定要更新的认证策略,单击操作列下的“YAML编辑”。

    
        

删除请求认证

删除操作无法恢复,请谨慎操作。删除请求认证策略不会影响关联的服务本身运行。

  1. 登录UCS控制台,在左侧导航栏中单击“服务网格”。
  2. 单击服务网格名称,进入详情页。
  3. 在左侧导航栏,单击“服务安全”下的“请求认证”,进入请求认证详情页。
  4. 选定要删除的请求认证策略,单击操作列下的“删除”。
  5. 弹出“删除请求认证策略”对话框,单击“是”,删除请求认证完成。

案例

请求令牌自定义属性认证。

apiVersion: security.istio.io/v1beta1
kind: AuthorizationPolicy
metadata:
  name: detailed-jwt
spec:
  action: ALLOW
  rules:
    - from:
        - source:
            requestPrincipals: ["weather@cloudnative-istio.book/weather"]
      when:
        - key: request.auth.claims[role]
          values: ["editor"]

相关文档