Je vais vous présenter une solution 100% spécifique, développée en python permettant l’affectation des rôles automatiquement à partir d’un choix de profil utilisateur.
Lorsque vous commencez à utiliser la base de données SAP HANA sans application au premier plan (comme SAP ECC ou encore S/4), vous arriverez à l’étape de devoir gérer au quotidien les profils utilisateurs manuellement. Et vous rêverez de retrouver le fonctionnement de la CUA dans un paysage SAP ABAP.
Dans la conception ci-dessous et cette découverte, il sera possible dans un second temps de connecter cette solution à une interface spécifique à la CUA SAP. Oui, et pourquoi pas ! Puisque la table à maintenir est relativement facile, on pourra imagnier une interface ABAP pour extraire les évolutions à faire côté SAP HANA. ou si on ne souhaite pas faire d’ABAP, on peut répliquer quelques tables (USR05, AGR_USERS) et extraire les évolutions récentes pour les transmettre dans la table d’administration.
Et dans un second article, je vous présenterai les droits dynamiques (Dynamic Analytic Privileges Using Procedures in SAP HANA) et le SSO Kerberos. qui me semblent des briques à mettre en place obligatoirement.
Juste une aparté, il existe un produit SAP IDM qui fera ce travail avec plus ou moins d’effort, et c’est ce que je commencerai à conseiller à mon client. et s’il ne prend pas ce produit, je lui proposerai une solution spécifique.
SAP CUA vs IDM :
Alternative, le profil par défaut, dans certains cas on affecte les mêmes droits à 90% de la population avec un un rôle analytique dynamique selon le site de référence de l’utilisateur :
2620766 – How to set Default Role for Dynamically Generated Users for your SAP HANA XS APP
Resolution
Double click on your system in the Systems tab of HANA Studio.
Click on the Configuration tab and add the parameter defaultrole under indexserver.ini->saml.
Set the value to be the name of a role that you have defined.
Now new users that login to your app will be assigned your specified role by default.
Et pour récupérer le site de l’utilisation, on obtiendra ces informations par réplication en provenant du ECC par exemple ou du systèmes HR.
On commence !
Après avoir écarté les solutions les plus simples, passons maintenant au mode baroudeur en créant une solution spécifique !
Présentation du programme :
USERID | ENABLED | ROLES | TO_UPDATE | TO_DISABLE | TO_ENABLE | LAST-CHANGE-DATE | LAST-CHANGE-TIME |
ZDATE | ZTIME | USERID | ACTION | ROLES |
Objectifs du programme :
1ere tâche : Créer les utilisateur
2eme tâche : Attribuer les rôles
3eme tâche : Supprimer les utilisateurs
4eme tâche : Tracer ces actions dans une table d’historisation
Côté serveur, le code du programme sera dans un script python à planifier régulièrement pour un fonctionnement automatique.
Démonstration :
Le programme spécifique en python :
lien github [ici]