Istio Mixer 的 App Identity 和 Access Adapter 无法正常工作
App Identity and Access Adapter for Istio Mixer not working
我正在尝试使用 IBM App Identity and Access Adapter for Istio 保护前端应用程序。服务就绪后,需要执行两个步骤:
- 创建 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)
- 创建 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://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
我正在尝试使用 IBM App Identity and Access Adapter for Istio 保护前端应用程序。服务就绪后,需要执行两个步骤:
- 创建 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)
- 创建 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://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