【发布时间】:2019-09-13 17:50:36
【问题描述】:
我们有一个 Kubernetes 开发集群。我们希望为每个在此开发集群上工作的开发人员提供命名空间受控访问。
我们希望使用 Google 作为 Kubernetes API 支持的 OIDC 提供程序对其进行身份验证。
但这需要 client-secret 成为 ~/.kube/config
users:
- name: you@yourdomain.com
user:
auth-provider:
name: oidc
config:
client-id: <client-id>
client-secret: <client-secret>
idp-issuer-url: https://accounts.google.com
id-token: <id-token>
refresh-token: <refresh-token>
我们不希望将客户端密码泄露给用户,因为当开发人员离开组织时,客户端密码将被泄露并可能被滥用于模拟。
请建议如何使用 google 作为 OIDC 提供者在 kubernetes 集群中对用户进行身份验证,并且不会泄露客户端密码。
【问题讨论】:
-
这对我来说似乎很奇怪,我们在 GKE 中使用 GSuite 组织进行了 Google Cloud 身份验证。因此,即使此人离开组织但仍有访问令牌 - 如果此人从 GSuite 中的组织中删除,它将毫无用处。以及您如何管理 Google 作为 OIDC 的群组成员资格?
-
客户端密码可能被其他恶意应用滥用。问题是即使成员离开了组织,任何其他应用程序都可以使用客户端密码并现在充当当前应用程序,因为它同时具有客户端 ID 和密码,并且可以通过让现有用户登录到该应用程序来获得访问权限。可以在此处阅读有关为什么不应泄露客户端机密的更多信息 - salesforce.stackexchange.com/questions/14009/…
-
stackoverflow.com/questions/55836757/… 为客户端秘密利用讨论创建一个新主题。
标签: authentication kubernetes google-oauth openid-connect