Integración de Azure Active Directory administrado por AKSAKS-managed Azure Active Directory integration

La integración de Azure AD administrado por AKS está diseñada para simplificar la experiencia de integración de Azure AD, donde los usuarios debían crear una aplicación cliente y otra de servidor, y donde el inquilino de Azure AD debía conceder permisos de lectura para Active Directory.AKS-managed Azure AD integration is designed to simplify the Azure AD integration experience, where users were previously required to create a client app, a server app, and required the Azure AD tenant to grant Directory Read permissions. En la nueva versión, el proveedor de recursos de AKS administra las aplicaciones de cliente y servidor.In the new version, the AKS resource provider manages the client and server apps for you.

Introducción a la autenticación de Azure ADAzure AD authentication overview

Los administradores de clústeres pueden configurar el control de acceso basado en rol de Kubernetes (RBAC de Kubernetes) en función de la identidad de un usuario o la pertenencia a grupos de directorios.Cluster administrators can configure Kubernetes role-based access control (Kubernetes RBAC) based on a user's identity or directory group membership. La autenticación de Azure AD se proporciona a los clústeres de AKS con OpenID Connect.Azure AD authentication is provided to AKS clusters with OpenID Connect. OpenID Connect es una capa de identidad creada basándose en el protocolo OAuth 2.0.OpenID Connect is an identity layer built on top of the OAuth 2.0 protocol. Puede encontrar más información sobre OpenID Connect en la documentación de OpenID Connect.For more information on OpenID Connect, see the Open ID connect documentation.

Obtenga más información sobre el flujo de integración de Azure AD en la documentación de los conceptos de la integración de Azure Active Directory.Learn more about the Azure AD integration flow on the Azure Active Directory integration concepts documentation.

LimitacionesLimitations

  • No se puede deshabilitar la integración de Azure AD administrados por AKS.AKS-managed Azure AD integration can't be disabled
  • Los clústeres habilitados para RBAC que no son de Kubernetes no se admiten para la integración de Azure AD administrado por AKS.non-Kubernetes RBAC enabled clusters aren't supported for AKS-managed Azure AD integration
  • No se admite el cambio del inquilino de Azure AD asociado a la integración de Azure AD administrado por AKS.Changing the Azure AD tenant associated with AKS-managed Azure AD integration isn't supported

Requisitos previosPrerequisites

  • La CLI de Azure, versión 2.11.0 o posteriorThe Azure CLI version 2.11.0 or later
  • Kubectl con la versión 1.18.1, como mínimo, o kubeloginKubectl with a minimum version of 1.18.1 or kubelogin
  • Si usa helm, versión mínima de helm 3.3.If you are using helm, minimum version of helm 3.3.

Importante

Debe usar Kubectl con la versión 1.18.1, como mínimo, o kubelogin.You must use Kubectl with a minimum version of 1.18.1 or kubelogin. Si no usa la versión correcta, observará problemas de autenticación.If you don't use the correct version, you will notice authentication issues.

Para instalar kubectl y kubelogin, use los siguientes comandos:To install kubectl and kubelogin, use the following commands:

sudo az aks install-cli
kubectl version --client
kubelogin --version

Siga estas instrucciones para otros sistemas operativos.Use these instructions for other operating systems.

Antes de empezarBefore you begin

Para el clúster, necesita un grupo de Azure AD.For your cluster, you need an Azure AD group. Este grupo es necesario como grupo de administradores para que el clúster conceda permisos de administrador de clústeres.This group is needed as admin group for the cluster to grant cluster admin permissions. Puede usar un grupo de Azure AD existente o crear uno nuevo.You can use an existing Azure AD group, or create a new one. Anote el identificador de objeto del grupo de Azure AD.Record the object ID of your Azure AD group.

# List existing groups in the directory
az ad group list --filter "displayname eq '<group-name>'" -o table

Para crear un grupo de Azure AD para los administradores de clúster, use el comando siguiente:To create a new Azure AD group for your cluster administrators, use the following command:

# Create an Azure AD group
az ad group create --display-name myAKSAdminGroup --mail-nickname myAKSAdminGroup

Creación de un clúster de AKS con Azure AD habilitadoCreate an AKS cluster with Azure AD enabled

Cree un clúster de AKS con los comandos de la CLI siguientes.Create an AKS cluster by using the following CLI commands.

Crear un grupo de recursos de Azure:Create an Azure resource group:

# Create an Azure resource group
az group create --name myResourceGroup --location centralus

Cree un clúster de AKS y habilite el acceso de administración para el grupo de Azure ADCreate an AKS cluster, and enable administration access for your Azure AD group

# Create an AKS-managed Azure AD cluster
az aks create -g myResourceGroup -n myManagedCluster --enable-aad --aad-admin-group-object-ids <id> [--aad-tenant-id <id>]

Un clúster de Azure AD administrado por AKS creado correctamente contiene la sección siguiente en el cuerpo de la respuestaA successful creation of an AKS-managed Azure AD cluster has the following section in the response body

