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 App Builder. App Builder utiliza LDAP para validar las credenciales proporcionadas por el usuario contra un almacén de AD.
Las implementaciones modernas deberían favorecer el inicio de sesión único SAML (SSO) y WS-Federation sobre la autenticación de AD. SAML SSO y WS-Federation ofrecen mayor seguridad en la medida en que los usuarios no necesitan proporcionar sus credenciales a una aplicación de externo. Dado que AD no respeta un contexto de autenticación existente, la autenticación de AD no es un esquema SSO adecuado. Por este motivo, SAML SSO y WS-Federation generalmente ofrecen una mejor usabilidad porque no requieren que un usuario vuelva a ingresar sus credenciales. Finalmente, dado que los tokens de seguridad de SAML SSO y WS-Federation son negociados por el navegador a través de HTTP, no requieren que una aplicación de externo tenga acceso directo a los controladores de dominio de 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 | Obligatorio | Descripción |
---|---|---|---|---|
Contenedor | DC=ejemplo,DC=com | No | Especificación del contenedor LDAP de AD. | |
Contexto | Dominio | Tipo de contexto de AD. Los valores válidos incluyen Dominio, Máquina y Directorio de aplicaciones. | ||
Dominio | ejemplo.com ejemplo.com:389 | Sí | Nombre de dominio de Active Directory (AD). Puede incluir un número de puerto opcional. | |
Contraseña | No | Contraseña de la cuenta AD. Consulte a continuación para obtener más información. | ||
Nombre de usuario | No | Nombre de usuario de la cuenta AD. Consulte a continuación para obtener más información. |
De forma predeterminada, App Builder se conectará a los controladores de dominio de AD como usuario del grupo de aplicaciones de IIS. Es posible que esto no funcione en todas las situaciones, en particular si el servidor web no está alojado en el dominio de AD. En ese caso, deberá proporcionar el nombre de usuario y la contraseña de una cuenta en el dominio. Al crear la cuenta, tenga en cuenta lo siguiente:
- La cuenta debe tener acceso de lectura al árbol de AD: la pertenencia al 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 los tipos de reclamo:
- Nombre de cuenta Sam
- Nombre
- Nombre para mostrar
- Dirección de correo electrónico
- Número de teléfono de voz
Información Adicional
Para validar las credenciales en un almacén de Active Directory (AD), App Builder deberá poder conectarse a los controladores de dominio de AD a través de LDAP. Tradicionalmente, esto se realiza en el puerto 389.
Puede producirse una demora 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 ese objeto en el servidor".
Este error puede significar que la especificación del contenedor es incorrecta. Puede hacer referencia a una unidad organizativa inexistente. Si se trabaja con unidades organizativas anidadas, puede significar que el orden es incorrecto. Las unidades organizativas se deben proporcionar 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 App Builder no se pudo conectar 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 Microsoft Knowledge Base, el servidor LDAP se comunica en el puerto 389 mediante 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 a 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 App Builder servidor web.
Para probar la conectividad al puerto 389 mediante 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 de Active Directory.
Para probar la conectividad al puerto 389 mediante TCP:
> portqry -n ad.example.com -e 389 -p tcp
Si las pruebas son satisfactorias, verá una respuesta de consultar LDAP que incluye la fecha y hora actuales, así como varias propiedades de Active Directory. El siguiente es un ejemplo de una respuesta de consultar LDAP satisfactoria:
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 App Builder la consultar del controlador de dominio de Active Directory no es válida. Verifique las propiedades de nombre de usuario y contraseña.
Error: "El nombre de usuario o la contraseña son incorrectos".
Es posible que un usuario vea el error habitual "El nombre de usuario o la contraseña son incorrectos" al iniciar sesión, incluso si proporcionó 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 la 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 ese caso, este error indicaría que la cuenta de usuario no pertenece a la unidad organizativa.