Introducción a Conector AD - AWS Directory Service

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Introducción a Conector AD

Con el Conector AD puede conectar el AWS Directory Service al Active Directory empresarial existente. Cuando se conecte a su directorio existente, todos los datos del directorio permanecerán en los controladores de dominio. AWS Directory Service no replica ninguno de los datos de su directorio.

Requisitos previos de Conector AD

Para conectarse a su directorio existente con Conector AD, necesita lo siguiente:

Amazon VPC

Configurar una VPC con lo siguiente:

  • Dos subredes como mínimo. Cada una de las subredes debe estar en una zona de disponibilidad diferente.

  • La VPC debe estar conectada a la red existente a través de una conexión de red privada virtual (VPN) o de AWS Direct Connect.

  • La VPC debe disponer de tenencia de hardware predeterminada.

AWS Directory Service utiliza una estructura con dos VPC. Las instancias EC2 que conforman su directorio se ejecutan fuera de su cuenta de AWS y las administra AWS. Contienen dos adaptadores de red, ETH0 y ETH1. ETH0 es el adaptador de administración y se encuentra fuera de su cuenta. ETH1 se crea dentro de su cuenta.

El rango de IP de administración de la red ETH0 del directorio se elige mediante programación para garantizar que no entre en conflicto con la VPC en la que está implementado el directorio. Este rango de IP puede estar en cualquiera de los siguientes pares (ya que los directorios se ejecutan en dos subredes):

  • 10.0.1.0/24 y 10.0.2.0/24

  • 169.254.0.0/16

  • 192.168.1.0/24 y 192.168.2.0/24

Para evitar conflictos, comprobamos el primer octeto del CIDR ETH1. Si comienza con un 10, entonces elegimos una VPC 192.168.0.0/16 con subredes 192.168.1.0/24 y 192.168.2.0/24. Si el primer octeto no es un 10, elegimos una VPC 10.0.0.0/16 con subredes 10.0.1.0/24 y 10.0.2.0/24.

El algoritmo de selección no incluye las rutas de la VPC. Por lo tanto, es posible que este escenario provoque un conflicto del enrutamiento IP.

Para obtener más información, consulte los siguientes temas en la Guía del usuario de Amazon VPC.

Para obtener más información sobre AWS Direct Connect, consulte la Guía del usuario de AWS Direct Connect.

Active Directory existente

Necesitará conectarse a una red existente con un dominio del Active Directory.

nota

Conector AD no admite dominios de etiqueta única.

El nivel funcional de este dominio del Active Directory debe ser Windows Server 2003 o superior. Conector AD también admite la conexión a un dominio alojado en una instancia de Amazon EC2.

nota

Conector AD no admite controladores de dominio de solo lectura (RODC) cuando se utiliza en combinación con la característica de unión de dominios de Amazon EC2.

Cuenta de servicio

