Service Configuration
medium

Service Configuration Question #019e3a4f

Question Statement
Service Configuration
#kubernetes
#authentication
#openid-connect
#jwt
Medium

Qual framework o Kubernetes usa para autenticar usuários com JSON Web Tokens?

A

OpenID Connect

Correct
B

OpenID Container

C

OpenID Cluster

D

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:

  1. O usuário autentica-se com um provedor OIDC e recebe um ID token (JWT).
  2. O usuário inclui este token nas requisições à API (por exemplo, via kubectl com --token ou no cabeçalho Authorization).
  3. O API server do Kubernetes valida o token usando as chaves públicas do emissor OIDC configurado.
  4. O API server extrai o nome de usuário de uma claim (por exemplo, sub ou email) e opcionalmente mapeia grupos da claim groups.
  5. 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.