Publié le :
Administration CREATION_INTERNE

Extraction des IDs utilisateur du domaine DefaultAuth

Ce code est également disponible en : Deutsch English Español
En attente de validation
Attention : Ce code nécessite des droits administrateur.
Le script initialise une connexion au serveur de métadonnées SAS© en configurant les options telles que l'hôte (`metaserver`), le port (`metaport`), l'utilisateur (`metauser`), le mot de passe (`metapass`), le référentiel (`metarepository`) et le protocole (`metaprotocol`). Il crée ensuite un jeu de données temporaire `work.users`. À l'aide des fonctions `metadata_getnobj` et `metadata_getattr`, il recherche le domaine d'authentification 'DefaultAuth', récupère son URI et son identifiant interne. Une boucle `do while` est ensuite utilisée pour itérer sur tous les objets de connexion (Login) associés à ce domaine. Pour chaque objet de connexion trouvé, l'identifiant utilisateur (`UserID`) est extrait et ajouté au jeu de données `work.users`. Le jeu de données final ne conserve que la variable `user_id`.
Analyse des données

Type : CREATION_INTERNE


Le jeu de données `work.users` est créé et peuplé dynamiquement à partir des informations extraites du serveur de métadonnées SAS via les fonctions `metadata_getnobj` et `metadata_getattr`. Il n'y a pas de source de données externe au script (fichier, base de données) ou de jeu de données SASHELP directement utilisé comme entrée.

1 Bloc de code
OPTIONS
Explication :
Ce bloc configure les options de connexion au serveur de métadonnées SAS. Il spécifie l'adresse du serveur (`metaserver`), le port (`metaport`), les identifiants de l'utilisateur (`metauser`, `metapass`), le référentiel de métadonnées (`metarepository`) et le protocole de communication (`metaprotocol`). Ces informations sont essentielles pour établir la connexion et interroger les métadonnées.
Copié !
1options
2 metaserver="<hostname>"
3 metaport=8561
4 metauser="sasadm @saspw"
5 metapass="<password>"
6 metarepository=Foundation
7 metaprotocol=BRIDGE;
2 Bloc de code
DATA STEP Data
Explication :
Ce bloc `DATA STEP` est responsable de la création du jeu de données `work.users` et de son peuplement avec les identifiants des utilisateurs. Il déclare et initialise les variables nécessaires. Il utilise `metadata_getnobj` pour trouver le domaine d'authentification 'DefaultAuth' et son URI, puis `metadata_getattr` pour récupérer son identifiant. Ensuite, une boucle `do while` parcourt tous les objets de connexion (Login) associés à ce domaine. Pour chaque Login, l'identifiant utilisateur (`UserID`) est extrait via `metadata_getattr` et ajouté au jeu de données `work.users`. Seule la variable `user_id` est conservée dans le jeu de données final.
Copié !
1DATA work.users; /* Create work.users library to house data. */
2 
3/* declare variables */
4 
5LENGTH
6 ad_uri $ 256
7 ad_id $ 256
8 login_uri $ 256
9 user_id $ 256;
10 
11/* initialize variables. */
12 
13call missing(ad_uri,ad_id,login_uri,user_id);
14keep user_id; /* only keep the user ids in the table. */
15 
16n=1;
17/* Get the URI for the DefaultAuth Authentication Domain. */
18adrc=metadata_getnobj("omsobj:AuthenticationDomain? @name = 'DefaultAuth'",1,ad_uri);
19rc=metadata_getattr(ad_uri,"Id",ad_id);
20 
21/* Get number of login objects that have the DefaultAuth authentication */
22/* domain associated with them, as well as the URI of the first login. */
23loginrc=metadata_getnobj("omsobj:Login?Login[Domain/AuthenticationDomain[ @Id='"||ad_id||"']",n,login_uri);
24DO while(loginrc>0);
25 /* extract the user ID from login */
26 rc=metadata_getattr(login_uri,"UserID",user_id);
27 OUTPUT;
28 n+1;
29 /* Get the URI of the next login. */
30 loginrc=metadata_getnobj("omsobj:Login?Login[Domain/AuthenticationDomain[ @Id='"||ad_id||"']",n,login_uri);
31END;
32RUN;
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 : Author: Greg Wootton Date: 08FEB2017


Banner
Le Conseil de l'Expert
Expert
Simon
Expert SAS et fondateur.
« L'extraction des identifiants de connexion associés à un domaine spécifique est une tâche fondamentale pour l'administration et la sécurité d'une plateforme SAS 9.4. Ce script illustre parfaitement la puissance de la manipulation directe des métadonnées via l'étape DATA. En ciblant le domaine 'DefaultAuth', vous accédez au référentiel central des comptes utilisateurs qui n'utilisent pas de méthodes d'authentification externes complexes (comme LDAP ou Active Directory) pour leurs connexions internes. »