我正在尝试使用IBM App Identity and Access Adapter for Istio保护前端应用程序。服务到位后,需要执行两个步骤:
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)
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
答案 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