Debe disponer de las credenciales de una cuenta de servicio en el directorio existente con los siguientes privilegios delegados:

  • Leer usuarios y grupos: obligatorio

  • Unir equipos al dominio: obligatorio únicamente cuando se utiliza Unión a dominios sencilla y WorkSpaces

  • Crear objetos de equipo: obligatorio únicamente cuando se utiliza Unión a dominios sencilla y WorkSpaces

  • La contraseña de la cuenta de servicio debe cumplir con los requisitos de contraseñas de AWS. Las contraseñas de AWS deben contar con las siguientes especificaciones:

    • Deben tener entre 8 y 128 caracteres de extensión.

    • Deben contener al menos un carácter de tres de las siguientes categorías:

      • Letras minúsculas (a-z)

      • Letras mayúsculas (A-Z)

      • Números (0-9)

      • Caracteres no alfanuméricos (~!@#$%^&*_-+=`|\(){}[]:;"'<>,.?/)

Para obtener más información, consulte Privilegios delegados a su cuenta de servicio.

nota

Conector AD usa Kerberos para la autenticación y autorización de AWS aplicaciones. LDAP solo se usa para búsquedas de objetos de usuarios y grupos (operaciones de lectura). Con las transacciones LDAP, nada es mutable y las credenciales no se transmiten en texto limpio. La autenticación la gestiona un servicio interno de AWS, que utiliza tickets de Kerberos para llevar a cabo operaciones LDAP como usuario.

Permisos de usuario

Todos los usuarios de Active Directory deben tener permisos para leer sus propias atributos. En concreto los siguientes atributos:

  • GivenName

  • SurName

  • Mail

  • SamAccountName

  • UserPrincipalName

  • UserAccountControl

  • MemberOf

De forma predeterminada, los usuarios de Active Directory tienen permisos de lectura para estos atributos. Sin embargo, los administradores pueden modificarlos con el paso del tiempo, por lo que conviene que compruebe que los usuarios tienen estos permisos de lectura antes de configurar Conector AD por primera vez.

Direcciones IP

Consiga las direcciones IP de dos servidores DNS o controladores de dominio de su directorio existente.

Conector AD obtiene los registros SRV _ldap._tcp.<DnsDomainName> y _kerberos._tcp.<DnsDomainName> de estos servidores al conectar a su directorio, de modo que estos servidores deben contener dichos registros SRV. Conector AD intenta encontrar un controlador de dominio común que proporcionará ambos servicios LDAP y Kerberos, de modo que estos registros SRV deben incluir al menos un controlador de dominio común. Para obtener más información sobre los registros SRV, consulte SRV Resource Records en Microsoft TechNet.

Puertos para subredes

Para que el Conector AD redirija solicitudes de directorio a controladores de dominio del Active Directory existentes, el firewall de su red existente debe tener los siguientes puertos abiertos para los CIDR de las dos subredes de su instancia de Amazon VPC.

  • TCP/UDP 53: DNS

  • TCP/UDP 88: autenticación de Kerberos

  • TCP/UDP 389: LDAP

Estos son los puertos mínimos necesarios antes de que Conector AD pueda conectarse al directorio. La configuración específica podría requerir abrir puertos adicionales.

Si desea utilizar el Conector AD y Amazon WorkSpaces, el atributo DisableVlvSupportLDAP debe estar establecido en 0 para los controladores de dominio. Esta es la configuración predeterminada para los controladores de dominio. El Conector AD no podrá consultar a los usuarios del directorio si el atributo DisableVLVSupportLDAP está habilitado. Esto impide que el Conector AD funcione con Amazon WorkSpaces.

nota

Si los servidores DNS o los servidores del controlador de dominio de su dominio del Active Directory existente se encuentran en la VPC, los grupos de seguridad asociados a esos servidores deben tener los puertos anteriores abiertos a los CIDR de las dos subredes de la VPC.

Para obtener requisitos de puertos adicionales, consulte AD and AD DS Port Requirements en la documentación de Microsoft.

Autenticación previa de Kerberos

Las cuentas de usuario deben tener habilitada la autenticación previa de Kerberos. Para obtener instrucciones detalladas sobre cómo habilitar este ajuste, consulte Asegúrese de que la autenticación previa de Kerberos esté habilitada. Para obtener información general sobre esta configuración, consulte Preauthentication en Microsoft TechNet.

Tipos de cifrado

AD Connector admite los siguientes tipos de cifrado para la autenticación de los controladores de dominio de Active Directory a través de Kerberos:

  • AES-256-HMAC

  • AES-128-HMAC

  • RC4-HMAC

Requisitos previos de AWS IAM Identity Center

Si planea utilizar IAM Identity Center con Conector AD, debe asegurarse de que se cumpla lo siguiente:

  • Su Conector AD debe estar configurado en la cuenta maestra de la organización de AWS.

  • Su instancia de IAM Identity Center debe estar en la misma región en la que se configuró su directorio del Conector AD.

Para más información, consulte Requisitos previos de IAM Identity Center en la Guía del usuario de AWS IAM Identity Center.

Requisitos previos de la autenticación multifactor

Para admitir la autenticación multifactor con su directorio de Conector AD necesita lo siguiente:

  • Un servidor Remote Authentication Dial In User Service (RADIUS) en la red existente que tenga dos puntos de enlace de cliente. Los puntos de enlace de cliente de RADIUS tienen que cumplir los siguientes requisitos:

    • Para crear los puntos de enlace, necesita las direcciones IP de los servidores de AWS Directory Service. Estas direcciones IP se pueden obtener en el campo Directory IP Address de los detalles del directorio.

    • Los dos puntos de enlace de RADIUS tienen que utilizar el mismo código secreto compartido.

  • La red existente debe permitir el tráfico entrante procedente del puerto de servidor RADIUS (1812) predeterminado desde los servidores AWS Directory Service.

  • Los nombres de usuario deben ser idénticos en el servidor RADIUS y en el directorio existente.

Para obtener más información sobre cómo utilizar Conector AD con la MFA, consulte Habilitación de la autenticación multifactor para el Conector AD.

Privilegios delegados a su cuenta de servicio

Para poder conectarse al directorio existente, debe disponer de las credenciales de su cuenta de servicio del Conector AD en el directorio existente que tiene determinados privilegios delegados. Aunque los miembros del grupo Domain Admins (Administradores del dominio) tengan suficientes privilegios para conectarse al directorio, es recomendable utilizar una cuenta de servicio que tenga únicamente los privilegios mínimos necesarios para conectarse al directorio. En el procedimiento siguiente, se explica cómo crear un nuevo grupo denominado Connectors, cómo delegar los privilegios necesarios para conectar AWS Directory Service a este grupo y cómo añadir después una nueva cuenta de servicio a este grupo.

Este procedimiento debe realizarse en un equipo que esté unido al directorio y que tenga instalado el complemento de MMC Usuarios y equipos de Active Directory. Además, es necesario la sesión se inicie como administrador del dominio.

Para delegar privilegios a su cuenta de servicio
  1. Abra Usuarios y equipos de Active Directory y seleccione la raíz del dominio en el árbol de navegación.

  2. En la lista del panel izquierdo, haga clic con el botón derecho en Usuarios, seleccione Nuevo y, a continuación, seleccione Grupo.

  3. En el cuadro Nuevo objeto - Grupo, escriba lo siguiente y haga clic en Aceptar.

    Campo Valor/Selección
    Nombre del grupo Connectors
    Ámbito del grupo Global
    Tipo de grupo Seguridad
  4. En el árbol de navegación de Usuarios y equipos de Active Directory, seleccione identificar la unidad organizativa (OU) donde se crearán las cuentas de equipo. En el menú, seleccione Acción y luego Delegar control. Puede seleccionar una OU principal hasta el dominio, ya que los permisos se propagan a las OU secundarias. Si su Conector AD está conectado a AWS Managed Microsoft AD, no tendrá acceso para delegar el control en el nivel raíz del dominio. En este caso, para delegar el control, seleccione la unidad organizativa situada en la unidad organizativa del directorio en la que se crearán los objetos del equipo.

  5. En la página Asistente para delegación de control, haga clic en Siguiente y luego en Agregar.

  6. En el cuadro de diálogo Seleccionar usuarios, equipos o grupos, escriba Connectors y haga clic en Aceptar. Si se encuentran varios objetos, seleccione el grupo Connectors que creó anteriormente. Haga clic en Next (Siguiente).

  7. En la página Tareas que se delegarán, seleccione Crear una tarea personalizada para delegar y luego elija Siguiente.

  8. Seleccione Sólo los siguientes objetos en la carpeta y, a continuación, seleccione Objetos de equipo y Objetos de usuario.

  9. Seleccione Crear los objetos seleccionados en esta carpeta y Eliminar los objetos seleccionados en esta carpeta. A continuación, elija Next.

    Asistente de delegación de control: solo están seleccionadas las siguientes opciones en la carpeta: objetos de usuario, crear objetos seleccionados en esta carpeta y eliminar objetos seleccionados en esta carpeta.
  10. Seleccione Read (Lectura) y después elija Next (Siguiente).

    nota

    Si va a utilizar Unión a dominios sencilla o WorkSpaces, también debe habilitar permisos de Escritura de forma que Active Directory pueda crear objetos de equipo.

    Asistente de delegación de control: en Mostrar estos permisos, están seleccionados los permisos: general, específicos de propiedad y lectura.
  11. Compruebe la información en la página Finalización del Asistente para delegación de control y haga clic en Finalizar.

  12. Cree una cuenta de usuario con una contraseña segura y añada ese usuario al grupo Connectors. Este usuario se designará como su cuenta de servicio del Conector AD y, dado que ahora es miembro del grupo Connectors, tendrá privilegios suficientes para conectar AWS Directory Service al directorio.

Probar el conector de AD

Para que Conector AD pueda conectarse al directorio existente, el firewall de la red existente debe tener ciertos puertos abiertos para los CIDR de las dos subredes de la VPC. Para probar si estas condiciones se cumplen, siga estos pasos:

Para probar la conexión
  1. Ejecute una instancia de Windows en la VPC y conéctese a ella a través de RDP. La instancia debe ser miembro del dominio existente. El resto de los pasos deben realizarse en esta instancia de VPC.

  2. Descargue y descomprima la aplicación de prueba DirectoryServicePortTest. La aplicación de prueba contiene el código fuente y los archivos del proyecto de Visual Studio para que, si lo desea, pueda modificarla.

    nota

    Este script no es compatible con Windows Server 2003 o sistemas operativos antiguos.

  3. Desde un símbolo del sistema de Windows, ejecute la aplicación de prueba DirectoryServicePortTest con las siguientes opciones:

    nota

    La aplicación de prueba DirectoryServicePortTest solo se puede utilizar cuando los niveles funcionales de dominio y bosque se establecen en Windows Server 2012 R2 y versiones inferiores.

    DirectoryServicePortTest.exe -d <domain_name> -ip <server_IP_address> -tcp "53,88,389" -udp "53,88,389"
    <nombre_dominio>

    Nombre completo del dominio. Se utiliza para comprobar los niveles funcionales del bosque y el dominio. Si no incluye el nombre del dominio, no se comprobarán los niveles funcionales.

    <dirección_IP_servidor>

    Dirección IP de un controlador del dominio existente. Los puertos se comprobarán utilizando esta dirección IP. Si no incluye la dirección IP, no se comprobarán los puertos.

    Esta aplicación de prueba determina si están abiertos los puertos necesarios desde la VPC a su dominio y también verifica los niveles funcionales mínimos del bosque y el dominio.

    El resultado será similar al siguiente:

    Testing forest functional level. Forest Functional Level = Windows2008R2Forest : PASSED Testing domain functional level. Domain Functional Level = Windows2008R2Domain : PASSED Testing required TCP ports to <server_IP_address>: Checking TCP port 53: PASSED Checking TCP port 88: PASSED Checking TCP port 389: PASSED Testing required UDP ports to <server_IP_address>: Checking UDP port 53: PASSED Checking UDP port 88: PASSED Checking UDP port 389: PASSED

A continuación se muestra el código fuente de la aplicación DirectoryServicePortTest.

using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net; using System.Net.Sockets; using System.Text; using System.Threading.Tasks; using System.DirectoryServices.ActiveDirectory; using System.Threading; using System.DirectoryServices.AccountManagement; using System.DirectoryServices; using System.Security.Authentication; using System.Security.AccessControl; using System.Security.Principal; namespace DirectoryServicePortTest { class Program { private static List<int> _tcpPorts; private static List<int> _udpPorts; private static string _domain = ""; private static IPAddress _ipAddr = null; static void Main(string[] args) { if (ParseArgs(args)) { try { if (_domain.Length > 0) { try { TestForestFunctionalLevel(); TestDomainFunctionalLevel(); } catch (ActiveDirectoryObjectNotFoundException) { Console.WriteLine("The domain {0} could not be found.\n", _domain); } } if (null != _ipAddr) { if (_tcpPorts.Count > 0) { TestTcpPorts(_tcpPorts); } if (_udpPorts.Count > 0) { TestUdpPorts(_udpPorts); } } } catch (AuthenticationException ex) { Console.WriteLine(ex.Message); } } else { PrintUsage(); } Console.Write("Press <enter> to continue."); Console.ReadLine(); } static void PrintUsage() { string currentApp = Path.GetFileName(System.Reflection.Assembly.GetExecutingAssembly().Location); Console.WriteLine("Usage: {0} \n-d <domain> \n-ip \"<server IP address>\" \n[-tcp \"<tcp_port1>,<tcp_port2>,etc\"] \n[-udp \"<udp_port1>,<udp_port2>,etc\"]", currentApp); } static bool ParseArgs(string[] args) { bool fReturn = false; string ipAddress = ""; try { _tcpPorts = new List<int>(); _udpPorts = new List<int>(); for (int i = 0; i < args.Length; i++) { string arg = args[i]; if ("-tcp" == arg | "/tcp" == arg) { i++; string portList = args[i]; _tcpPorts = ParsePortList(portList); } if ("-udp" == arg | "/udp" == arg) { i++; string portList = args[i]; _udpPorts = ParsePortList(portList); } if ("-d" == arg | "/d" == arg) { i++; _domain = args[i]; } if ("-ip" == arg | "/ip" == arg) { i++; ipAddress = args[i]; } } } catch (ArgumentOutOfRangeException) { return false; } if (_domain.Length > 0 || ipAddress.Length > 0) { fReturn = true; } if (ipAddress.Length > 0) { _ipAddr = IPAddress.Parse(ipAddress); } return fReturn; } static List<int> ParsePortList(string portList) { List<int> ports = new List<int>(); char[] separators = {',', ';', ':'}; string[] portStrings = portList.Split(separators); foreach (string portString in portStrings) { try { ports.Add(Convert.ToInt32(portString)); } catch (FormatException) { } } return ports; } static void TestForestFunctionalLevel() { Console.WriteLine("Testing forest functional level."); DirectoryContext dirContext = new DirectoryContext(DirectoryContextType.Forest, _domain, null, null); Forest forestContext = Forest.GetForest(dirContext); Console.Write("Forest Functional Level = {0} : ", forestContext.ForestMode); if (forestContext.ForestMode >= ForestMode.Windows2003Forest) { Console.WriteLine("PASSED"); } else { Console.WriteLine("FAILED"); } Console.WriteLine(); } static void TestDomainFunctionalLevel() { Console.WriteLine("Testing domain functional level."); DirectoryContext dirContext = new DirectoryContext(DirectoryContextType.Domain, _domain, null, null); Domain domainObject = Domain.GetDomain(dirContext); Console.Write("Domain Functional Level = {0} : ", domainObject.DomainMode); if (domainObject.DomainMode >= DomainMode.Windows2003Domain) { Console.WriteLine("PASSED"); } else { Console.WriteLine("FAILED"); } Console.WriteLine(); } static List<int> TestTcpPorts(List<int> portList) { Console.WriteLine("Testing TCP ports to {0}:", _ipAddr.ToString()); List<int> failedPorts = new List<int>(); foreach (int port in portList) { Console.Write("Checking TCP port {0}: ", port); TcpClient tcpClient = new TcpClient(); try { tcpClient.Connect(_ipAddr, port); tcpClient.Close(); Console.WriteLine("PASSED"); } catch (SocketException) { failedPorts.Add(port); Console.WriteLine("FAILED"); } } Console.WriteLine(); return failedPorts; } static List<int> TestUdpPorts(List<int> portList) { Console.WriteLine("Testing UDP ports to {0}:", _ipAddr.ToString()); List<int> failedPorts = new List<int>(); foreach (int port in portList) { Console.Write("Checking UDP port {0}: ", port); UdpClient udpClient = new UdpClient(); try { udpClient.Connect(_ipAddr, port); udpClient.Close(); Console.WriteLine("PASSED"); } catch (SocketException) { failedPorts.Add(port); Console.WriteLine("FAILED"); } } Console.WriteLine(); return failedPorts; } } }

Creación de un Conector AD

Para conectarse a su directorio existente con Conector AD, siga estos pasos. Antes de comenzar este procedimiento, asegúrese de haber completado los requisitos previos que se indican en Requisitos previos de Conector AD.

nota

No puede crear un Conector AD con una plantilla de Cloud Formation.

Para conectarse con Conector AD
  1. En el panel de navegación de la consola de AWS Directory Service, elija Directorios y, a continuación, elija Configurar directorio.

  2. En la página Seleccionar tipo de directorio, elija Conector AD y, a continuación, elija Siguiente.

  3. En la página Enter AD Connector information (Especifique la información de AD Connector), facilite la siguiente información:

    Tamaño del directorio

    Elija entre la opción de tamaño Small (Pequeño) o Large (Grande). Para obtener más información acerca de los tamaños, consulte Conector de AD.

    Descripción del directorio

    Descripción opcional del directorio.

  4. En la página Choose VPC and subnets (Elegir la VPC y las subredes), proporcione la siguiente información y, a continuación, elija Next (Siguiente).

    VPC

    VPC del directorio.

    Subredes

    Elija las subredes de los controladores de dominio. Las dos subredes deben estar en diferentes zonas de disponibilidad.

  5. En la página Connect to AD (Conectar a AD), proporcione la siguiente información:

    Nombre de DNS del directorio

    Nombre completo del directorio existente, por ejemplo corp.example.com.

    Nombre NetBIOS del directorio

    Nombre abreviado del directorio existente, por ejemplo CORP.

    Direcciones IP de DNS

    La dirección IP de al menos un servidor DNS del directorio existente. Estos servidores deben ser accesibles desde cada subred especificada en el paso 4. Estos servidores pueden estar ubicados fuera de AWS, siempre que haya conectividad de red entre las subredes especificadas y las direcciones IP del servidor DNS.

    Nombre de usuario de la cuenta de servicio

    El nombre de usuario de un usuario del directorio existente. Para obtener más información acerca de esta cuenta, consulte Requisitos previos de Conector AD.

    Contraseña de la cuenta de servicio

    La contraseña de la cuenta del usuario existente. Esta contraseña distingue entre mayúsculas y minúsculas y debe tener un mínimo de 8 caracteres y un máximo de 128. También debe contener al menos un carácter de tres de las siguientes categorías:

    • Letras minúsculas (a-z)

    • Letras mayúsculas (A-Z)

    • Números (0-9)

    • Caracteres no alfanuméricos (~!@#$%^&*_-+=`|\(){}[]:;"'<>,.?/)

    Confirmar contraseña

    Vuelva a escribir la contraseña de la cuenta del usuario existente.

  6. En la página Review & create (Revisar y crear), revise la información del directorio y haga los cambios que sean necesarios. Cuando la información sea correcta, seleccione Create directory (Crear directorio). La creación del directorio tarda varios minutos. Una vez creado, el valor Status cambia a Active.

Para obtener más información sobre lo que se crea con el Conector AD, consulte ¿Qué se crea con el Conector AD?.