Publicado el :
Administración CREATION_INTERNE

Designación de Superusuario CAS

Este código también está disponible en: Deutsch English Français
Attention : Este código requiere privilegios de administrador.
El conjunto de acciones 'Access Control' de CAS permite gestionar las autorizaciones de acceso a los recursos CAS, incluyendo las caslibs, las tablas y las acciones. La designación de un superusuario generalmente implica la asignación de roles o grupos predefinidos (como 'CASHostAccountRequired' para el acceso directo al host o roles con capacidades extendidas) que confieren privilegios administrativos completos sobre el servidor CAS. Aunque la gestión completa de identidades y roles se realiza a menudo a través de SAS© Environment Manager, se pueden utilizar acciones CASL específicas para inspeccionar y modificar ciertos aspectos de los controles de acceso, y para asumir temporalmente roles privilegiados si el usuario ya está autorizado para ello.
Análisis de datos

Type : CREATION_INTERNE


Los ejemplos utilizan identidades y caslibs ficticias para fines de demostración, o caslibs existentes por defecto como 'CASUSER'.

1 Bloque de código
PROC CAS
Explicación :
Este código utiliza la acción `access.showRolesIn` para listar todos los roles y los miembros de esos roles (o para el usuario actual con `target='_SELF_'`) a los que pertenece el usuario que ejecuta el código. Es un paso fundamental para comprender los privilegios actuales.
¡Copiado!
1/* Exemple 1: Vérification des rôles CAS de l'utilisateur */
2/* Cet exemple montre comment un utilisateur peut lister les rôles auxquels il appartient dans une session CAS. */
3 
4PROC CAS;
5 ACTION access.showRolesIn / target='_SELF_';
6 RUN;
7QUIT;
8 
9/* Explication: L'action access.showRolesIn avec target='_SELF_' permet à l'utilisateur de voir
10 les rôles qui lui sont attribués, y compris les rôles privilégiés si présents dans son contexte. */
2 Bloque de código
PROC CAS
Explicación :
Este ejemplo utiliza la acción `access.addGrant` para asignar permisos extendidos (lectura, escritura, eliminación, promoción y gestión de acceso) a un usuario (`sasdemo`) en una caslib específica (`mytestcaslib`). También incluye la creación de una caslib temporal y la verificación de los permisos después de la concesión. Esto simula una parte de los privilegios que un superusuario podría tener.
¡Copiado!
1/* Exemple 2: Octroi de privilèges de gestion de caslib à un utilisateur */
2/* Cet exemple simule l'octroi de droits étendus à un utilisateur sur une caslib spécifique. */
3/* NOTE: La création de caslibs et la gestion des identités est souvent faite via SAS Environment Manager.
4 Cet exemple utilise des actions génériques d'accès pour simuler l'octroi de droits. */
5 
6PROC CAS;
7 /* Créer une caslib temporaire pour la démonstration (si elle n'existe pas) */
8 ACTION caslib.addCaslib /
9 caslib='mytestcaslib'
10 dataSource={srctype='path', path='/tmp/mytestcaslib'}
11 subdirs=true;
12 RUN;
13 
14 /* Octroyer à l'utilisateur 'sasdemo' des droits de lecture et d'écriture sur 'mytestcaslib' */
15 /* (Remplacer 'sasdemo' par un nom d'utilisateur existant et 'mytestcaslib' par une caslib valide) */
16 ACTION access.addGrant /
17 caslib='mytestcaslib'
18 identity='sasdemo'
19 identityType='user'
20 permissions={'read', 'write', 'delete', 'promote', 'manageAccess'}
21 target='mytestcaslib';
22 RUN;
23 
24 /* Afficher les permissions de la caslib pour vérifier */
25 ACTION access.listAcsCaslib /
26 caslib='mytestcaslib';
27 RUN;
28QUIT;
29 
30/* Explication: Cette action accorde des permissions étendues (lecture, écriture, suppression,
31 promotion, gestion des accès) à l'utilisateur 'sasdemo' sur la caslib 'mytestcaslib'.
32 Pour désigner un 'superuser' complet, des permissions sur toutes les ressources
33 et des rôles spécifiques (ex: CASHostAccountRequired) seraient nécessaires,
34 souvent gérés par SAS Environment Manager. */
3 Bloque de código
PROC CAS
Explicación :
Este código revoca el permiso 'manageAccess' para el usuario 'sasdemo' en la caslib 'mytestcaslib' utilizando la acción `access.deleteGrant`. Luego lista los controles de acceso restantes para esta caslib para verificar la revocación, y finalmente elimina la caslib temporal creada en el ejemplo anterior.
¡Copiado!
1/* Exemple 3: Révoquer des privilèges spécifiques et lister les contrôles d'accès */
2/* Cet exemple montre comment révoquer des permissions spécifiques et vérifier les accès restants. */
3 
4PROC CAS;
5 /* Révoquer la permission 'manageAccess' pour 'sasdemo' sur 'mytestcaslib' */
6 ACTION access.deleteGrant /
7 caslib='mytestcaslib'
8 identity='sasdemo'
9 identityType='user'
10 permissions={'manageAccess'}
11 target='mytestcaslib';
12 RUN;
13 
14 /* Lister tous les contrôles d'accès pour la caslib 'mytestcaslib' après la révocation */
15 ACTION access.listAcsCaslib /
16 caslib='mytestcaslib';
17 RUN;
18 
19 /* Supprimer la caslib temporaire */
20 ACTION caslib.dropCaslib / caslib='mytestcaslib';
21 RUN;
22QUIT;
23 
24/* Explication: L'action access.deleteGrant retire les permissions spécifiées.
25 L'action access.listAcsCaslib permet de vérifier les contrôles d'accès définis pour une caslib. */
4 Bloque de código
PROC CAS
Explicación :
Este ejemplo demuestra el uso de `access.assumeRole` para obtener temporalmente privilegios asociados al rol 'CASHostAccountRequired'. Después de ejecutar una tarea que requiere estos privilegios (como `caslib.listCaslibs` para ver todas las caslibs), se utiliza `access.dropRole` para volver a los permisos originales del usuario. Esto ilustra la gestión temporal de los privilegios de superusuario en CAS.
¡Copiado!
1/* Exemple 4: Assumer temporairement un rôle de superutilisateur (si autorisé) */
2/* Cet exemple montre comment un utilisateur déjà configuré avec la capacité
3 d'assumer un rôle de superutilisateur peut le faire temporairement,
4 exécuter des tâches administratives, puis le relâcher. */
5/* NOTE: L'utilisateur exécutant ce code doit avoir la capacité d'assumer le rôle
6 'CASHostAccountRequired' (souvent configuré via SAS Environment Manager). */
7 
8PROC CAS;
9 /* Assumer temporairement le rôle 'CASHostAccountRequired' */
10 ACTION access.assumeRole / role='CASHostAccountRequired';
11 RUN;
12 
13 /* Exécuter des actions nécessitant des privilèges élevés */
14 /* Par exemple, lister toutes les caslibs du serveur (incluant celles qui seraient normalement masquées) */
15 ACTION caslib.listCaslibs;
16 RUN;
17 
18 /* Relâcher le rôle assumé pour revenir aux privilèges précédents */
19 ACTION access.dropRole;
20 RUN;
21 
22 /* Vérifier que le rôle a été relâché en listant les caslibs avec les privilèges normaux */
23 ACTION caslib.listCaslibs;
24 RUN;
25QUIT;
26 
27/* Explication: access.assumeRole permet une élévation temporaire des privilèges pour des tâches spécifiques.
28 access.dropRole permet de revenir aux privilèges d'origine. Ceci est une pratique de sécurité essentielle
29 pour limiter l'exposition aux privilèges élevés. */
Este material se proporciona "tal cual" por We Are Cas. No hay garantías, expresas o implícitas, en cuanto a la comerciabilidad o idoneidad para un propósito particular con respecto a los materiales o el código contenidos en este documento. We Are Cas no es responsable de los errores en este material tal como existe ahora o existirá, ni We Are Cas proporciona soporte técnico para el mismo.
Información de copyright : Copyright © SAS Institute Inc. All Rights Reserved