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

时间:2017-07-11 21:03:08

标签: 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令牌中的某些内容匹配吗?

看起来,Google身份提供商返回的id_token可能会在其aud字段中包含某些内容(aud显然是"观众&#34 )。这是--oidc-client-id应该匹配的吗?我离开了吗?

1 个答案:

答案 0 :(得分:0)

这可以从id tokens上的kubernetes文档中解释。

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

当您注册身份提供者时,您会得到重要的回报。 client id 就是这样一个重要的参数。如果您了解openid连接流程,则需要在遵循流程时提供此 client id 。如果流程完成,您将返回 id token id token 必须拥有声明 aud ,这是发出令牌的受众。

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

引自规范,

  

客户必须验证aud(受众)声明是否包含在iss(发行人)声明中作为受众标识的发行人处注册的client_id值

现在,kubernetes使用持票人令牌。这里使用的令牌是 id tokens 。要验证令牌,它应该特别了解受众。这使API服务器能够验证为进行调用的特定客户端发出的令牌。从而授权呼吁成功。

相关问题