abap:autorisations
                Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| abap:autorisations [2013/02/27 14:30] – created ginko | abap:autorisations [2020/01/24 16:59] (current) – [Transactions utiles] ginko | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Autorisations (ABAP) ====== | ====== Autorisations (ABAP) ====== | ||
| + | ===== Transactions utiles ===== | ||
| + | * SU01 : Gestion des utilisateurs (notamment onglets Rôles et Profils) | ||
| + | * ST01 : Trace des autorisations | ||
| + | * PFCG : Gestion des rôles | ||
| + |   * SU21 : Liste des classes d' | ||
| + |   * SU24 : Objets d' | ||
| + |   * SU53 : Last authorization check log (voir ce qui manque lors d'un refus d' | ||
| + |   * SE54 : Génération dialogue de gestion de tables > accès table/vue > Groupes d' | ||
| + |   * SUIM : Navigation/ | ||
| + | |||
| + | ===== Classes d' | ||
| + |   * BC_A/ | ||
| + | * S_DEVELOP : ABAP Workbench | ||
| + | * S_TCODE : Contrôle du code transaction lors lancement transaction | ||
| + | ===== Authority check ===== | ||
| + | Lors d'un authority-check, | ||
| + | |||
| + | Exemple 1 : | ||
| + | * Rôle R1 : Objet O1, Champ C1 = A, Champ C2 = B | ||
| + | * Rôle R2 : Objet O1, Champ C1 = C, Champ C2 = B | ||
| + | |||
| + | => Authority-check : | ||
| + | * Objet O1, C1 = A, C2 = B => Granted (par combinaison A-B) | ||
| + |   * Objet O1, C1 = A, C2 = D  => Forbidden (La combinsaison A-D n' | ||
| + | |||
| + | Exemple 2 : | ||
| + | * Rôle R1 : Objet O1, Champ C1 = A, Champ C2 = B | ||
| + | * Rôle R1 : Objet O1, Champ C1 = C, Champ C2 = D | ||
| + | * Rôle R2 : Objet O1, Champ C1 = C, Champ C2 = * | ||
| + | |||
| + | => Authority-check : | ||
| + | * Objet O1, C1 = A, C2 = B => Granted (par combinaison A-B) | ||
| + |   * Objet O1, C1 = A, C2 = D  => Forbidden (La combinsaison A-D n' | ||
| + | * Objet O1, C1 = C, C2 = B => Granted (par combinaison C-*, la combinaison C-D n'est pas considérée comme limitante) | ||
| + | |||
| + | **__NB__ : Cela signifie que si un user porte un mélange de rôles restreint sur un niveau organisationnel et d' | ||
| + | |||
| + | ==== Contrôle du code transaction ==== | ||
| - | ===== authority check ===== | ||
| <code abap>  | <code abap>  | ||
|         |         | ||
| Line 10: | Line 47: | ||
| OTHERS = 3. | OTHERS = 3. | ||
| </ | </ | ||
| + | ==== contrôle généraliste ==== | ||
| + | Vérifier que le user à une autorisation sur un objet en particulier (quel qu'il soit). | ||
| + | <code abap> | ||
| + | AUTHORITY-CHECK OBJECT ' | ||
| + |          ID ' | ||
| + |          ID ' | ||
| + | |||
| + | IF SY-SUBRC = 0. | ||
| + |  " | ||
| + | ENDIF.</ | ||
| + | ===== Comment tester techniquement (en dev) les authors ===== | ||
| + | * Créer un utilisateur dédié (su01, on peut copier un utilisateur existant pour aller vite) | ||
| + | * Vider ses rôles et profils (Certains rôles peuvent donner beaucoup de droits, notamment les rôles développeur...) | ||
| + | * Créer un rôle dédié avec : | ||
| + |     * l' | ||
| + | * S_TCODE avec la valeur SE38 | ||
| + |     * S_DEVELOP avec l' | ||
| + | * Affecter ce rôle à notre utilisateur dédié | ||
| + |   * Votre programme, par exemple le programme de test suivant :<code abap> | ||
| + | |||
| + | * Afficher | ||
| + | AUTHORITY-CHECK OBJECT ' | ||
| + |   ID ' | ||
| + |   ID ' | ||
| + | |||
| + | WRITE sy-subrc. | ||
| + | |||
| + | * Modifier | ||
| + | AUTHORITY-CHECK OBJECT ' | ||
| + |   ID ' | ||
| + |   ID ' | ||
| + | |||
| + | WRITE sy-subrc.</ | ||
| + |   * Tester le programme avec l' | ||
| + | ===== Démarche design autorisation ===== | ||
| + | Cas d' | ||
| + | * Commencer à tester en ajoutant la transaction à un profil de test. | ||
| + | * Si les critères que l'on recherche ne sont pas dispo, regarder les objets maintenus en SU24. | ||
| + |   * Si toujours rien, il faudra faire de nouveaux objets d' | ||
| + | |||
| + | ===== Bug analysis ===== | ||
| + | Une différence entre la définition des rôles et les accès réels par les users peut avoir 2 origines : | ||
| + |   * La génération (la transcription d'un rôle en profile - '' | ||
| + |   * L' | ||
| + | |||
| + | Pour l' | ||
| + | |||
| + | En cas de problème tenace, activer les traces SQL (toujours en '' | ||
| + | |||
| + | NB : | ||
| + |   * le menu de l' | ||
| + |   * Au contraire, la '' | ||
| + | => On peut donc se reposer sur une différence entre menu et '' | ||
| + | ===== Pseudos AUTHORITY-CHECK ===== | ||
| + | Dans certains cas la trace des authority-checks " | ||
abap/autorisations.1361971836.txt.gz · Last modified: 2013/02/27 14:30 by ginko
                
                