我在 Azure(AKS)上部署了 Kubernetes,并且还部署了 k8s 仪表板。
我已将 k8s 部署连接到我们的 Azure Active Directory (AAD),以便我们可以将 kubectl 命令与 AAD 登录一起使用(步骤如下:https://docs.microsoft.com/en-us/azure/aks/azure-ad-integration-cli)。
我还希望能够通过 AAD 对仪表板进行身份验证。我部署了 pusher oauth2_proxy (https://github.com/pusher/oauth2_proxy) 在我的服务器前面来实现这一点。
我的问题是:我可以授予 kubernetes 仪表板服务帐户管理员权限并使用该令牌进行身份验证。这意味着每个通过我们的 AD 进行身份验证的人都将获得完全访问权限。但是,我需要能够根据登录的用户过滤权限。在 oauth2_proxy 中,有一个标志 --pass-authorization-header(它将“Authorization: Bearer TOKEN”添加到标头),但似乎您只能在仪表板中使用服务帐户令牌,而不能使用用户令牌。
有什么办法可以解决这个问题吗?
答案1
我认为以下方法可能会有效。
创建一个基本组并使用 Azure Active Directory 添加成员在 Azure 部分。
至于 Kubernetes 部分,你应该使用RBAC为了使用 Azure Kubernetes 服务中的基于角色的访问控制和 Azure Active Directory 标识控制对群集资源的访问。
您将能够限制每个组的所需namespace
或某些操作,例如仅watch
。
这是一个很好的例子外部 OAUTH 身份验证使用 Kuberetes。