Utilisation de la fonction d'usurpation d'identité dans DHIS2¶
Présentation¶
Le déguisement, également appelé changement d'utilisateur, est une fonction puissante de DHIS2 qui permet aux utilisateurs administrateurs de se connecter en tant qu'autre utilisateur. Cette fonction est particulièrement utile pour le dépannage ou la résolution de problèmes liés à l'utilisateur, car elle permet à l'administrateur d'expérimenter DHIS2 exactement comme l'utilisateur.
Cette fonctionnalité est basée sur le filtre SwitchUserFilter de Spring Security, mais avec des options de configuration supplémentaires.
Remarque
La fonctionnalité est désactivée par défaut. Pour l'activer, vous devez définir la propriété
switch_user_feature.enabledsurtruedans votre fichier de configurationdhis.conf. Cette fonctionnalité est considérée comme expérimentale et n'est censée être appelée qu'à partir d'adresses IP configurées. Par conséquent, pour l'utiliser, vous devez connaître l'adresse IP à partir de laquelle vous l'appellerez et configurer la propriétéswitch_user_allow_listed_ipsdans le fichierdhis.conf. Cette restriction pourrait être retirée à l'avenir.
Comment ça marche¶
La fonction de déguisement fonctionne de la manière suivante :
-
Un utilisateur administrateur envoie une requête à une URL spécifique (par exemple,
/impersonate?username=USERNAME) avec le paramètreusernameparamètre du segment indiquant le nom d'utilisateur de l'utilisateur qu'il souhaite usurper. -
La fonction de déguisement intercepte cette requête, bascule le
SecurityContextvers le nouvel utilisateur, et le redirige vers la page d'accueil. -
En se faisant passer pour un autre utilisateur, l'administrateur peut faire des requêtes comme s'il était l'utilisateur dont il a usurpé l'identité.
-
Pour revenir à l'utilisateur initial, l'administrateur envoie une requête à une autre URL ( par exemple,
/impersonateExit). La fonction de déguisement intercepte cette requête, ramène leSecurityContextà l'utilisateur initial et redirige vers la page d'accueil.
Comment l'utiliser¶
Procédez comme suit pour utiliser la fonction de déguissement :
- Connectez-vous en tant qu'utilisateur administrateur avec l'autorité
ALLouF_IMPERSONATE_USER. - Accédez à l'URL de la fonction de déguisement (par exemple,
/impersonate?username=USERNAME). - Fournissez le
nom d'utilisateurde l'utilisateur que vous voulez usurper. - Le système basculera votre session vers celle de l'utilisateur usurpé, et vous serez redirigé vers la page d'accueil.
- Effectuez toutes les actions nécessaires au dépannage ou à l'assistance aux utilisateurs.
- Lorsque vous avez terminé, revenez à l'URL pour mettre fin au déguisement (par exemple,
/impersonateExit). Votre session sera votre instance initiale.
Configuration¶
Les options de configuration de la fonction de déguisement.
switch_user_feature.enabled(Activer ou désactiver la fonction, par défaut :disabled(désactivé))switch_user_allow_listed_ips(Les IP autorisées par défaut sont :localhost,127.0.0.1,[0:0:0:0:0:0:0:1])
Restrictions de sécurité¶
- Cette fonction doit être activée dans le fichier de configuration
dhis.conf. La valeur par défaut estdisabled(désactivé). - Les utilisateurs qui tentent de se faire passer pour d'autres doivent envoyer des requêtes à partir d'une adresse IP autorisée.
- Les utilisateurs qui n'ont pas l'autorité
ALLne peuvent pas se faire passer pour un autre utilisateur qui a l'autoritéALL. - Les utilisateurs ne peuvent utiliser la fonction sur eux-mêmes.
Implications en matière de sécurité¶
Cette fonction doit être utilisée avec prudence en raison de ses implications inhérentes en matière de sécurité. Seuls les administrateurs de confiance doivent être autorisés à se faire passer pour d'autres utilisateurs. Il est également recommandé de prêter attention aux événements de journal liés au déguisement.
Les événements de déguisement sont enregistrés au format suivant : Evénement d'authentification : AuthenticationSwitchUserEvent ; username : USER_DOING_THE_IMPERSONATION ; targetUser : USER_BEING_IMPERSONATED;