Publié le :
Administration CREATION_INTERNE

Extraction des identifiants utilisateurs par groupe (Métadonnées SAS 9)

Ce code est également disponible en : Deutsch English Español
En attente de validation
Attention : Ce code nécessite des droits administrateur.
Ce programme établit une connexion à un serveur de métadonnées SAS© 9 hérité. Il interroge ensuite les métadonnées pour trouver un groupe spécifique, lister ses membres (personnes), et récupérer leurs informations de connexion associées. Note importante : Ce code est explicitement conçu pour SAS© 9.x (utilisant l'interface de métadonnées) et ne fonctionnera pas sur une installation standard SAS© Viya 4 sans accès à un serveur de métadonnées SAS© 9 externe.
Analyse des données

Type : CREATION_INTERNE


Les données sont générées dynamiquement en interrogeant le serveur de métadonnées via les fonctions SAS `metadata_*`.

1 Bloc de code
GLOBAL OPTIONS
Explication :
Configuration des options de connexion au serveur de métadonnées SAS 9 (adresse, port, utilisateur, mot de passe) et définition de la macro-variable du groupe à analyser.
Copié !
1options metaserver="meta.demo.sas.com"
2 metaport=8561
3 metauser="sasadm @saspw"
4 metapass="Password"
5 metarepository=Foundation
6 metaprotocol=Bridge;
7 
8/* Provide a group name you would like to query. */
9%let groupname=SAS Administrators;
2 Bloc de code
DATA STEP Data
Explication :
Étape DATA principale qui navigue dans la structure des métadonnées. Elle résout l'objet Groupe, parcourt ses identités membres, puis descend vers les objets Login pour extraire l'ID utilisateur et le domaine d'authentification, stockant le résultat dans la table `usertab`.
Copié !
1DATA usertab;
2LENGTH type id group_uri group_name per_uri per_name log_uri user_id ad_uri ad_name $ 256;
3call missing(type,id,group_uri,group_name,per_uri,per_name,log_uri,user_id,ad_uri,ad_name);
4obj="omsobj:IdentityGroup? @DisplayName='&groupname'";
5groupCount=metadata_resolve(obj,type,id);
6put groupCount=;
7IF groupCount = 0 THEN DO;
8 put "ERROR: No groups named &groupname defined in the repository.";
9 stop;
10END;
11IF groupCount > 0 THEN DO n=1 to groupCount;
12 rc=metadata_getnobj(obj,n,group_uri);
13 rc=metadata_getattr(group_uri,"DisplayName",group_name);
14 put group_name=;
15 memCount=metadata_getnasn(group_uri,"MemberIdentities",1,per_uri);
16 IF memCount > 0 THEN DO m=1 to memCount;
17 rc=metadata_getnasn(group_uri,"MemberIdentities",m,per_uri);
18 rc=metadata_getattr(per_uri,"DisplayName",per_name);
19 logCount=metadata_getnasn(per_uri,"Logins",1,log_uri);
20 IF logCount > 0 THEN DO o=1 to logCount;
21 rc=metadata_getnasn(per_uri,"Logins",o,log_uri);
22 rc=metadata_getattr(log_uri,"UserID",user_id);
23 rc=metadata_getnasn(log_uri,"Domain",1,ad_uri);
24 rc=metadata_getattr(ad_uri,"Name",ad_name);
25 OUTPUT;
26 call missing(log_uri,user_id,ad_uri,ad_name,group_name,per_name);
27 END;
28 END;
29END;
30keep group_name per_name ad_name user_id;
31RUN;
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.
Informations de Copyright : Copyright © 2023, SAS Institute Inc., Cary, NC, USA. All Rights Reserved. SPDX-License-Identifier: Apache-2.0


Banner
Le Conseil de l'Expert
Expert
Stéphanie
Spécialiste Machine Learning et IA.
« L'extraction automatisée des identifiants par groupe est une pierre angulaire de l'administration sécurisée sous SAS 9.4. En exploitant l'association MemberIdentities couplée à l'objet Logins, ce script permet de réconcilier l'identité logique d'un utilisateur (Personne) avec son identifiant technique et son domaine d'authentification. La puissance de cette approche réside dans la navigation transversale des métadonnées : on part du groupe pour atteindre l'utilisateur, puis on "rebondit" vers les objets de connexion pour extraire le UserID. C'est une méthode indispensable pour préparer un audit de sécurité ou planifier une migration vers SAS Viya, où la gestion des identités repose sur des principes différents (SCIM/LDAP). »