Saltar al contenido

Proveedor de Seguridad: Active Directory

El proveedor de seguridad de Active Directory (AD) es un esquema de autenticación basado en formularios. Al utilizar el proveedor de seguridad de AD, los usuarios proporcionan su nombre de usuario y contraseña de AD a Vinyl. Vinyl utiliza LDAP para validar las credenciales proporcionadas por el usuario en un almacén de AD.

Las implementaciones modernas deberían favorecer el inicio de sesión único SAML (SSO) y WS-Federación sobre autenticación AD. SAML SSO y WS-Federation ofrecen mayor seguridad en la medida en que no se requiere que los usuarios proporcionen sus credenciales a una aplicación de externo. Dado que AD no respeta un contexto de autenticación existente, la autenticación AD no es un esquema SSO adecuado. Por este motivo, SAML SSO y WS-Federation generalmente ofrecen una mejor usabilidad porque no requieren que el usuario vuelva a ingresar sus credenciales. Finalmente, dado que el navegador gestiona los tokens de seguridad SAML SSO y WS-Federation a través de HTTP, no requieren una aplicación de externo para tener acceso directo a los controladores de dominio AD. Esto hace que SAML SSO y WS-Federation sean más adecuados para implementaciones en la nube.

Configuración

El proveedor de seguridad de AD admite el aprovisionamiento de usuarios y grupos. Los usuarios y grupos se registran utilizando su nombre de cuenta SAM.

Parámetros

Parámetro Valor predeterminado Ejemplo Requerido Descripción
Contenedor DC=ejemplo,DC=com No Especificación del contenedor AD LDAP.
Contexto Dominio Tipo de contexto AD. Los valores válidos incluyen Dominio, Máquina y Directorio de aplicaciones.
Dominio ejemplo.com
ejemplo.com:389
Nombre de dominio de Active Directory (AD). Puede incluir un número de puerto opcional.
Contraseña No Contraseña de la cuenta AD. Vea abajo para más información.
Nombre de usuario No Nombre de usuario de la cuenta AD. Vea abajo para más información.

De forma predeterminada, Vinyl se conectará a los controladores de dominio AD como usuario del grupo de aplicaciones IIS. Es posible que esto no funcione en todas las situaciones, especialmente si el servidor web no está alojado en el dominio AD. En cuyo caso, deberá proporcionar el nombre de usuario y la contraseña de una cuenta del dominio. Al crear una cuenta, considere lo siguiente:

  • La cuenta debe tener acceso de lectura al árbol AD: la membresía en el grupo de seguridad "Usuarios del dominio" es suficiente.
  • La cuenta puede pertenecer a la Unidad Organizativa identificada por la especificación del Contenedor, pero no tiene por qué serlo.

Reclamos

El proveedor de Active Directory asigna las siguientes propiedades UserPrincipal a tipos de notificaciones:

  • Nombre de cuenta Sam
  • Nombre
  • Nombre para mostrar
  • Dirección de correo electrónico
  • VozNúmero de teléfono

Información Adicional

Para validar las credenciales en un almacén de Active Directory (AD), Vinyl deberá poder conectarse a los controladores de dominio de AD a través de LDAP. Tradicionalmente, esto ocurre en el puerto 389.

Puede producirse un retraso de 20 segundos o más al cruzar los límites del dominio. Agregar el número de puerto al dominio (por ejemplo, ejemplo.com:389) puede mejorar el rendimiento.

Solución de Problemas

Error: "No existe tal objeto en el servidor".

Este error puede significar que la especificación del contenedor es incorrecta. Puede referirse a una Unidad Organizativa inexistente. Si trabaja con unidades organizativas anidadas, puede significar que el orden es incorrecto. Las unidades organizativas deben proporcionarse en orden inverso. Por ejemplo, dada la siguiente ruta:

\Sales\North America

La especificación correcta del contenedor sería:

OU=North America,OU=Sales,DC=example,DC=com

Tenga en cuenta que los nombres de las unidades organizativas no distinguen entre mayúsculas y minúsculas.

Error: "No se pudo contactar con el servidor". o "El servidor LDAP no está disponible".

