Authentification Active Directory dans un environnement SAS®9 sur Unix/Linux

Le but de cet article est de décrire les mécanismes à mettre en œuvre pour permettre une authentification vers un serveur Active Directory dans un environnement SAS®9 sur Unix/Linux.

Voir également l'article  Authentification Active Directory dans un environnement SAS 9.2 sur Unix/Linux

Nous évoquerons notamment la connexion avec SAS® Enterprise Guide® et SAS® Information Delivery Portal avec un compte défini sous Active Directory.

Description de l'architecture

Les utilisateurs travaillent depuis des postes Windows (SAS® Enterprise Guide®, portail, SAS® Web Report Studio, SAS® Management Console) et ils veulent utiliser leur compte AD sans avoir à connaitre l'existence d'un compte Unix associé.
 
Nous nous trouvons dans ce type d’architecture :

Remarque :
Les paramètres décrits dans le présent document peuvent aussi être mis en œuvre dans le cas d’un environnement où le serveur SAS est un serveur Windows. Cela étant dit, dans le cas où l’on est dans  un environnement entièrement ‘Windows’, on laissera l’authentification se faire au niveau système sans rien modifier. Les API Windows redirigeront les demandes d’authentification vers le serveur Active Directory. Dans ce cas, l’authentification ne sera pas gérée au niveau applicatif par SAS mais au niveau du système d’exploitation (« host authentification »). Ce n’est pas le cas traité dans cet article.

Le serveur de métadonnées (sur Unix/Linux) dans notre scénario se connecte au serveur Active Directory afin de vérifier l'identité de l'utilisateur.

Un compte dans les métadonnées aura un compte Unix associé (on peut aussi n'avoir qu'un seul compte Unix associé à un groupe dans les métadonnées).

Note :
Dans les exemples et logs et copies d’écran qui suivent, l’environnement de test suivant a été utilisé :

- Pour le serveur Active Directory, le nom d’hôte (« hostname ») est ADW2003
- Pour le serveur Unix/Linux, le nom d'hôte est linuxRH3
- Pour le nom de domaine Active Directory, le nom est mondomaine.com

Configuration du serveur de métadonnées

Il est nécessaire de configurer le serveur de métadonnées afin qu'il se connecte au serveur AD pour pouvoir vérifier l'identité de l'utilisateur.

On édite le fichier /…/…/Lev1/SASMain/MetadataServer/MetadataServer.sh et on ajoute les paramètres suivants :

AD_HOST=ADW2003
export AD_HOST

Le paramètre AD_HOST indique au serveur SAS Unix le nom d'hôte du serveur Active Directory à contacter pour l'authentification (on peut aussi renseigner une adresse IP).

