kubernetes - Istio Mixer 的应用程序身份和访问适配器不工作
问题描述
我正在尝试使用 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 集群/命名空间/服务中应用 OidcConfig 和策略时,它似乎没有任何效果。我仍然可以从 Web 浏览器访问应用程序,而无需任何身份验证。
这些是我为实现而遵循的链接:
https://github.com/ibm-cloud-security/app-identity-and-access-adapter
解决方案
您是否在安装 Istio 期间设置global.disablePolicyChecks
并false
启用了混音器?
现在默认情况下禁用混音器。
请参阅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
asfalse
kubectl -n istio-system get cm istio -o jsonpath="{@.data.mesh}" | grep disablePolicyChecks
推荐阅读
- django - 模型表单无法验证和发布
- javascript - 如何在javascript(js)中将文本输入转换为元素输入?
- javascript - JavaScript 递归:使用递归获取数组的长度而不访问其长度属性
- reactjs - SearchIcon 上的媒体查询不起作用。Material-UI, React
- ponyorm - 聚合的查询语法不像宣传的那样工作
- javascript - 如何在 PHP if/else 语句中调用 JavaScript 文件?
- r - 在 stat_function 图中创建锐利的垂直线
- python - 使用 exec() 从字符串运行 lambda 函数
- python - 有没有一种有效的方法来生成对称随机矩阵?
- php - 如何访问这个多维数组中对象的属性?