Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a: ✔️ AKS Automatic ✔️ AKS Standard
En este artículo se describe cómo crear y administrar un emisor de OpenID Connect (OIDC) para el clúster de Azure Kubernetes Service (AKS). El emisor de OIDC permite que el clúster de AKS se integre con proveedores de identidades como Microsoft Entra ID, por lo que puede autenticarse de forma segura y proporcionar funcionalidades de inicio de sesión único (SSO) para las aplicaciones que se ejecutan en el clúster.
Para la mayoría de las cargas de trabajo de producción, AKS Automatic es la experiencia predeterminada de AKS recomendada. AKS Automatic está listo para producción de forma predeterminada e incluye el emisor de OIDC como una funcionalidad de seguridad preconfigurada. En AKS Standard, el comportamiento del emisor de OIDC depende de la versión y el estado del clúster de Kubernetes, y puede habilitarlo manualmente cuando sea necesario.
Para obtener más información sobre AKS Automatic, consulte ¿Qué es Azure Kubernetes Service (AKS) automático?
Emisor de OIDC en AKS Automatic y AKS Standard
Ambos modos de clúster de AKS admiten el emisor de OIDC, pero la configuración difiere:
- AKS Automatic: el emisor de OIDC está preconfigurado.
- AKS Standard: es posible que tenga que habilitar explícitamente el emisor de OIDC, en función de la versión y de si ya está configurado.
Para la mayoría de los escenarios de producción, comience con AKS Automatic para usar los valores predeterminados listos para producción y reduzca la sobrecarga operativa.
Acerca de OpenID Connect (OIDC) en AKS
OpenID Connect (OIDC) amplía el protocolo de autorización de OAuth 2.0 para su uso como otro protocolo de autenticación emitido por Microsoft Entra ID. Puede usar OIDC para habilitar el inicio de sesión único (SSO) entre aplicaciones habilitadas para OAuth en el clúster de Azure Kubernetes Service (AKS) mediante un token de seguridad denominado token de identificador. Puede habilitar el emisor de OIDC en los clústeres de AKS, lo que permite Microsoft Entra ID (u otra plataforma de administración de identidades y acceso del proveedor de nube) para detectar las claves de firma pública del servidor de API.
Requisitos previos
Requisitos de la plataforma:
- CLI de Azure versión 2.42.0 o posterior (
az --versionpara comprobar la versión, instalar o actualizar CLI de Azure si es necesario). - Kubernetes versión 1.22 o posterior.
Comportamiento específico de la versión (AKS Standard):
- El emisor de OIDC está habilitado de forma predeterminada (sin
--enable-oidc-issuermarca necesaria) para los clústeres de AKS recién creados en la versión 1.34 o posterior de Kubernetes. - En el caso de los clústeres existentes, OIDC no está habilitado de forma predeterminada, independientemente de la versión de Kubernetes y requiera la habilitación manual.
- Extensión automática de tokens desactivada (
--service-account-extend-token-expiration=false) para la versión 1.30.0 o posterior de Kubernetes. - Si el emisor de OIDC no se configuró anteriormente, se requiere la habilitación manual para las versiones de Kubernetes anteriores a la 1.34.
- Los tokens de cuenta de servicio proyectados son necesarios para clústeres de Kubernetes versión 1.30 o posteriores.
Consideraciones importantes:
- No se puede deshabilitar el emisor de OIDC una vez habilitado.
- La habilitación del emisor de OIDC en clústeres existentes requiere el reinicio del servidor de API (breve tiempo de inactividad).
- La duración máxima del token es de 24 horas (un día).
Creación de un clúster de AKS con el emisor de OIDC
AKS Automático (valor predeterminado recomendado para producción)
En AKS Automatic, el emisor de OIDC está preconfigurado. No es necesario un paso independiente para habilitar el emisor de OIDC.
Cree un clúster automático de AKS siguiendo el inicio rápido:
AKS Standard
Cree un clúster de AKS Standard mediante el az aks create comando con el --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
Nota:
En los clústeres estándar de AKS creados con kubernetes versión 1.34 o posterior, el emisor de OIDC está habilitado de forma predeterminada para los nuevos clústeres.
Habilitar el emisor de OIDC en un clúster AKS Standard existente
Habilite el emisor de OIDC en un clúster AKS Estándar existente mediante el comando az aks update con el parámetro --enable-oidc-issuer.
# 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
Obtención de la dirección URL del emisor de OIDC
Obtenga la dirección URL del emisor de OIDC mediante el 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
De forma predeterminada, el emisor usa la URL base https://{region}.oic.prod-aks.azure.com, donde el valor de {region} coincide con la ubicación en la que desplegó el clúster de AKS.
Rotación de la clave de firma de OIDC
Importante
Tenga en cuenta las siguientes consideraciones al rotar las claves de firma de OIDC:
- Si desea invalidar la clave anterior justo después que roten las claves, deberá rotar dos veces la clave OIDC y reiniciar los pods mediante tokens de cuenta de servicio proyectados.
- Las claves antiguas y nuevas permanecen válidas durante 24 horas después de la rotación.
- Necesita actualizar el token manualmente cada 24 horas (salvo que utilice las bibliotecas cliente de Azure Identity, que se actualizan automáticamente).
Gire la clave OIDC mediante el 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
Obtención del documento de detección
Vaya a la dirección URL del emisor de OIDC en el explorador y agregue /.well-known/openid-configuration a la dirección URL.
Ejemplo: https://eastus.oic.prod-aks.azure.com/.well-known/openid-configuration
La salida debería ser similar a la salida de ejemplo siguiente:
{
"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"
]
}
Obtener el documento de JWK Set
En el navegador, acceda a jwks_uri desde el documento de descubrimiento.
Por ejemplo: https://eastus.oic.prod-aks.azure.com/00000000-0000-0000-0000-000000000000/00000000-0000-0000-0000-000000000000/openid/v1/jwks
La salida debería ser similar a la salida de ejemplo siguiente:
{
"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"
}
]
}
Nota:
Durante la rotación de claves, el documento de detección incluye una clave adicional.