Pensez-vous que c'est une bonne pratique d'implémenter une possibilité pour permettre à un utilisateur administrateur de se connecter en tant qu'un autre utilisateur, en contournant le mot de passe? Cela pourrait être implémenté par un mot de passe principal ou une fonction au sein de l'administration des utilisateurs, "Connexion en tant que cet utilisateur".
Les administrateurs demandent une telle fonction pour pouvoir essayer de reproduire un problème signalé ou pour vérifier si les autorisations sont correctes, par exemple.
security
problem-solving
Dan McGrath
la source
la source
Réponses:
Non pas du tout. Cela viole la séparation des fonctions.
Cela provoque également des ravages en s'appuyant sur les journaux pour afficher les actions des utilisateurs.
Si vous avez vraiment besoin de vérifier des choses comme ça, l'administrateur doit également avoir un ou plusieurs comptes de test factices qui sont configurés comme les utilisateurs. De cette façon, ils peuvent d'abord confirmer les subventions, etc. fonctionnent correctement sur l'utilisateur de test.
En aparté aussi, les utilisateurs administrateurs ne devraient pas toujours bénéficier de tous les droits dont dispose un utilisateur. Par exemple, un utilisateur peut avoir des raisons valables d'afficher les numéros de carte de crédit dans un système. Un administrateur ne devrait pas; ces données ne font pas partie de leur travail. Encore une fois, cela revient à la séparation des fonctions.
Minimisez votre exposition en minimisant l'octroi de droits inappropriés. Cela devrait également inclure les administrateurs ...
la source
Du point de vue des principes de sécurité et de programmation propre, ce n'est pas une bonne idée. Mais cela peut être une grande commodité dans le travail quotidien de l'administrateur, c'est pourquoi je suis pour cela s'il est bien mis en œuvre.
Pour moi, une implémentation correcte devrait répondre aux exigences suivantes:
Le système vous connecte en tant qu'utilisateur en question, mais contourne l'authentification par mot de passe si vous êtes connecté en tant qu'administrateur.
Le système sait par un indicateur qu'il ne s'agit pas de l'utilisateur x, mais d'un administrateur connecté en tant qu'utilisateur x. Toute installation d'abattage refléterait la différence.
Il n'y a aucun moyen de "sortir" de la connexion utilisateur au niveau administrateur.
Cela peut en fait améliorer la sécurité car l'administrateur n'a pas à rechercher et à utiliser les informations d'identification des utilisateurs, ce qui est en réalité souvent le cas pour les raisons mentionnées par l'OP: quelque chose doit être vérifié, testé, etc. sur le compte de l'utilisateur .
la source
Comme toujours ... cela dépend. Il n'y a pas de réponse facile et les deux systèmes sont utilisés dans la pratique (par exemple, Windows: l'administrateur ne peut pas se connecter en tant qu'utilisateur sans réinitialiser le mot de passe par rapport à Linux: l'administrateur peut se connecter en tant qu'utilisateur local en utilisant
su
).De toute évidence, ne pas autoriser l'administrateur à se connecter en tant qu'un autre utilisateur est l'option la plus sécurisée, vous devez donc décider si le confort supplémentaire (pouvoir déboguer des problèmes qui ne se produisent que pour un certain utilisateur) l'emporte sur le risque. Si vous décidez d'implémenter une telle option, assurez-vous qu'il existe une journalisation rigoureuse, afin qu'un administrateur (ou quelqu'un qui a obtenu un mot de passe administrateur) ne puisse pas cacher ses traces.
Vous pouvez également utiliser le modèle que Windows utilise: Un administrateur ne peut pas se connecter en tant qu'autre utilisateur, mais un administrateur peut réinitialiser le mot de passe d'un utilisateur. De cette façon, un administrateur peut accéder, mais l'utilisateur toujours savoir que quelqu'un accède son compte.
la source
sudo
ne vous connecte pas en tant qu'utilisateur local, il exécute simplement un processus en tant qu'utilisateur ("Exécuter en tant qu'utilisateur" de la Window). Pour vous connecter en tant qu'utilisateur local, utilisezsu
. Sinon, je suis d'accord.sudo -i
.sh
comportement de l' exécutable qu'avec les autorisations accordées.su - user
etsudo -u user sh
accorder le même accès; la différence est qu'ilsh
exécute différents scripts de démarrage.Eh bien, phpBB3 a une fonctionnalité "Tester les autorisations de l'utilisateur" pour les administrateurs, ce qui est vraiment utile. De plus, cela ne vous permet pas vraiment d'interférer avec ce compte d'utilisateurs, mais d'obtenir simplement l'expérience qu'ils ont, en fonction de leurs autorisations.
Mais se connecter en tant que quelqu'un d'autre pose un certain nombre de problèmes, comme d'autres l'ont mentionné.
la source
Oui, une telle fonctionnalité peut être problématique, mais parfois il n'y a pas d'autre moyen, elle peut donc être nécessaire.
Quelques exemples:
su - <username>
, ce qui donne le même résultat que la connexion en tant que cet utilisateur, mais ne nécessite aucun mot de passe pour root)Comme indiqué, si des paramètres complexes dépendent de l'utilisateur connecté (variables d'environnement, chemins d'accès, paramètres personnels dans une application), il n'y a souvent aucun autre moyen pratique de déboguer le problème d'un utilisateur.
En ce qui concerne la journalisation / l'audit: l'utilisation de cette fonctionnalité doit bien sûr être journalisée. En dehors de cela, vous devrez faire confiance à votre administrateur pour ne pas en abuser. Mais cela est valable pour les administrateurs en général.
Si vous avez besoin de restreindre davantage vos administrateurs, vous avez besoin d'une sorte de système MAC (contrôle d'accès obligatoire), sans "vrai" administrateur. C'est possible, mais beaucoup plus compliqué, c'est donc un compromis.
la source