Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a: ✔️ AKS Automatic ✔️ AKS Standard
Este artigo descreve como criar e gerir um emissor OpenID Connect (OIDC) para o seu cluster Azure Kubernetes Service (AKS). O emissor OIDC permite que o seu cluster AKS se integre com fornecedores de identidade como o Microsoft Entra ID, para que possa autenticar-se de forma segura e fornecer capacidades de login único (SSO) para aplicações a correr dentro do cluster.
Para a maioria das cargas de trabalho em produção, o AKS Automatic é a experiência AKS padrão recomendada. O AKS Automatic está pronto para entrar em produção por predefinição e inclui o emissor OIDC como uma funcionalidade de segurança pré-configurada. No AKS Standard, o comportamento do emissor OIDC depende da versão do Kubernetes e do estado do cluster, e pode ativar manualmente quando necessário.
Para saber mais sobre o AKS Automatic, veja O que é o Azure Kubernetes Service (AKS) Automatic?
Emitente OIDC no AKS Automatic e no AKS Standard
Ambos os modos de cluster AKS suportam o emissor OIDC, mas a configuração é diferente:
- AKS Automático: O emissor OIDC está pré-configurado.
- AKS Standard: Pode ser necessário ativar explicitamente o emissor OIDC, dependendo da versão e se já está configurado.
Para a maioria dos cenários de produção, comece com o AKS Automático para usar os valores padrão prontos para produção e reduzir a sobrecarga operacional.
Sobre o OpenID Connect (OIDC) em AKS
OpenID Connect (OIDC) estende o protocolo de autorização OAuth 2.0 para uso como outro protocolo de autenticação emitido pela Microsoft Entra ID. Pode usar o OIDC para ativar o single log-on (SSO) entre aplicações com OAuth no seu cluster Azure Kubernetes Service (AKS) usando um token de segurança chamado token ID. Pode ativar o emissor OIDC nos seus clusters AKS, o que permite ao Microsoft Entra ID (ou à plataforma de gestão de identidade e acessos de outro fornecedor cloud) descobrir as chaves públicas de assinatura do servidor API.
Pré-requisitos
Requisitos da plataforma:
- CLI do Azure versão 2.42.0 ou posterior (
az --versionpara verificar a versão, instalar ou atualizar o CLI do Azure se necessário). - Kubernetes versão 1.22 ou posterior.
Comportamento específico de versão (Norma AKS):
- O emissor OIDC está ativado por predefinição (sem necessidade do parâmetro
--enable-oidc-issuer) para clusters AKS recém-criados com a versão 1.34 ou posterior do Kubernetes. - Para clusters existentes, o OIDC não está ativado por padrão, independentemente da versão do Kubernetes, e requer ativação manual.
- Extensão automática do token desativada (
--service-account-extend-token-expiration=false) para a versão 1.30.0 ou posterior do Kubernetes. - Se o emissor OIDC não estivesse configurado anteriormente, é necessária habilitação manual para versões do Kubernetes anteriores à 1.34.
- Os tokens projetados de conta de serviço são necessários para clusters do Kubernetes com a versão 1.30 ou posterior.
Considerações importantes:
- Não podes desativar o emissor OIDC uma vez ativado.
- Ativar o emissor OIDC em clusters existentes requer o reinício do servidor API (breve tempo de inatividade).
- A vida útil máxima do token é de 24 horas (um dia).
Criar um cluster AKS com o emissor OIDC
AKS Automático (predefinição recomendada para produção)
No AKS Automatic, o emissor OIDC está pré-configurado. Não é necessária uma etapa separada para ativar o emissor OIDC.
Crie um cluster AKS Automatic seguindo o guia de início rápido:
Padrão AKS
Crie um cluster AKS Standard usando o az aks create comando com o --enable-oidc-issuer parâmetro.
# Set environment variables
RESOURCE_GROUP=<your-resource-group-name>
CLUSTER_NAME=<your-aks-cluster-name>
# Create the AKS Standard cluster with OIDC issuer enabled
az aks create \
--resource-group $RESOURCE_GROUP \
--name $CLUSTER_NAME \
--node-count 1 \
--enable-oidc-issuer \
--generate-ssh-keys
Observação
Nos clusters AKS Standard criados com a versão 1.34 do Kubernetes ou posterior, o emissor de OIDC é ativado por predefinição nos novos clusters.
Ativar o emissor OIDC num cluster AKS Standard existente
Ative o emissor OIDC num cluster AKS Standard existente usando o az aks update comando com o --enable-oidc-issuer parâmetro.
# Set environment variables
RESOURCE_GROUP=<your-resource-group-name>
CLUSTER_NAME=<your-aks-cluster-name>
# Enable the OIDC issuer on the existing AKS Standard cluster
az aks update \
--resource-group $RESOURCE_GROUP \
--name $CLUSTER_NAME \
--enable-oidc-issuer
Obter o URL do emissor OIDC
Obtenha a URL do emissor OIDC usando o az aks show comando.
# Set environment variables
RESOURCE_GROUP=<your-resource-group-name>
CLUSTER_NAME=<your-aks-cluster-name>
# Get the OIDC issuer URL
az aks show \
--name $CLUSTER_NAME \
--resource-group $RESOURCE_GROUP \
--query "oidcIssuerProfile.issuerUrl" \
-o tsv
Por predefinição, o emissor utiliza a URL base https://{region}.oic.prod-aks.azure.com, em que o valor de {region} corresponde à localização onde implementou o cluster AKS.
Efetuar a rotação da chave de assinatura do OIDC
Importante
Tenha em mente as seguintes considerações ao rodar as chaves de assinatura do OIDC:
- Se quiser invalidar a chave antiga imediatamente após a rotação da chave, deve rodar a chave OIDC duas vezes e reiniciar os pods usando tokens projetados da conta de serviço.
- Tanto as chaves antigas como as novas mantêm-se válidas durante 24 horas após a rotação.
- Precisas de atualizar manualmente o token a cada 24 horas (a menos que estejas a usar as bibliotecas clientes do Azure Identity, que se atualizam automaticamente).
Roda a chave OIDC usando o az aks oidc-issuer comando.
# Set environment variables
RESOURCE_GROUP=<your-resource-group-name>
CLUSTER_NAME=<your-aks-cluster-name>
# Rotate the OIDC signing keys
az aks oidc-issuer rotate-signing-keys \
--name $CLUSTER_NAME \
--resource-group $RESOURCE_GROUP
Obter o documento de descoberta
Vai ao URL do emissor do teu OIDC no navegador e adiciona /.well-known/openid-configuration ao URL.
Exemplo: https://eastus.oic.prod-aks.azure.com/.well-known/openid-configuration
Sua saída deve ser semelhante à saída de exemplo a seguir:
{
"issuer": "https://eastus.oic.prod-aks.azure.com/ffffffff-eeee-dddd-cccc-bbbbbbbbbbb0/00000000-0000-0000-0000-000000000000/",
"jwks_uri": "https://eastus.oic.prod-aks.azure.com/00000000-0000-0000-0000-000000000000/00000000-0000-0000-0000-000000000000/openid/v1/jwks",
"response_types_supported": [
"id_token"
],
"subject_types_supported": [
"public"
],
"id_token_signing_alg_values_supported": [
"RS256"
]
}
Obter o documento JWK Set
No seu navegador, vá ao jwks_uri a partir do documento de descoberta.
Por exemplo: https://eastus.oic.prod-aks.azure.com/00000000-0000-0000-0000-000000000000/00000000-0000-0000-0000-000000000000/openid/v1/jwks
Sua saída deve ser semelhante à saída de exemplo a seguir:
{
"keys": [
{
"use": "sig",
"kty": "RSA",
"kid": "xxx",
"alg": "RS256",
"n": "xxxx",
"e": "AQAB"
},
{
"use": "sig",
"kty": "RSA",
"kid": "xxx",
"alg": "RS256",
"n": "xxxx",
"e": "AQAB"
}
]
}
Observação
Durante a rotação de chaves, o documento de descoberta inclui uma chave adicional.