J'écris de l'automatisation des tests et des scripts nécessitant une authentification Windows sur le domaine pour accéder.
Je n'aime pas les garder dans l'app.config car ils sont disponibles en texte brut.
Je n'aime pas l'invitation à saisir, car alors ce n'est plus automatisé.
Si je les code fort dans l'assemblée, ils sont visibles du réflecteur .NET et ils sont contrôlés dans le contrôle de la source lorsque je commette les fichiers .cs.
Existe-t-il une motif / pratique qui facilite l'utilisation des noms d'utilisateur et des mots de passe configurés sans les exposer. p>
Ceci s'applique également aux sites Web contenant des informations d'identification pour se connecter et les bases de données, utilisez l'authentification Windows ou l'authentification SQL Server pour se connecter.
Tout conseil serait grandement apprécié. P>
3 Réponses :
Vous pouvez utiliser Convert.Tobase64String () et convert.frombase64string () avec des mots de passe codés dur pour fournir obfuscation de base . P>
Si vous voulez vraiment quelque chose de plus fort, utilisez un algorithme de clé symétrique comme par exemple. Blowfish , mais il est surchargé et vous devez toujours stocker la clé quelque part. p>
Cela ressemble à une solution mobile spécifiquement au cryptage et à stocker la clé quelque part que l'automatisation aurait la permission d'atteindre.
Si vous pouvez stocker la clé quelque part, seul l'outil d'automatisation aurait la permission d'atteindre, ne serait-il pas plus facile de stocker les mots de passe là-bas?
Le processus qui exécute les tests pourrait eux comme un utilisateur authentifié. De cette façon, vous devez seulement entrer le nom d'utilisateur et le mot de passe lors de la configuration de la tâche Service / planifiée / etc. Bien sûr, si vous devez em> d'entrer des informations d'identification en entrée dans le test, cela ne vous aidera pas. P>
Vous pouvez également prendre cette étape et configurer un fichier crypté sur NTFS contenant les mots de passe des connexions SQL Server. Le compte d'utilisateur exécutant la tâche de planification serait en mesure de lire le contenu du fichier crypté. Base sur ma compréhension limitée du cryptage NTFS, elle peut être configurée pour limiter l'accès à ce fichier à partir d'autres comptes.
Ou l'utilisateur de test pourrait simplement se connecter aux bases de données SQL à l'aide de l'authentification Windows; De cette façon, vous n'avez pas à lire de mots de passe.
ne pouviez pas utiliser dpapi pour le protéger? p>
Il y a un article intéressant MSDN @ http://msdn.microsoft.com/ EN-US / MAGAZINE / CC164054.ASPX P>