2

与 OpenID Connect 相关的Kubernetes 文档提到,作为设置的一部分,您需要向 API 服务器提供一些参数:

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

没有其他解释说明这将如何映射到符合 OpenID Connect 的 Google 身份提供者返回的内容。

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

看起来id_token谷歌身份提供者返回的内容可能包含一些东西,一旦解码,在其aud字段中(aud显然是“观众”的缩写)。这是--oidc-client-id应该匹配的吗?我走远了吗?

4

1 回答 1

1

这可以从关于id tokens的 kubernetes 文档中得到解释。

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

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

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

引用规范,

客户端必须验证 aud(受众)声明是否包含其在发行者处注册的 client_id 值,该发行者由 iss(发行者)声明标识为受众

现在,kubernetes 使用不记名令牌。这里使用的令牌是id tokens. 要验证令牌,它应该专门了解受众。这使 API 服务器能够验证为进行调用的特定客户端颁发的令牌。从而授权成功的召唤。

于 2017-07-12T02:41:46.647 回答