"AADProfile": {
    "adminGroupObjectIds": [
      "5d24****-****-****-****-****afa27aed"
    ],
    "clientAppId": null,
    "managed": true,
    "serverAppId": null,
    "serverAppSecret": null,
    "tenantId": "72f9****-****-****-****-****d011db47"
  }

Una vez creado el clúster, puede empezar a acceder a él.Once the cluster is created, you can start accessing it.

Acceso a un clúster habilitado para Azure ADAccess an Azure AD enabled cluster

Necesitará el rol integrado del usuario del clúster de Azure Kubernetes Service para realizar los pasos siguientes.You'll need the Azure Kubernetes Service Cluster User built-in role to do the following steps.

Obtenga las credenciales de usuario para acceder al clúster:Get the user credentials to access the cluster:

 az aks get-credentials --resource-group myResourceGroup --name myManagedCluster

Siga las instrucciones para iniciar sesión.Follow the instructions to sign in.

Use el comando "kubectl get nodes" para ver los nodos del clúster:Use the kubectl get nodes command to view nodes in the cluster:

kubectl get nodes

NAME                       STATUS   ROLES   AGE    VERSION
aks-nodepool1-15306047-0   Ready    agent   102m   v1.15.10
aks-nodepool1-15306047-1   Ready    agent   102m   v1.15.10
aks-nodepool1-15306047-2   Ready    agent   102m   v1.15.10

Configure el control de acceso basado en rol de Azure (RBAC) para configurar grupos de seguridad adicionales para los clústeres.Configure Azure role-based access control (Azure RBAC) to configure additional security groups for your clusters.

Solución de problemas de acceso con Azure ADTroubleshooting access issues with Azure AD

Importante

En los pasos que se describen a continuación se omite la autenticación de grupo de Azure AD normal.The steps described below are bypassing the normal Azure AD group authentication. Úselos únicamente en caso de emergencia.Use them only in an emergency.

Si está bloqueado permanentemente al no tener acceso a un grupo de Azure AD válido con acceso al clúster, de todos modos puede obtener las credenciales de administrador para acceder directamente al clúster.If you're permanently blocked by not having access to a valid Azure AD group with access to your cluster, you can still obtain the admin credentials to access the cluster directly.

Para llevar a cabo estos pasos, necesitará tener acceso al rol integrado Administrador de clúster de Azure Kubernetes Service.To do these steps, you'll need to have access to the Azure Kubernetes Service Cluster Admin built-in role.

az aks get-credentials --resource-group myResourceGroup --name myManagedCluster --admin

Habilitación de la integración de Azure AD administrados por AKS en el clúster existenteEnable AKS-managed Azure AD Integration on your existing cluster

Puede habilitar la integración de Azure AD administrado por AKS en el clúster habilitado para RBAC de Kubernetes existente.You can enable AKS-managed Azure AD Integration on your existing Kubernetes RBAC enabled cluster. Asegúrese de establecer el grupo de administradores para mantener el acceso al clúster.Ensure to set your admin group to keep access on your cluster.

az aks update -g MyResourceGroup -n MyManagedCluster --enable-aad --aad-admin-group-object-ids <id-1> [--aad-tenant-id <id>]

Una activación correcta de un clúster de Azure AD administrado por AKS contiene la sección siguiente en el cuerpo de la respuesta:A successful activation of an AKS-managed Azure AD cluster has the following section in the response body

"AADProfile": {
    "adminGroupObjectIds": [
      "5d24****-****-****-****-****afa27aed"
    ],
    "clientAppId": null,
    "managed": true,
    "serverAppId": null,
    "serverAppSecret": null,
    "tenantId": "72f9****-****-****-****-****d011db47"
  }

Vuelva a descargar las credenciales de usuario para acceder al clúster; para ello, siga los pasos que se indican aquí.Download user credentials again to access your cluster by following the steps here.

Actualización a la integración de Azure AD administrado por AKSUpgrading to AKS-managed Azure AD Integration

Si el clúster usa la integración de Azure AD heredada, puede actualizar a la integración de Azure AD administrado por AKS.If your cluster uses legacy Azure AD integration, you can upgrade to AKS-managed Azure AD Integration.

az aks update -g myResourceGroup -n myManagedCluster --enable-aad --aad-admin-group-object-ids <id> [--aad-tenant-id <id>]

Una migración correcta de un clúster de Azure AD administrado por AKS contiene la sección siguiente en el cuerpo de la respuesta:A successful migration of an AKS-managed Azure AD cluster has the following section in the response body

"AADProfile": {
    "adminGroupObjectIds": [
      "5d24****-****-****-****-****afa27aed"
    ],
    "clientAppId": null,
    "managed": true,
    "serverAppId": null,
    "serverAppSecret": null,
    "tenantId": "72f9****-****-****-****-****d011db47"
  }

Si quiere acceder al clúster, siga los pasos que se indican aquí.If you want to access the cluster, follow the steps here.

