Avoir un mot de passe "dieu" est une solution simple, mais il s'agit simplement d'une "autorisation" par le biais de la connaissance du mot de passe principal, et ne se prête pas à une bonne gestion des accès (c'est-à-dire contrôler qui peut le faire), ni à la responsabilité (qui a vraiment fait quoi).
Au lieu de cela, modifiez la structure de données de vos identifiants pour avoir un champ d'utilisateur effectif:
{user: alice, effective_user: bob,}
Le contenu de vos pages Web doit être rendu pour effective_user
, sauf s'il s'agit d'une page administrative interne qui a besoin de savoir qui est vraiment navigation. Notez que la plupart des personnes externes qui naviguent sur votre site auront toujours le même identifiant pour les deux champs:
{user: alice, effective_user: alice,}
Ceci L'arrangement vous permet de mieux contrôler qui est autorisé à devenir un autre utilisateur, et il vous permet également d'enregistrer / de vérifier qui a fait quoi au nom de qui. (Vous pouvez simplement connecter à la fois l'utilisateur et effective_user sur les choses que vous souhaitez surveiller.) Unix fait ce genre de chose d'utilisateur (et de groupe) efficace en interne si vous regardez les sources pour ce qui définit un processus. Imiter cela sur le Web s'appuie sur un paradigme connu et réussi.
Cette solution vous permet également de choisir les pages que votre personnel peut «regarder par-dessus l'épaule» d'un autre utilisateur. Vous pouvez choisir d'écrire une page qui ne s'affiche pas en fonction de l ' utilisateur_effectif
, alors aucune de cette page ne peut être vue par votre personnel même s'ils ont le privilège de modifier leur identifiant d'utilisateur effectif.
BTW, j'ai implémenté le concept d'utilisateur efficace sur le Web, et j'ai également implémenté le mot de passe divin. Ce dernier est facile à mettre en place lorsque toutes les infrastructures sont déjà en place. Mais ce n'est vraiment pas la meilleure solution pour savoir qui a fait quoi et gérer l'accès. Regardez de près à quel point le refactoring est vraiment impliqué pour ajouter le champ utilisateur efficace - il peut être moins que vous ne le pensez.