Istio Mixer的应用程序身份和访问适配器不起作用

时间:2019-12-09 14:39:45

标签: kubernetes google-cloud-platform ibm-cloud openid-connect istio

我正在尝试使用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群集/命名空间/服务中应用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

1 个答案:

答案 0 :(得分:2)

您是否将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

如果返回disablePolicyChecks: 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