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.
El complemento kubelogin en Azure es un complemento de credenciales de cliente plugin que implementa la autenticación de Microsoft Entra. El complemento kubelogin ofrece características que no están disponibles en la herramienta de línea de comandos kubectl. Para obtener más información, consulte la introducción a kubelogin y la introducción a kubectl.
En este artículo se proporciona información general y ejemplos de cómo usar kubelogin para todos los métodos de autenticación admitidos de Microsoft Entra en AKS.
Limitaciones de la autenticación de Kubelogin en AKS
- Los grupos creados en Microsoft Entra solo se incluyen por su valor ObjectID y no por su nombre para mostrar. El comando
sAMAccountNamesolo está disponible para grupos sincronizados desde Windows Server Active Directory local.
- El método de autenticación de entidad de servicio solo funciona con Microsoft Entra administrado, y no con la versión anterior Azure Active Directory.
- La entidad de servicio puede ser miembro de un máximo de 200 grupos de Microsoft Entra. Si tiene más de 200 grupos, considere la posibilidad de utilizar roles de aplicación.
- El método de autenticación por código de dispositivo no funciona cuando se establece una directiva de acceso condicional de Microsoft Entra en un inquilino de Microsoft Entra. En ese escenario, use la autenticación interactiva del explorador web en su lugar.
- El método de autenticación de la CLI de Azure solo funciona con Microsoft Entra administrado por AKS.
Funcionamiento de la autenticación
Nota:
Tenga en cuenta la siguiente información sobre la autenticación kubelogin para clústeres de AKS integrados con Microsoft Entra:
- Los clústeres que ejecutan kubernetes versión 1.24 o posterior usan automáticamente el formato kubelogin.
- Los clústeres que ejecutan Kubernetes 1.24 o versiones anteriores requieren la conversión manual. Puede usar el método de autenticación de código de dispositivo para convertir el archivo kubeconfig para usar el formato del complemento exec.
Para la mayoría de las interacciones con kubelogin, se utiliza el subcomando convert-kubeconfig. El subcomando utiliza el archivo kubeconfig especificado en --kubeconfig o en la variable de entorno KUBECONFIG para convertir el archivo kubeconfig final al formato exec según el método de autenticación especificado.
Los métodos de autenticación que implementa kubelogin son flujos de concesión de tokens OAuth 2.0 de Microsoft Entra. En cada método de autenticación, el token no se almacena en caché en el sistema de archivos.
Autenticación con código de dispositivo
El código de dispositivo es el método de autenticación predeterminado para el subcomando convert-kubeconfig. Este método de autenticación solicita el código de dispositivo para que el usuario inicie sesión desde una sesión del navegador.
Nota:
Antes de la introducción de los complementos kubelogin y exec, el método de autenticación de Azure en kubectl solo admitía el flujo de código de dispositivo. Utilizaba una versión anterior de una biblioteca que genera un token que tiene la reclamación audience con el prefijo spn:. No es compatible con AKS administrado por Microsoft Entra, que utiliza un flujo en nombre de (OBO). Cuando se ejecuta el subcomando convert-kubeconfig, kubelogin elimina el prefijo spn: de la reclamación de audiencia.
Parámetros para la autenticación de código de dispositivo
En la tabla siguiente se describen los parámetros que puede usar con la autenticación de código de dispositivo:
| Parámetro | Description |
|---|---|
-l devicecode (opcional) |
Especifica el método de autenticación kubelogin. Este parámetro es opcional porque el código del dispositivo es el método predeterminado. |
--legacy |
Usa el comportamiento heredado para versiones anteriores de clústeres de Azure Active Directory. Si se utiliza el archivo kubeconfig en un clúster de Azure Active Directory de una versión anterior, kubelogin añade automáticamente el indicador --legacy. |
--token-cache-dir |
Invalida la ruta de acceso predeterminada del directorio de caché de tokens, que es ${HOME}/.kube/cache/kubelogin. |
Autenticación de la CLI de Azure
El método de autenticación de la CLI de Azure (comando: -l azurecli) usa el contexto de inicio de sesión que la CLI de Azure establece para obtener el token de acceso. El token se emite en el mismo inquilino de Microsoft Entra que az login. kubelogin no escribe tokens en el archivo de caché de tokens porque la CLI de Azure ya las administra.
Parámetros para la autenticación de la CLI de Azure
En la tabla siguiente se describen los parámetros que puede usar con la autenticación de la CLI de Azure:
| Parámetro | Description |
|---|---|
-l azurecli |
Especifica el método de autenticación kubelogin. |
--azure-config-dir |
Especifica el directorio de configuración de la CLI de Azure. El directorio predeterminado es ${HOME}/.azure. |
Inicio de sesión en Azure
Inicie sesión en Azure con el comando az login.
az login
Autenticación interactiva del explorador web
El método interactivo del explorador web (comando: -l interactive) de autenticación abre automáticamente un explorador web para iniciar sesión en el usuario. Una vez autenticado el usuario, el explorador redirige al servidor web local mediante las credenciales comprobadas. Este método de autenticación cumple la directiva de acceso condicional.
Puede usar un token de portador o un token de prueba de posesión (PoP) con este método de autenticación.
Parámetros para la autenticación de tokens de portador
En la tabla siguiente se describen los parámetros que puede usar con la autenticación de token de portador:
| Parámetro | Description |
|---|---|
-l interactive |
Especifica el método de autenticación kubelogin. |
--token-cache-dir |
Invalida la ruta de acceso predeterminada del directorio de caché de tokens, que es ${HOME}/.kube/cache/kubelogin. |
Parámetros para la autenticación de tokens poP
En la tabla siguiente se describen los parámetros que puede usar con la autenticación de token de PoP:
| Parámetro | Description |
|---|---|
-l interactive |
Especifica el método de autenticación kubelogin. |
--pop-enabled |
Habilita la autenticación de tokens poP. |
--pop-claims |
Especifica las reclamaciones del token PoP en un formato de par clave-valor. Por ejemplo, u=/ARM/ID/OF/CLUSTER. |
Autenticación de entidad de servicio
El método de autenticación de la entidad de servicio (comando: -l spn) utiliza una entidad de servicio para autenticar al usuario. Se puede proporcionar la credencial estableciendo una variable de entorno o utilizando la credencial en un argumento de línea de comandos. Las credenciales compatibles que puede utilizar son una contraseña o un certificado de cliente PFX (Personal Information Exchange).
Parámetros para la autenticación de la entidad de servicio
En la tabla siguiente se describen los parámetros que puede usar con la autenticación del principal de servicio:
| Parámetro | Description |
|---|---|
-l spn |
Especifica el método de autenticación kubelogin. |
--client-id |
El ID de aplicación (client-id) del principal de servicio. |
--client-secret |
El secreto de cliente de la entidad de servicio. |
Autenticación de identidad administrada
Use el método de autenticación de identidad administrada (comando: -l msi) para las aplicaciones que se conectan a los recursos que admiten la autenticación de Microsoft Entra. Algunos ejemplos incluyen el acceso a recursos de Azure, como una máquina virtual (VM), un conjunto de escalado de máquinas virtuales o Azure Cloud Shell.
Puede usar la identidad administrada predeterminada asignada al recurso o a una identidad administrada específica asignada por el usuario.
Parámetros para la autenticación de identidad administrada
En la tabla siguiente se describen los parámetros que puede usar con la autenticación de identidad administrada:
| Parámetro | Description |
|---|---|
-l msi |
Especifica el método de autenticación kubelogin. |
--client-id |
El identificador de aplicación (client-id) de la identidad administrada asignada por el usuario. Si no especifica este parámetro, se usa la identidad administrada predeterminada. |
Autenticación de identidad de carga de trabajo
El método de autenticación de identidad de carga de trabajo (comando: -l workloadidentity) usa credenciales de identidad federadas con Microsoft Entra para autenticar el acceso a los clústeres de AKS. El método utiliza la autenticación integrada de Microsoft Entra. Funciona estableciendo las siguientes variables de entorno:
| Variable | Description |
|---|---|
AZURE_CLIENT_ID |
El ID de aplicación de Microsoft Entra que está federado con la identidad de carga de trabajo. |
AZURE_TENANT_ID |
Identificador de inquilino de Microsoft Entra. |
AZURE_FEDERATED_TOKEN_FILE |
El archivo que contiene una afirmación firmada de la identidad de la carga de trabajo, como un token de cuenta de servicio proyectada de Kubernetes (JWT). |
AZURE_AUTHORITY_HOST |
Dirección URL base de una autoridad de Microsoft Entra. Por ejemplo, https://login.microsoftonline.com/. |
Puede utilizar una identidad de carga de trabajo para acceder a clústeres de Kubernetes desde sistemas CI/CD como GitHub o ArgoCD sin almacenar credenciales de entidad de servicio en los sistemas externos. Para configurar la federación OpenID Connect (OIDC) desde GitHub, consulte el ejemplo de federación OIDC.
Parámetros para la autenticación de identidad de carga de trabajo
En la tabla siguiente se describen los parámetros que puede usar con la autenticación de identidad de carga de trabajo:
| Parámetro | Description |
|---|---|
-l workloadidentity |
Especifica el método de autenticación kubelogin. |
Exportar la ruta de acceso del archivo kubeconfig
Antes de ejecutar el convert-kubeconfig subcomando, exporte la ruta de acceso del archivo kubeconfig a la KUBECONFIG variable de entorno. Por ejemplo:
export KUBECONFIG=/path/to/kubeconfig
Convertir el archivo kubeconfig
Ejecute el convert-kubeconfig subcomando para convertir el archivo kubeconfig para usar el complemento exec para el método de autenticación elegido.
kubelogin convert-kubeconfig
kubelogin convert-kubeconfig -l azurecli
# Bearer token authentication
kubelogin convert-kubeconfig -l interactive
# Proof-of-Possession (PoP) token authentication
kubelogin convert-kubeconfig -l interactive --pop-enabled --pop-claims "u=/ARM/ID/OF/CLUSTER"
- Usar variables de entorno
- Uso de argumentos de línea de comandos
- Uso de un certificado de cliente
- Uso de un token poP con variables de entorno
Ejecute el
convert-kubeconfigsubcomando para convertir el archivo kubeconfig para usar el complemento exec.kubelogin convert-kubeconfig -l spnEstablezca las variables de entorno para el identificador de cliente y el secreto de cliente o el certificado de cliente. Por ejemplo:
export AZURE_CLIENT_ID=<service-principal-client-id> export AZURE_CLIENT_SECRET=<service-principal-client-secret>
# Default managed identity authentication
kubelogin convert-kubeconfig -l msi
# Specific managed identity authentication
kubelogin convert-kubeconfig -l msi --client-id <managed-identity-client-id>
kubelogin convert-kubeconfig -l workloadidentity
Eliminación de tokens almacenados en caché
Quite los tokens almacenados en caché mediante el kubelogin remove-tokens comando .
kubelogin remove-tokens
Obtención de información de nodo
Obtenga información del nodo mediante el kubectl get comando .
kubectl get nodes
Cómo usar kubelogin con AKS
AKS utiliza un par de aplicaciones propias de Microsoft Entra. Los identificadores de estas aplicaciones son los mismos en todos los entornos.
El ID de aplicación del servidor AKS Microsoft Entra (server-id) que utiliza el lado del servidor es 6dae42f8-4368-4678-94ff-3960e28e3630. El token de acceso que accede a los clústeres AKS debe emitirse para esta aplicación. En la mayoría de los métodos de autenticación kubelogin, debe utilizar --server-id con kubelogin get-token.
El identificador de aplicación cliente de Microsoft Entra de AKS (client-id) que kubelogin usa para realizar la autenticación de cliente pública en nombre del usuario es 80faf920-1908-4b52-b5ef-a8e7bedfc67a. El ID de aplicación cliente se utiliza en los métodos de autenticación interactiva del código del dispositivo y del navegador web.
Contenido relacionado
- Obtenga información sobre cómo integrar AKS con Microsoft Entra en el artículo de instrucciones de integración de AKS administrada por Microsoft Entra.
- Para empezar a trabajar con identidades administradas en AKS, consulte Uso de una identidad administrada en AKS.
- Para empezar a trabajar con identidades de carga de trabajo en AKS, vea Uso de una identidad de carga de trabajo en AKS.