Service Configuration Question #019e3a4f
Qual framework o Kubernetes usa para autenticar usuários com JSON Web Tokens?
OpenID Connect
OpenID Container
OpenID Cluster
OpenID CNCF
Official Explanation / Community Explanations
O Kubernetes usa OpenID Connect (OIDC) como um framework para autenticar usuários com JSON Web Tokens (JWTs). OIDC é uma camada de identidade construída sobre o protocolo OAuth 2.0, permitindo que clientes verifiquem a identidade dos usuários com base na autenticação realizada por um servidor de autorização e obtenham informações básicas de perfil. No Kubernetes, o OIDC é configurado por meio de flags do API server como --oidc-issuer-url, --oidc-client-id e --oidc-username-claim. Quando um usuário apresenta um JWT emitido por um provedor OIDC confiável (por exemplo, Google, Dex, Keycloak), o API server do Kubernetes valida a assinatura, o emissor e as claims do token para autenticar o usuário e mapeá-lo para uma identidade de usuário do Kubernetes.
Como funciona:
- O usuário autentica-se com um provedor OIDC e recebe um ID token (JWT).
- O usuário inclui este token nas requisições à API (por exemplo, via
kubectlcom--tokenou no cabeçalhoAuthorization). - O API server do Kubernetes valida o token usando as chaves públicas do emissor OIDC configurado.
- O API server extrai o nome de usuário de uma claim (por exemplo,
subouemail) e opcionalmente mapeia grupos da claimgroups. - O usuário autenticado é então autorizado com base em RBAC ou outros modos de autorização.
Por que o valor correto está certo:
OpenID Connect é o protocolo padrão para autenticação baseada em JWT no Kubernetes. Ele é suportado nativamente pelo API server e amplamente utilizado em clusters de produção para integração com provedores de identidade externos.
Por que os valores incorretos estão errados:
- OpenID Container: Não é um protocolo ou framework real. O Kubernetes não usa nenhuma variante "container" do OpenID.
- OpenID Cluster: Este termo não existe em contextos de autenticação. Clusters Kubernetes usam OpenID Connect, não "OpenID Cluster".
- OpenID CNCF: A Cloud Native Computing Foundation (CNCF) hospeda o Kubernetes, mas não define um protocolo de autenticação. "OpenID CNCF" não é um framework válido.