Inicio de sesión no interactivo con kubeloginNon-interactive sign in with kubelogin

Hay algunos escenarios no interactivos, como las canalizaciones de integración continua, que no están disponibles actualmente con kubectl.There are some non-interactive scenarios, such as continuous integration pipelines, that aren't currently available with kubectl. Puede usar kubelogin para acceder al clúster con el inicio de sesión no interactivo de la entidad de servicio.You can use kubelogin to access the cluster with non-interactive service principal sign-in.

Uso de acceso condicional con Azure AD y AKSUse Conditional Access with Azure AD and AKS

Al integrar Azure AD con el clúster de AKS, también puede usar el acceso condicional para controlar el acceso al clúster.When integrating Azure AD with your AKS cluster, you can also use Conditional Access to control access to your cluster.

Nota

El acceso condicional de Azure AD es una capacidad de Azure AD Premium.Azure AD Conditional Access is an Azure AD Premium capability.

Para crear una directiva de acceso condicional de ejemplo para usarla con AKS, complete los siguientes pasos:To create an example Conditional Access policy to use with AKS, complete the following steps:

  1. En la parte superior de Azure Portal, busque y seleccione Azure Active Directory.At the top of the Azure portal, search for and select Azure Active Directory.
  2. En el menú de Azure Active Directory del lado izquierdo, seleccione Aplicaciones empresariales.In the menu for Azure Active Directory on the left-hand side, select Enterprise applications.
  3. En el menú de aplicaciones empresariales del lado izquierdo, seleccione Acceso condicional.In the menu for Enterprise applications on the left-hand side, select Conditional Access.
  4. En el menú de acceso condicional del lado izquierdo, seleccione Directivas y después Nueva directiva.In the menu for Conditional Access on the left-hand side, select Policies then New policy. Incorporación de una directiva de acceso condicional
  5. Escriba un nombre para la directiva, como aks-policy.Enter a name for the policy such as aks-policy.
  6. Haga clic en Usuarios y grupos y, luego, debajo de Incluir seleccione Seleccionar usuarios y grupos.Select Users and groups, then under Include select Select users and groups. Elija los usuarios y grupos en los que quiere aplicar la directiva.Choose the users and groups where you want to apply the policy. En este ejemplo, elija el mismo grupo de Azure AD que tiene acceso de administración al clúster.For this example, choose the same Azure AD group that has administration access to your cluster. Selección de usuarios o grupos para aplicar la directiva de acceso condicional
  7. Seleccione Aplicaciones en la nube o acciones y, después, debajo de Incluir, escoja Seleccionar aplicaciones.Select Cloud apps or actions, then under Include select Select apps. Busque Azure Kubernetes Service y seleccione Azure Kubernetes Service AAD Server.Search for Azure Kubernetes Service and select Azure Kubernetes Service AAD Server. Selección de Azure Kubernetes Service AD Server para aplicar la directiva de acceso condicional
  8. En Controles de acceso, seleccione Conceder.Under Access controls, select Grant. Seleccione Conceder acceso y después Requerir que el dispositivo esté marcado como compatible.Select Grant access then Require device to be marked as compliant. Selección para permitir solo los dispositivos compatibles con la directiva de acceso condicional
  9. En Habilitar directiva, seleccione Activar y, después, Crear.Under Enable policy, select On then Create. Habilitación de la directiva de acceso condicional

Obtenga las credenciales de usuario para acceder al clúster, por ejemplo:Get the user credentials to access the cluster, for example:

 az aks get-credentials --resource-group myResourceGroup --name myManagedCluster

Siga las instrucciones para iniciar sesión.Follow the instructions to sign in.

Use el comando kubectl get nodes para ver los nodos del clúster:Use the kubectl get nodes command to view nodes in the cluster:

kubectl get nodes

Siga las instrucciones para iniciar sesión de nuevo.Follow the instructions to sign in again. Observe que hay un mensaje de error que indica que inició sesión correctamente, pero el administrador requiere que el dispositivo que solicita acceso esté administrado por su instancia de Azure AD para acceder al recurso.Notice there is an error message stating you are successfully logged in, but your admin requires the device requesting access to be managed by your Azure AD to access the resource.

En Azure Portal, vaya a Azure Active Directory, seleccione Aplicaciones empresariales y, después, en Actividad seleccione Inicios de sesión. Observe que hay una entrada en la parte superior con un valor de Estado de Error y un Acceso condicional Correcto.In the Azure portal, navigate to Azure Active Directory, select Enterprise applications then under Activity select Sign-ins. Notice an entry at the top with a Status of Failed and a Conditional Access of Success. Seleccione la entrada y, a continuación, seleccione Acceso condicional en Detalles.Select the entry then select Conditional Access in Details. Observe que se muestra su directiva de acceso condicional.Notice your Conditional Access policy is listed.

Error en la entrada de inicio de sesión debido a la directiva de acceso condicional

Pasos siguientesNext steps