VIYA - Méthode pour diagnostiquer un problème de configuration LDAP

Dans cet article, je vous présente la méthode à suivre pour diagnostiquer un problème de configuration ldap dans Viya. Les commandes et la méthode ci-dessous permettent de vérifier le bon mapping des champs entre la configuration VIYA et la structure de votre annuaire LDAP. Pour cette exemple, nous allons vérifier la définition des groupes.

1 - Extraire la configuration avec sas-bootstrap-config

/opt/sas/viya/home/bin/sas-bootstrap-config --token-file /opt/sas/viya/config/etc/SASSecurityCertificateFramework/tokens/consul/default/client.token kv read --recurse config/identities >  /tmp/identities.conf
 grep group /tmp/identities.conf
Ce qui donne : config/identities/sas.identities.providers.ldap.group/accountId=name config/identities/sas.identities.providers.ldap.group/baseDN=ou=groups,dc=nicolashousset,dc=com config/identities/sas.identities.providers.ldap.group/createdDate=createTimestamp config/identities/sas.identities.providers.ldap.group/description=description config/identities/sas.identities.providers.ldap.group/distinguishedName=none config/identities/sas.identities.providers.ldap.group/member=member config/identities/sas.identities.providers.ldap.group/memberOf=memberOf config/identities/sas.identities.providers.ldap.group/modifiedDate=modifyTimestamp config/identities/sas.identities.providers.ldap.group/name=displayName config/identities/sas.identities.providers.ldap.group/objectClass=groupOfNames config/identities/sas.identities.providers.ldap.group/objectFilter=(objectClass=groupOfNames) config/identities/sas.identities.providers.ldap.group/searchFilter=dn={0} config/identities/sas.identities.providers.ldap.user/objectFilter=(& (objectClass=inetOrgPerson) (|(memberOf=cn=SASAdministrators,ou=groups,dc=nicolashousset,dc=com)(memberOf=cn=Marketing,ou=groups,dc=nicolashousset,dc=com)(memberOf=cn=Sales,ou=groups,dc=nicolashousset,dc=com) ) )

2 - Vérifier le BaseDN

Cette commande doit retourner la liste des groupes :
ldapsearch  -x -v -h ldap.franihviya -p 389 -b "ou=groups,dc=nicolashousset,dc=com"

3 - Vérifier objectClass

ldapsearch  -x -v -h ldap.franihviya -p 389 -b "ou=groups,dc=nicolashousset,dc=com"  | grep objectClass
ObjectClass est un élément AttributeType d'un schéma LDAP. Chaque entrée LDAP a un attribut ObjectClass. L' attribut ObjectClass spécifie les classes d'objets d'une entrée, qui sont utilisées conjointement avec le schéma de contrôle pour déterminer les attributs autorisés d'une entrée. Doit retourner la valeur indiquée dans votre configuration, ici groupOfNames. ( config/identities/sas.identities.providers.ldap.group/objectClass=groupOfNames)

4 - Vérifier member

Indiquez la valeur du paramètre member en se basant sur le contenu de l'extraction (/tmp/identities.conf- config/identities/sas.identities.providers.ldap.group/member=member) 
ldapsearch  -x -v -h ldap.franihviya -p 389 -b "ou=groups,dc=nicolashousset,dc=com"  | grep member
Doit retourner les uid des membres de chaque groupe

5 - Vérifier objectFilter

On utilise un filtre sur "memberOf", il s'agit d'une propriété users et nom groups, il faut donc changer le baseDN pour ne pas limiter la recherche dans l'OU groups :
ldapsearch  -x -v -h ldap.franihviya -p 389 -b "dc=nicolashousset,dc=com" '(& (objectClass=inetOrgPerson) (|(memberOf=cn=SASAdministrators,ou=groups,dc=nicolashousset,dc=com)(memberOf=cn=Marketing,ou=groups,dc=nicolashousset,dc=com)(memberOf=cn=Sales,ou=groups,dc=nicolashousset,dc=com) ) )'
Cette commande retourne la liste de membre d'un groupe

Pour aller plus loin

Note d'utilisation 61882: Dépannage des identités et du service d'identités dans SAS® Viya®

Nicolas Housset

Passionné d'informatique, je suis Consultant et expert technique SAS VIYA, également co-fondateur de la société Flexcelite. Spécialisé dans les technologies SAS (Viya, 9.4) et les infrastructures associées (Linux, Hadoop, Azure), ce blog est mon espace pour partager mes mémos techniques et retours d'expérience.