kubernetes - 将Kubernetes设置为使用OpenID Connect时--oidc-client-id参数的用途是什么?

标签 kubernetes openid-connect google-openidconnect

Kubernetes documentation related to OpenID Connect提到,作为设置的一部分,您需要向API服务器提供一些参数:

--oidc-client-id: A client id that all tokens must be issued for.

关于它如何映射到something returned by the OpenID Connect-conformant Google identity provider,没有其他解释。

我不知道此参数值将用于什么。它会与解码后的JWT token 中的内容匹配吗?

Google身份提供商返回的id_token看起来可能在aud字段中包含一些内容,一旦被解码(aud显然是“受众”的缩写)。这是--oidc-client-id应该匹配的吗?我要走吗?

最佳答案

可以从id tokens上的kubernetes文档中对此进行解释。

如您所见,身份提供者是一个独立的系统。例如,您可以显示为MS Azure AD或Google。

注册身份提供者时,您会得到重要的返回。 client id 是这样一个重要的参数。如果您知道openid连接流程,则在遵循该流程时,需要提供此 client id 。如果流程完成,您将返回 id token 。一个 id token 必须拥有一个声明,即 aud ,这是为其颁发 token 的受众。

当您验证 id token 时,您必须验证您是否在受众群体列表中。可以从spec中找到更多信息。

引用规范,

The Client MUST validate that the aud (audience) Claim contains its client_id value registered at the Issuer identified by the iss (issuer) Claim as an audience



现在,kubernetes使用了承载 token 。这里使用的 token 是 id tokens 。为了验证 token , token 应该特别了解受众。这使API服务器可以验证为发出 call 的特定客户端发行的 token 。因此授权成功的呼吁。

关于kubernetes - 将Kubernetes设置为使用OpenID Connect时--oidc-client-id参数的用途是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45044411/

相关文章:

amazon-web-services - Kubernetes Pod 因无效卷区域不匹配而失败

docker - 部署Tensorflow服务客户端脚本

kubernetes - 如何在值(value)中使用 Helm 值(value)?

authentication - 为什么我不应该在 IDP 上下文中使用 IdToken 作为不记名 token ?

azure - UseOpenIdConnectAuthentication - 无法取消对消息的保护。状态错误消息

kubernetes - 大使显示没有健康的上游

java - OpenId 连接 Google 和 linkedIn

security - JwtBearerHandler 缓存 OpenIdConnectConfiguration 'forever'

google-authentication - 我可以为 Google OpenIDConnect id_token 获得一致的 'iss' 值吗?