Este error indica que Vinyl no pudo conectarse al controlador de dominio de Active Directory. Verifique la propiedad Dominio.

Los clientes interactúan con Active Directory a través de LDAP. Como se indica en el siguiente artículo de la base de conocimiento de Microsoft, el servidor LDAP se comunica en el puerto 389 utilizando los protocolos UDP y TCP.

https://support.microsoft.com/en-us/help/832017/service-overview-and-network-port-requirements-for-windows

La herramienta Portqry se puede utilizar para probar la conectividad con Active Directory:

https://support.microsoft.com/en-us/help/816103/how-to-use-portqry-to-troubleshoot-active-directory-connectivity-issue

La herramienta se puede descargar desde el sitio de Microsoft:

https://www.microsoft.com/en-us/download/confirmation.aspx?id=17148

Tenga en cuenta que la herramienta Portqry debe ejecutarse desde el servidor web de Vinyl.

Para probar la conectividad al puerto 389 usando UDP, ejecute el siguiente comando:

> portqry -n ad.example.com -e 389 -p udp

Reemplace "ad.example.com" con el nombre activo o la dirección IP del servidor Active Directory.

Para probar la conectividad al puerto 389 usando TCP:

> portqry -n ad.example.com -e 389 -p tcp

Si las pruebas tienen éxito, verá una respuesta a la consultar LDAP que incluye la fecha y hora actuales, así como varias propiedades de Active Directory. El siguiente es un ejemplo de una respuesta exitosa a una consultar LDAP:

currentdate: 10/20/2018 11:22:33 (unadjusted GMT)
subschemaSubentry: CN=Aggregate,CN=Schema,CN=Configuration,DC=example,DC=com
dsServiceName: CN=NTDS Settings,CN=SERVER,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=example,DC=com
namingContexts: DC=example,DC=com
defaultNamingContext: DC=example,DC=com
schemaNamingContext: CN=Schema,CN=Configuration,DC=example,DC=com
configurationNamingContext: CN=Configuration,DC=example,DC=com
rootDomainNamingContext: DC=example,DC=com
supportedControl: 1.2.840.113556.1.4.319
supportedLDAPVersion: 3
supportedLDAPPolicies: MaxPoolThreads
highestCommittedUSN: 249947
supportedSASLMechanisms: GSSAPI
dnsHostName: SERVER.example.com
ldapServiceName: example.com:server$@EXAMPLE.COM
serverName: CN=SERVER,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=example,DC=com
supportedCapabilities: 1.2.840.113556.1.4.800
isSynchronized: TRUE
isGlobalCatalogReady: TRUE
domainFunctionality: 6
forestFunctionality: 6
domainControllerFunctionality: 6

Error: "El nombre de usuario o la contraseña son incorrectos".

Si el archivo de registro contiene el error "El nombre de usuario o la contraseña son incorrectos", puede significar que el nombre de usuario o la contraseña utilizados por Vinyl para consultar el controlador de dominio de Active Directory no son válidos. Verifique las propiedades Nombre de usuario y Contraseña.

Error: "El nombre de usuario o la contraseña son incorrectos".

Un usuario puede ver el error normal "El nombre de usuario o la contraseña son incorrectos" al iniciar sesión, incluso si ha proporcionado credenciales válidas. Esto puede indicar que el nombre de usuario se proporcionó en un formato incorrecto.

Al iniciar sesión, no proporcione el nombre de usuario en los formatos Nombre principal de usuario (usuario@ejemplo.com) o Nombre de inicio de sesión de nivel inferior (EJEMPLO\usuario). En su lugar, proporcione el nombre de usuario no calificado.

Error: "El nombre de usuario proporcionado no coincide con el nombre de cuenta SAM de un usuario principal".

Este error indica que el usuario está intentando autenticarse con una cuenta que no coincide con la especificación del contenedor. Por ejemplo, la especificación del contenedor puede restringir el acceso a una unidad organizativa determinada. En cuyo caso, este error indicaría que la cuenta de usuario no pertenece a la Unidad Organizativa.