Tester son authentification SAS

SAS authentification ldap active direcoty testerUne des problématiques récurrentes rencontrées au support SAS concerne l’authentification. Aujourd’hui, les S.I utilisent de plus en plus d’annuaire (LDAP ou AD) et, dans ce cas, le mécanisme d’authentification n’est plus géré par le serveur de métadonnées mais pas un service externe, qui retourne un OK/KO en fonction des informations de connexion soumises. En cas de problème de connexion, la première chose à faire est de valider la connexion en dehors de SAS afin de s’assurer que « tout fonctionne correctement » Puis, nous pouvons tenter une validation « dans » SAS. Pour tester l’authentification simplement, nous allons utiliser la PROC METAOPERATE. Cette procédure permet d’effectuer toute sort de tâches administratives associées à serveur de métadonnées SAS (ou un cluster de serveur de métadonnées). Globalement, la syntaxe est la suivante :
PROC METAOPERATE ACTION=value;
Dans notre cas, nous allons utiliser l’action “STATUS” La PROC METAOPERATE ACTION=status renvoie des informations sur les propriétés et l'état du serveur SAS Metadata. Pour exécuter cet action il est nécessaire de se connecter au serveur en positionnant des options de connexion, telles que le login ou le mot de passe. Cette procédure SAS est donc un moyen simple de valider ses identifiants de connexion. Voici un exemple de syntaxe, à exécuter dans une session SAS :
proc metaoperate 
server="localhost" 
port =8561 
userid="sasadm@saspw" 
password="sasadm" 
action=status;
run;
L’exécution doit retourner, dans le journal SAS, les informations suivantes :
NOTE: Server localhost SAS Version is 9.4.
NOTE: Server localhost SAS Long Version is 9.04.01M3P06242015.
NOTE: Server localhost Operating System is X64_7PRO.
NOTE: Server localhost Operating System Family is WIN.
NOTE: Server localhost Operating System Version is Service Pack 1.
NOTE: Server localhost Client is sasadm@saspw.
NOTE: Server localhost Metadata Model is Version 16.01.
NOTE: Server localhost is PAUSED on 17 mars 2016 13 h 56.
Bien-sûr ( et je dirais même surtout), il est possible de valider la connexion avec un compte ldap, par exemple :
proc metaoperate 
server="localhost" 
port =8561 
userid="nicolas.housset@domaineldap" 
password="nicolas" 
action=status;
run;
Le résultat vous permet de valider ou non les identifiants. Si vous obtenez un message d’erreur, celui-ci vous permettra d’effectuer un premier diagnostic sur l’origine de l’erreur. Par exemple :
ERROR: Invalid credentials
ERROR: Access denied.
ERROR: Error authenticating user nicolas.housset@domaineldap in function LogonUser.  Error 1326
(Échec d’ouverture de session : nom d’utilisateur inconnu ou mot de passe incorrect. ).
   

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.