ldapctxfactory example java authentication active-directory ldap

ldapctxfactory - ldap java example



¿Cuáles son los formatos SECURITY_PRINCIPAL aceptados para la autenticación LDAP en Active Directory? (2)

Creo que necesitas revisar la plantilla principal de LDAP. Especifica la plantilla de autenticación principal requerida por su servidor LDAP. La plantilla de autenticación principal es el formato en el que la información de autenticación para el principal de seguridad (la persona que inicia sesión) se debe pasar al servidor LDAP. El valor predeterminado es $ {email}, que es el formato requerido por Microsoft Active Directory. Otros servidores LDAP requieren diferentes plantillas de autenticación. Consulte con su administrador de red para obtener más información sobre su servidor LDAP.

Estoy tratando de autenticar a un usuario a través de LDAP contra Active Directory. A continuación se muestra el fragmento de código que utilizo:

private DirContext bindAsUser(String bindPrincipal, String password) { Hashtable<String,String> env = new Hashtable<String,String>(); env.put(Context.SECURITY_AUTHENTICATION, "simple"); env.put(Context.SECURITY_PRINCIPAL, bindPrincipal); env.put(Context.PROVIDER_URL, bindUrl); env.put(Context.SECURITY_CREDENTIALS, password); env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory"); env.put(Context.REFERRAL, "follow"); try { return new InitialLdapContext(env, null); } catch (NamingException e) { e.printStackTrace() } }

El código de enlace funciona si proporciono:

  • Nombre de inicio de sesión de nivel NetBIOSDomainName/sAMAccountName , es decir, NetBIOSDomainName/sAMAccountName (por ejemplo, dominio / nombre de usuario), o
  • userPrincipalName (por ejemplo, [email protected]), o
  • distinguishedName (p. ej., CN = nombre de usuario, OU = xxx, DC = abc, DC = com), o
  • objectSid (por ejemplo, S-1-5-21-3623811015-3361044348-30300820-1013)

como SECURITY_PRINCIPAL , aunque falló si se utilizó sAMAccountName (por ejemplo, nombre de usuario) (supongo que solo los nombres que son únicos en el bosque son válidos).

Entonces, ¿cuáles son los patrones aceptados para SECURITY_PRINCIPAL ? Busqué en algunas preguntas similares, pero ninguna proporciona referencias a documentos oficiales de AD / LDAP. ¿O es una configuración que podría buscar en alguna parte? ¡Gracias!


De [MS-ADTS: Especificación técnica de Active Directory], el documento oficial de AD, supongo.

http://msdn.microsoft.com/en-us/library/cc223499.aspx

La sección "5.1.1.1.1 Autenticación simple" enumera todos los formularios de nombre admitidos por la autenticación simple.