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 AD Connector, puede conectarse AWS Directory Service a su Active Directory empresarial existente. Cuando se conecta al directorio existente, todos los datos del directorio permanecen en los controladores de dominio. AWS Directory Service no replica ninguno de los datos del directorio.

Requisitos previos de Conector AD

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

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 de dos VPC. Las instancias EC2 que componen su directorio se ejecutan fuera de su AWS cuenta y son administradas por. AWSContienen 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

  • 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 al respecto AWS Direct Connect, consulte la Guía delAWS Direct Connect usuario.

Active Directory existente

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

nota

Conector AD no admite dominios de etiqueta única.

El nivel funcional de este dominio de 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 ordenadores al dominio: solo es necesario cuando se utiliza Seamless Domain Join y WorkSpaces

  • Crear objetos de ordenador: solo es necesario cuando se utiliza Seamless Domain Join y WorkSpaces

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 AWS interno, que utiliza tickets de Kerberos para realizar operaciones de 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 acerca de los registros SRV, vaya a SRV Resource Records en Microsoft. TechNet

Puertos para subredes

Para que Conector AD redirija solicitudes de directorio a controladores de dominio de 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.

nota

Si los servidores DNS o los servidores del controlador de dominio de su dominio de Active Directory existente se encuentra 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 conocer los requisitos de puerto adicionales, consulte Requisitos de puertos AD y AD DS en Microsoft TechNet.

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 acerca de esta configuración, consulte Autenticación previa 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

AWS IAM Identity Center requisitos previos

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

  • El AD Connector está configurado en la cuenta de administración de la AWS organización.

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

Para obtener más información, consulte los requisitos previos del Centro de identidad de IAM en la Guía del AWS IAM Identity Center usuario.

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.

  • Su red actual debe permitir el tráfico entrante desde los servidores a través del puerto de servidor RADIUS predeterminado (1812). 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 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. El siguiente procedimiento muestra cómo crear un nuevo grupo llamadoConnectors, delegar los privilegios necesarios para conectarse a este grupo y, AWS Directory Service a continuación, agregar 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 Usuarios y equipos de Active Directory, seleccione la raíz del dominio. En el menú, seleccione Acción y luego Delegar control. Si su AD Connector 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 Siguiente.

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

    nota

    Si va a utilizar Seamless Domain Join o WorkSpaces, también debe habilitar los permisos de escritura para que Active Directory pueda crear objetos de ordenador.

    
                            Asistente de delegación de control: en Mostrar estos permisos, se seleccionan los permisos generales, específicos de la propiedad y de 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 conocerá como su cuenta de servicio AD Connector y, dado que ahora es miembro del Connectors grupo, ahora tiene privilegios suficientes AWS Directory Service para conectarse 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. Descarga y descomprime la aplicación de DirectoryServicePortTestprueba. 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 DirectoryServicePortTest prueba solo se puede usar cuando los niveles funcionales del dominio y del bosque están configurados en Windows Server 2012 R2 o versiones anteriores.

    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 deAWS 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.

Qué se crea con tu AD Connector

Al crear un AD Connector, crea y asocia AWS Directory Service automáticamente una interfaz de red elástica (ENI) a cada una de las instancias de AD Connector. Cada uno de estos ENI es esencial para la conectividad entre la VPC y el AD AWS Directory Service Connector y nunca se debe eliminar. Puede identificar todas las interfaces de red reservadas para su uso AWS Directory Service mediante la descripción: «interfaz de redAWS creada para el identificador del directorio». Para obtener más información, consulte Interfaces de redes elásticas en la Guía del usuario de Amazon EC2 para instancias de Windows.

nota

Las instancias del Conector AD se implementan en dos zonas de disponibilidad de una región de forma predeterminada y se conectan a su Amazon Virtual Private Cloud (VPC). Las instancias del Conector AD que fallan se reemplazan automáticamente en la misma zona de disponibilidad con la misma dirección IP.

Al iniciar sesión en cualquier AWS aplicación o servicio integrado con un AD Connector (AWS IAM Identity Center incluido), la aplicación o el servicio reenvía la solicitud de autenticación a AD Connector, que luego la reenvía a un controlador de dominio de su Active Directory autogestionado para su autenticación. Si te has autenticado correctamente en tu Active Directory autogestionado, AD Connector devuelve un token de autenticación a la aplicación o al servicio (similar a un token de Kerberos). En este punto, ya puedes acceder a la AWS aplicación o al servicio.