Istio Mixer 的 App Identity 和 Access Adapter 无法正常工作

App Identity and Access Adapter for Istio Mixer not working

我正在尝试使用 IBM App Identity and Access Adapter for Istio 保护前端应用程序。服务就绪后,需要执行两个步骤:

  1. 创建 OidcConfig(这是他们示例中提供的默认配置):
kind: OidcConfig
metadata:
    name: hello-oidc
    namespace: my-namespace
spec:
    discoveryUrl: https://dev-b37sro-t.auth0.com/.well-known/openid-configuration
    clientId: E3LjLlomDnaPTc0b83eZa1gT0oGDNLko
    clientSecret: randomlyGeneratedClientSecret(not revealing this one)
  1. 创建 OidcPolicy(又是他们的示例配置):
apiVersion: "security.cloud.ibm.com/v1"
kind: Policy
metadata:
  name:  oidcsamplepolicy
  namespace: my-namespace
spec:
  targets:
    -
      serviceName: helloworld
      paths:
        - exact: /hello
          method: ALL
          policies:
            - policyType: oidc
              config: hello-oidc
              redirectUri: http://helloworld.my-namespace.my-project-host/hello

我使用 Auth0 作为身份颁发者,因此我生成了一个新应用程序(来自 Istio 1.4.0 的 helloworld)并从那里获取先前配置中所需的参数。

出于某种原因,当我在我的 Kubernetes Cluster/Namespace/Service 中应用 OidcConfig 和策略时,它似乎没有任何效果。我仍然可以从 Web 浏览器访问应用程序而无需任何身份验证。

这些是我为实现而遵循的链接:

https://www.ibm.com/cloud/blog/using-istio-to-secure-your-multicloud-kubernetes-applications-with-zero-code-change

https://github.com/ibm-cloud-security/app-identity-and-access-adapter

您是否将 global.disablePolicyChecks 设置为 false 并且您是否在安装 Istio 期间启用了混音器?

混合器现在默认禁用。

https://istio.io/docs/reference/config/installation-options/#mixer-options

更新:

我刚刚通过执行以下操作解决了我的设置问题:

首先查看disablePolicyCheck的状态:

kubectl -n istio-system get cm istio -o jsonpath="{@.data.mesh}" | grep disablePolicyChecks

如果这个returnsdisablePolicyChecks: true运行

istioctl manifest apply --set values.global.disablePolicyChecks=false \
 --set values.mixer.policy.enabled=true \
 --set values.pilot.policy.enabled=true

运行 以下应将 disablePolicyChecks 的值显示为 false

kubectl -n istio-system get cm istio -o jsonpath="{@.data.mesh}" | grep disablePolicyChecks