10.12.2. Utiliser LDAP pour vous authentifier auprès des interfaces de Gestion
- Créer une connexion sortante au serveur LDAP.
- Créer un domaine de sécurité activé-LDAP.
- Référencer le nouveau domaine de sécurité dans l'interface de Gestion.
La connexion sortante LDAP autorise les attributs suivants :
Tableau 10.1. Attributs d'une Connexion sortante LDAP
Attribut | Requis | Description |
---|---|---|
url | oui |
L'adresse URL du serveur de répertoire.
|
search-dn | oui |
Le nom unique (DN) de l'utilisateur autorisé à effectuer des recherches.
|
search-credentials | oui |
Le mot de passe de l'utilisateur autorisé à effectuer des recherches.
|
initial-context-factory | non |
L'usine de contexte initiale à utiliser quand on établit une connexion. Valeur par défaut
com.sun.jndi.ldap.LdapCtxFactory .
|
security-realm | non |
Domaine de sécurité à référencer pour obtenir un
SSLContext configuré pour établir la connexion.
|
Exemple 10.13. Ajouter une connexion sortante LDAP
- Search DN:
cn=search,dc=acme,dc=com
- Search Credential:
myPass
- URL:
ldap://127.0.0.1:389
/host=master/core-service=management/security-realm=ldap_security_realm:add
/host=master/core-service=management/ldap-connection=ldap_connection/:add(search-credential=myPass,url=ldap://127.0.0.1:389,search-dn="cn=search,dc=acme,dc=com")
Les Interfaces de gestion peuvent authentifier sur le serveur LDAP au lieu des domaines de sécurité basés propriété-fichier et configurés par défaut. L'authentificateur LDAP fonctionne en établissant tout d'abord une connexion au serveur de répertoires distant. Il effectue ensuite une recherche en utilisant le nom d'utilisateur que l'utilisateur a transmis au système d'authentification, afin de trouver le nom unique complet (DN) du dossier LDAP. Une nouvelle connexion est alors établie, utilisant le DN de l'utilisateur comme information d'identification et mot de passe fournis par l'utilisateur. Si cette authentification au serveur LDAP réussit, le DN est considéré comme valide.
- connection
- Le nom de la connexion définie dans
<outbound-connections>
à utiliser pour se connecter au répertoire LDAP. - base-dn
- Le nom unique (DN) du contexte pour commencer à chercher l'utilisateur.
- recursive
- Indique si la recherche doit être récursive dans toute l'arborescence de répertoires LDAP, ou si l'on doit rechercher uniquement le contexte spécifié. La valeur par défaut est
false
. - user-dn
- Attribut de l'utilisateur qui détient le nom unique (DN). Utilisé par la suite pour tester l'authentification. Valeur par défaut
dn
. - Soit
username-filter
ouadvanced-filter
, comme élément enfant. - Le
username-filter
utilise un attribut unique nomméattribute
, dont la valeur correspond au nom de l'attribut LDAP qui contient le nom d'utilisateur, commeuserName
ousambaAccountName
.Leadvanced-filter
prend un attribut unique nomméfilter
, qui contient une recherche de filtre en syntaxe LDAP standard. Veillez à bien échapper les caractères&
en commutant à& amp;
. Voici un exemple de filtre :(&(sAMAccountName={0})(memberOf=cn=admin,cn=users,dc=acme,dc=com))
Après avoir échappé un caractère esperluette, le filtre apparaîtra ainsi :(&(sAMAccountName={0})(memberOf=cn=admin,cn=users,dc=acme,dc=com))
Exemple 10.14. XML représentant un Domaine de sécurité activé-LDAP
- connection -
ldap_connection
- base-dn -
cn=users,dc=acme,dc=com
. - username-filter -
attribute="sambaAccountName"
<security-realm name="ldap_security_realm"> <authentication> <ldap connection="ldap_connection" base-dn="cn=users,dc=acme,dc=com"> <username-filter attribute="sambaAccountName" /> </ldap> </authentication> </security-realm>
Avertissement
Exemple 10.15. Ajout d'un Domaine de sécurité LDAP
/host=master/core-service=management/security-realm=ldap_security_realm/authentication=ldap:add(base-dn="DC=mycompany,DC=org", recursive=true, username-attribute="MyAccountName", connection="ldap_connection")
Après avoir créé un domaine de sécurité, vous devez le référencer dans la configuration de votre interface de gestion. L'interface de gestion utilisera le domaine de sécurité pour l'authentification HTTP digest.
Exemple 10.16. Ajouter le Domaine de sécurité à l'interface HTTP
/host=master/core-service=management/management-interface=http-interface/:write-attribute(name=security-realm,value=ldap-security-realm)
Pour configurer un hôte dans un domaine géré pour s'authentifier sur Active Directory de Microsoft, suivre cette procédure, qui crée un domaine de sécurité et mappe les rôles aux groupes Active Directory, par l'authentification JAAS. Cette procédure est nécessaire parce que Microsoft Active Directory autorise la liaison avec un mot de passe vide. Cette procédure empêche l'utilisation d'un mot de passe vide dans la plate-forme d'applications.
master
.
Ajouter un nouveau
<security-realm>
nomméldap_security_realm
, et le configurer pour qu'il puisse utiliser JAAS.Les commandes CLI suivantes ajoutent le domaine de sécurité, puis définissent son mécanisme d'authentification. Modifier le nom de l'hôte selon les besoins./host=master/core-service=management/security-realm=ldap_security_realm/:add
/host=master/core-service=management/security-realm=ldap_security_realm/authentication=jaas/:add(name=managementLDAPDomain)
Configurer
<http-interface>
pour utiliser le nouveau domaine de sécurité.La commande de Management CLI suivante configure l'interface HTTP./host=master/core-service=management/management-interface=http-interface/:write-attribute(name=security-realm,value=ldap_security_realm)
Configurer JBoss Enterprise Application Platform pour ajouter une configuration JAAS personnalisée à ses paramètres de démarrage (start-up).
Modifier le fichierEAP_HOME /bin/domain.conf
. Rechercher la variableHOST_CONTROLLER_JAVA_OPTS
puis y ajouter des directives pour la JVM, qui sont nécessaires avant le démarrage de JBoss Enterprise Application Platform. Voici un exemple du contenu par défaut de ce paramètre :HOST_CONTROLLER_JAVA_OPTS="$JAVA_OPTS"
Ajouter la directive suivante à la ligne :-Djava.security.auth.login.config=/opt/jboss-eap-6.0/domain/configuration/jaas.conf"
La ligne modifiée ressemble à ceci :-Djava.security.auth.login.config=/opt/jboss-eap-6.0/domain/configuration/jaas.conf"
Ajouter le module de connexion aux options de module.
Dans le même fichier, chercher la ligne contenant ce qui suit :JBOSS_MODULES_SYSTEM_PKGS="org.jboss.byteman"
Modifier cette ligne pour qu'elle ressemble à ceci. Veillez à ne pas insérer d'espaces supplémentaires.JBOSS_MODULES_SYSTEM_PKGS="org.jboss.byteman,com.sun.security.auth.login"
Sauvegarder et fermer le fichierdomain.conf
.Créer la configuration JAAS qui sera ajoutée au chemin de classe.
Créer un nouveau fichier à l'emplacement suivant :EAP_HOME/domain/configuration/jaas.conf
Le fichier doit contenir ce qui suit. Modifier les paramètres pour qu'ils correspondent à votre environnement.managementLDAPDomain { org.jboss.security.auth.spi.LdapExtLoginModule required java.naming.factory.initial="com.sun.jndi.ldap.LdapCtxFactory" java.naming.provider.url="ldap://your_active_directory_host:389" java.naming.security.authentication="simple" bindDN="cn=Administrator,cn=users,dc=domain,dc=your_company,dc=com" bindCredential="password" baseCtxDN="cn=users,dc=domain,dc=redhat,dc=com" baseFilter="(&(sAMAccountName={0})(|(memberOf=cn=Domain Guests,cn=Users,dc=domain,dc=acme,dc=com)(memberOf=cn=Domain Admins,cn=Users,dc=domain,dc=acme,dc=com)))" allowEmptyPasswords="false" rolesCtxDN="cn=users,dc=domain,dc=acme,dc=com" roleFilter="(cn=no such group)" searchScope="SUBTREE_SCOPE"; };
- Redémarrer JBoss Enterprise Application Platform et votre interface HTTP utilisera le serveur LDAP pour l'authentification.