authpd ADIR : mondomaine
Ce paramètre (à ajouter comme paramètre de démarrage du serveur) aura pour résultat de rediriger toute demande d'authentification du type nom_d_utilisateur@mondomaine vers Active Directory. La chaîne de caractère mondomaine correspond au domaine d'authentification SAS et au domaine Active Directory (il est possible de mettre une autre valeur que le nom du domaine, mais il faudrait alors aussi spécifier le nom du domaine dans le login. Ce cas est plus compliqué et ne sera pas traité dans le cadre de l'article).

Le nom de domaine peut être aisément vérifié en utilisant l'utilitaire 'Active Directory Users And Computers’ :

Voici un extrait du fichier Lev1/SASMain/MetadataServer/MetadataServer.sh (sur le serveur Unix/Linux), les parties en gras représentent les ajouts apportés au fichier (rien n’est modifié ni supprimé, seuls des ajouts sont effectués) :

……….
………………………………
THREADSMAX=3
SCRIPT=`basename $0`
AD_HOST=ADW2003
export AD_HOST
# Are we super user
if id ……………….
……………………
cd $DIR/..
         nohup $SASCMD -log $DIR/logs/MetadataServer_%Y.%m.%d.log -authpd ADIR:mondomaine –noauto……………………………………..
…………………………..

Il est nécessaire de redémarrer le serveur de méta-données après avoir apporté les modifications.

Configuration des comptes utilisateurs

Chaque utilisateur devra avoir  2 comptes :

  • Un compte Unix, indispensable pour pouvoir exécuter des sessions SAS sur le serveur de traitement.
  • Un compte Active Directory correspondant à son compte Windows (il s'agit le plus souvent du compte utilisé par l'utilisateur sur son poste de travail).

Note :
Il est possible de simplifier la mise en place en utilisant des groupes d'utilisateurs au niveau des métadonnées. Nous ne traiterons pas ce cas ici.

Les 2 comptes systèmes (Unix et Active Directory) seront liés entre eux par un compte créé dans les métadonnées.

Prenons l'exemple du compte Pierre Dupont défini au niveau des métadonnées, il est associé au compte pdupont qui est un compte Unix et au compte PierreDupont défini dans le domaine Active Directory. On notera le @mondomaine qui suit le compte Active Directory et l'absence de domaine d'authentification pour le compte Active Directory (en rouge).

Voici ce que l’on voit en regardant les propriétés du compte Pierre Dupont au niveau des méta-données en utilisant la SAS Management Console (généralement, ce type de modification est effectué à l’aide du compte sasadm) :

Note :
Le mot de passe du compte Active Directory n'est pas à renseigner dans les métadonnées.

Vérifications à faire avec la SAS® Management Console

On se connectera à la SAS Management Console avec le compte Windows Active Directory : PierreDupont@mondomaine (on spécifiera le mot de passe Windows utilisé pour le compte).

On notera, au bas de la Management Console, la ligne 'PierreDupont@mondomaine connecté en tant que Pierre Dupont' indiquant clairement que le lien est fait entre le compte Active Directory et le compte des métadonnées.

Test avec SAS® Enterprise Guide® 4.1

Avec Enterprise Guide 4.1, il faut configurer l'application cliente (une seule fois) afin que cette dernière se connecte avec le compte Windows. Pour ce faire, on ira dans le menu Outils -> Explorateur de SAS Entreprise Guide -> Fichier -> Gérer les référentiels, on définit les paramètres du compte PierreDupont@mondomaine comme le montre l’image suivante :

Une fois authentifié sous Enterprise Guide 4.1, on vérifiera dans la ligne du bas que la connexion est établie avec l’utilisateur Active Directory (lié à l’utilisateur des méta-données), comme c’est le cas sur l’image suivante :

Si le lien entre les 2 comptes ne s'effectue pas, le message suivant apparaîtrait:
PierreDupont@mondomaine en tant que UNKNOWN
Dans ce cas, il faudra vérifier les propriétés du compte Pierre Dupont dans les métadonnées.

Il est indispensable de vérifier que l’association est réalisée avec le compte Unix permettant d’exécuter une session SAS sur le serveur Unix/Linux (connexion au « Workspace Server »). Pour ce faire on clique sur SASMain -> Bibliothèques -> et sur une des bibliothèques présentes (SASHELP dans notre exemple). La session SAS doit démarrer sur le serveur.
L’image suivante illustre ce type de vérification :

Test avec le portail SAS

On testera aussi la connexion aux applications telles que SAS Web Report Studio, SAS Information Delivery Portal etc. avec le compte Active Directory.

Par exemple, dans le cas du portail SAS, il suffit de saisir le compte comme le montre l’image suivante (le mot de passe est toujours le mot de passe Windows) :

Une fois authentifié sur le portail SAS, en haut à droite de la fenêtre Internet Explorer, nous pouvons valider que la connexion s'est correctement effectuée avec le compte Active Directory Pierre Dupont et ce avec l'identifiant du domaine défini (i.e. mondomaine).

On remarquera que les utilisateurs finaux n'ont pas connaissance de l'existence d'un compte Unix associé (le lien est fait par l'administrateur au niveau de la SAS Management Console). Pour eux, seuls le compte Windows/Active Directory et le mot de passe sont à saisir.

Dans le cas d'utilisateurs avertis ou si les administrateurs n'ont pas accès aux mots de passe (souvent pour des raisons de sécurité), on pourra installer l'outil 'SAS Personal Login Manager’ sur les postes de travail. Cet  outil permet aux utilisateurs de gérer eux-mêmes les différents comptes associés à  leur utilisateur dans les métadonnées, sans toutefois leur permettre d’accéder aux autres objets et ‘plugins’ des métadonnées. Pour résumer, ‘SAS Personal Login Manager' permet aux utilisateurs finaux de gérer leurs différents mots de passe et comptes (liés aux domaines d'authentification.

Voici une copie d'écran qui montre l'interface 'SAS Personal Login Manager', toujours avec le compte utilisé précédemment.

En conclusion, nous avons donc vu comment configurer un serveur Unix/Linux afin que les serveurs SAS authentifient les utilisateurs auprès d'un serveur Active Directory.
Nous avons aussi vu comment tester ce mode d'authentification avec des clients SAS tels qu'Enterprise Guide, le Portail SAS ou la SAS Management Console.

   Pour plus d’information sur le sujet, il est possible de consulter les documentations suivantes :

  1. Le chapitre intitulé 'Implementing Alternative Authentication Providers' du document SAS 9.1.3 Integration Technologies Server Administrator's Guide, Third Edition 
  2. Le chapitre intitulé 'Modifications to Support Alternative Authentication Mechanisms' du document SAS 9.1.3 Intelligence Platform Security Administration Guide 


Antoine Tardien
 
Consultant Support Clients - SAS France