Partage
  • Partager sur Facebook
  • Partager sur Twitter

ASP .NET Stockage de Mot de Passe ?

Sujet résolu
    31 mars 2021 à 17:02:46

    Bonjour, 

    Il y a longtemps j'ai entendu qu'il ne fallait pas stocker de mot de passe dans une BDD ou en dure dans le code. 

    Mais c'est utilisé dans la plupart des tutos que je trouve : 

    https://docs.microsoft.com/fr-fr/troubleshoot/aspnet/forms-based-authentication

    ou encore

    https://docs.microsoft.com/en-us/previous-versions/xdt4thhy(v=vs.140)?redirectedfrom=MSDN

    Ma question principale est OU stocker les mot de passe ? 

    • Partager sur Facebook
    • Partager sur Twitter

    Site Internet : https://devst.go.yj.fr

      31 mars 2021 à 17:25:23

      >OU stocker les mot de passe ?

      Nulle part.

      Utilisez l'authentification intégrée de votre OS, qui utilise de la cryptographie à clé privée/publique et des tokens ; et pas des mots de passe.

      • Partager sur Facebook
      • Partager sur Twitter
      Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
        31 mars 2021 à 19:09:56

        les mots de passe en clair nulle part, question de sécurité. les mots de passe chiffrés en base on peut,
        • Partager sur Facebook
        • Partager sur Twitter
          31 mars 2021 à 22:17:45

          >les mots de passe chiffrés en base on peut,

          Bof, plutôt hashés+salés, et les framework .NET le font pour nous.

          • Partager sur Facebook
          • Partager sur Twitter
          Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
            1 avril 2021 à 8:48:39

            Merci pour vos réponses 

            Bacelar est ce que vous auriez un lien qui montre comment le mettre en place ?

            Edit : pour les liens j'utilise les suivants : 

            https://docs.microsoft.com/fr-fr/aspnet/core/security/authentication/windowsauth?view=aspnetcore-5.0&tabs=visual-studio

            https://www.codeproject.com/Articles/98950/ASP-NET-authentication-and-authorization-2

            Sinon pour donner plus de précision : 

            Les PC en prod partage tous un même compte

            Les données ne sont pas sensible (pas besoin de mettre une authentification au démarrage). 

            Besoin d'un système d'authentification quand il y a un accès sur la page Configuration (Possibilité de supprimer toutes les données). 

            Peut-être plus tard mettre en place des rôles pour que chaque personne n'ai accès qu'à la configuration qui leur concerne.  

            Je ne suis pas sûr d'avoir le droit de toucher à la config' d'IIS directement. 

            Edit : C'est beaucoup plus simple de l'activer que ce que je pensais 😅

            Suffit d'aller dans les propriétés du projet de désactiver authentification anonyme et d'activer authentification Windows  

            A voir maintenant pour essayer de configuré un minimum (créer des rôles, cookies...). 

            -
            Edité par DeveloSt 1 avril 2021 à 10:46:12

            • Partager sur Facebook
            • Partager sur Twitter

            Site Internet : https://devst.go.yj.fr

              6 avril 2021 à 17:44:22

              Bonjour, 

              Je fait remonter le sujet 😅

              Du coup j'utilise l'authentification Windows 🙂, cependant j'aurai bien aimé comprendre le fonctionnement... 

              Mes questions sont les suivantes : 

              1) Le serveur connait le compte windows de tous les utilisateurs ? 

              (j'ai essayé de chercher en interne comment était crée un compte informatique, mais j'ai rien trouvé d'intéressant 😑)

              2) Comment peut-on retrouver les utilisateurs (les différents comptes) sur le serveur ?

              (En faisant des recherche je suis tombé sur Active Directory, mais je ne sais pas trop comment cela fonctionne et même si j'ai la main dessus)

              3) Est ce qu'il m'est possible d' attribuer des rôles a partir de la BDD (identifiant de connexion) ? 

              4) Est-ce qu'il est possible de sécuriser les chemins ? (ne pas taper l'adresse directement dans l'URL pour accéder à une page) 

              5) Si je modifie cette ligne sur l'état 'false' dans le web config <identity impersonate="true"/> j'obtiens defaultapppool comme nom d'utilisateur ? 

              Je vous remercie d'avance pour vos réponses. 

              -
              Edité par DeveloSt 6 avril 2021 à 17:51:13

              • Partager sur Facebook
              • Partager sur Twitter

              Site Internet : https://devst.go.yj.fr

                6 avril 2021 à 20:55:06

                Qu'entendez-vous par "serveur" ???

                1 -

                Un contrôleur de domaine "connait" les comptes des utilisateurs du domaine, vu que c'est lui qui en à la charge de leur création à leur destruction.

                Il connait aussi les comptes des machines enregistrées dans le domaine, vu qu'on s'adresse à lui pour enregistrer une machine dans le domaine.

                Il ne connait pas les comptes locaux aux machines, car il s'en cogne, tout compte local n'a aucun droit sur le réseau (et si les administrateurs du domaine font leur tafs, via les GPO du domaine, ces comptes locaux n'auront que peu de droits (s'ils ont le droit d'exister)).

                >j'ai essayé de chercher en interne comment était crée un compte informatique

                Tes admin réseaux sont des grands timides ou des petits blagueurs ?

                2 -

                Si par "serveur", on parle d'un domaine Windows, il faut toujours interrogé le contrôleur de domaine, ou l'une de ces copies. Il y a plusieurs manières de l’interroger (ou les interroger) mais c'est fonction des options/protocoles que les administrateurs système/réseau ont configurez.

                Le plus courant, sous Windows, en environnement homogène, c'est Active Directory. Mais en milieu hétérogène LDAP règne en maître. Mais comme toujours, demandez à vos admins.

                3 -

                C'est fonction du framework que vous utilisez et de comment vous l'avez configuré. Il y a longtemps, la dernière fois que j'ai configuré ce genre de chose, il y avait plusieurs choix, comme mettre les rôles dans la base (mode "autonome", sans Active Directory), ou se servir des groupes d'utilisateurs du domaine comme "alias" de rôles, mais je pense que des options à base d'annuaire LDAP ou de fédération d'identité Google/Facebook/etc... existent maintenant.

                4 -

                Très probablement oui. Mais c'est fonction du framework ASP.NET et de sa version. Mais la gestion des "routes" est tellement avancée maintenant que cela m'étonne que ce réglage "permissif" soit encore le réglage par défaut.

                5 -

                >j'obtiens defaultapppool comme nom d'utilisateur ?

                C'est quoi la question ?

                Si vous n'activez pas "l'impersonation", le compte effectif du processus et/ou des threads d'ASP.NET sera celui du pool associé à l'application Web.

                C'est souvent "DefaultAppPool" sur une machine de développement mais beaucoup plus rarement sur une machine de production et c'est donc très variable en fonction de la configuration de la machine hôte, du serveur Web, de l'application Web, etc...

                • Partager sur Facebook
                • Partager sur Twitter
                Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
                  7 avril 2021 à 10:34:00

                  bacelar a écrit:

                  Qu'entendez-vous par "serveur" ???

                  L'année dernière le site avait encore un serveur qui lui appartenait, suite à sont rachat ils sont passé sur un serveur mutualisé du groupe (il y a une chose qui m'intrigue, on m'a dit qu'on accède au serveur sur une Virtual Machine, cela doit surement servir à le scindé pour être utilisé sur plusieurs site mais ça me parait étrange 😅). 

                  (D'ailleurs c'est pour cela qu'il y a eu une petite monté en version de MySQL) 

                  Quand je parle de serveur, c'est la ou est hébergé l'application.

                  Du coup il y a un serveur commun qui gère tous ce qui est authentification Windows ? Les partages avec les différents serveur 'site' ? Du coup quand une personne essaye de se connecter sur un compte windows celui-ci interroge le serveur "Contrôleur de Domaine" ? 

                  bacelar a écrit:

                  Il ne connait pas les comptes locaux aux machines, car il s'en cogne, tout compte local n'a aucun droit sur le réseau (et si les administrateurs du domaine font leur tafs, via les GPO du domaine, ces comptes locaux n'auront que peu de droits (s'ils ont le droit d'exister)).

                  Ok donc si un compte local est créer ce n'est pas sûre que je puisse le récupérer par l'authentification Windows ?

                  bacelar a écrit:

                  Tes admin réseaux sont des grands timides ou des petits blagueurs ?

                  Je n'ai pas beaucoup de contact avec les admin réseaux 😅 (j'ai demandé à un collègue sur site, il m'a dit qu'il fait uniquement la demande et ne sait pas comment cela fonctionne exactement)

                  bacelar a écrit:

                   c'est fonction des options/protocoles que les administrateurs système/réseau ont configurez.

                  Le plus courant, sous Windows, en environnement homogène, c'est Active Directory. Mais en milieu hétérogène LDAP règne en maître. Mais comme toujours, demandez à vos admins.

                  Ok, Est-ce qu'il y a des paramètres qui peuvent être configurés par les admin pour m'empêcher de récupérer les authentifications Windows depuis l'application ? ou tous simplement un changement dans la manière de créer des comptes utilisateurs qui fait que je ne peux plus authentifier un utilisateur ?  

                  (ce qui me fait un peu peur c'est que dans quelque mois cela ne fonctionne plus) 

                  bacelar a écrit:

                  ou se servir des groupes d'utilisateurs du domaine comme "alias" de rôles, 

                  C'est comme cela que je comptais procéder. 

                  bacelar a écrit:

                   je pense que des options à base d'annuaire LDAP ou de fédération d'identité Google/Facebook/etc... existent maintenant.

                  Je vais m'informer sur le sujet 

                  -
                  Edité par DeveloSt 7 avril 2021 à 10:34:20

                  • Partager sur Facebook
                  • Partager sur Twitter

                  Site Internet : https://devst.go.yj.fr

                    7 avril 2021 à 15:12:36

                    >Quand je parle de serveur, c'est la ou est hébergé l'application.

                    C'est toujours vague, le "où", c'est quoi ?

                    Le réseau ?

                    Le domaine Windows ?

                    La machine hôte ?

                    La session Windows ?

                    Le serveur applicatif ? (IIS)

                    Le pool de la Web Application ?

                    Le processus en charge de la session HTTP ?

                    Le thread en charge de l'exécution de la la requête HTTP ?

                    etc ... (et j'ai même pas parlé de réseau virtuel ou de machine virtuelle)

                    >Du coup il y a un serveur commun qui gère tous ce qui est authentification Windows ?

                    Il y a un groupe de contrôleur (un principal et des back-up) de domaine, par domaine Windows.

                    S'il y a plusieurs domaines Windows, il y a plusieurs groupe de contrôleur (les forêts de domaine Windows permettent de fusionner des contrôleurs).

                    S'il n'y a pas de domaine (=>workgroup), c'est que se sont des comptes locaux à la machine.

                    >Les partages avec les différents serveur 'site' ?

                    Le concept de "site", ça veut pas dire grand-chose. Faudrait savoir comment ils se définissent les uns par rapport aux autres (même infrastructure réseau ou pas, même  domaine Windows ou pas, utilisation de fédération d'identité ou pas, infrastructure virtualisée à quel niveau (réseau, machine, etc...).

                    >Du coup quand une personne essaye de se connecter sur un compte windows celui-ci interroge le serveur "Contrôleur de Domaine" ?

                    Si c'est un compte utilisateur DU DOMAINE et qu'il ne s'est jamais connecté avant depuis la machine, oui, l'OS de la machine va interroger le contrôleur de domaine correspondant pour vérifier que le mot de passe est correct (via des algorithmes de challenge/response). Une fois cette première authentification faite, l'OS de la machine hôte sauvegarde un token au cas ou la machine ne pourrait plus contacter le contrôleur de domaine plus tard, pour des authentification ultérieure de ce compte sur cette machine.

                    >Ok donc si un compte local est créer ce n'est pas sûre que je puisse le récupérer par l'authentification Windows ?

                    Je ne suis pas sûr de comprendre la question.

                    Oui, les administrateurs sont capables d'invalider un compte de domaine, si la machine Windows arrive à recontacter le contrôleur de domaine. Et encore heureux.

                    Pour les comptes locaux, des administrateurs "raisonnables" interdissent ce genre de possibilité (création de nouveaux comptes locaux) pour les machines "standards". En temps que "développeur casse-couille", les machines pour développeur ont souvent des réglages moins stricts sur ce domaine des comptes locaux (outils qui ne fonctionnent pas sans ça, etc...), quand on ne les a pas assez surinés pour qu'ils nous laissent administrateur de la machine.

                    >Je n'ai pas beaucoup de contact avec les admin réseaux

                    C'est bien dommage, car ils peuvent être de très très bons conseils, et vous éclairez sur vos interrogations.

                    >Ok, Est-ce qu'il y a des paramètres qui peuvent être configurés par les admin pour m'empêcher de récupérer les authentifications Windows depuis l'application ?

                    Bin oui, c'est un peu leur taf. Faut pas qu'un trou de sécurité fait pas un "apprenti stagiaire de ces guignols du dev" nous casse toute notre infrastructure.

                    >ou tous simplement un changement dans la manière de créer des comptes utilisateurs

                    Oui, et bien d'autres choses. Si vous les considérez comme vos ennemis, vous êtes déjà mort. Il faut pas se poser la question du "si" ils peuvent te cassé ton application, c'est plutôt de tout bien documenter et de se conformer a LEUR habitude de travail. C'est toute la problématique du "DevOps".

                    >(ce qui me fait un peu peur c'est que dans quelque mois cela ne fonctionne plus)

                    Si vous avez suivi LEUR recommandations, c'est plus votre problème. (Vous n'avez pas la possibilité de contrer leurs bêtises)

                    • Partager sur Facebook
                    • Partager sur Twitter
                    Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
                      7 avril 2021 à 17:17:21

                      Je vous remercie beaucoup pour vos réponses. 

                      c'est juste que je garde très peu de bon souvenir des admin réseaux de mes expériences passé  

                      Les quelques fois que je les aient contacté, ça c'est conclu par l'impossibilité de développer/déployer les applications sans me proposer de solution 🙁 

                      (Récupérer des informations depuis un progiciel dans un fichier Excel, Récupérer des informations sur un PC depuis un automate, Solution à développer au niveau du groupe...)

                      Même en les considérant comme des amis je suis déjà mort 😥 

                      Du coup je préfère garder un contrôle total sur l'application. 

                      Et puis c'est pas toujours évident de faire l'interlocuteur entre les manager qui nous demande de développer des applications et le service informatique qui fait qu'à un moment on ne peut plus avancer.  

                      Après ce n'est pas dans la même entreprise, mais vus les relations qu'entretien mon collègue avec les admin réseaux (je ne suis pas sûre que ça soit mieux)

                      bacelar a écrit:

                      >(ce qui me fait un peu peur c'est que dans quelque mois cela ne fonctionne plus)

                      Si vous avez suivi LEUR recommandations, c'est plus votre problème. (Vous n'avez pas la possibilité de contrer leurs bêtises)

                      Après, justement je suis la personne qui développe l'application, si un moment l'application ne fonctionne plus, je suis la première personne que l'on va venir voir donc ça reste mon problème 



                      -
                      Edité par DeveloSt 7 avril 2021 à 17:35:49

                      • Partager sur Facebook
                      • Partager sur Twitter

                      Site Internet : https://devst.go.yj.fr

                        7 avril 2021 à 19:46:28

                        >je garde très peu de bon souvenir des admin réseaux de mes expériences passé

                        Si vous ne les consultez pas AVANT et que vous ne cherchez pas à comprendre leur point de vue, c'est normal que ça tourne au vinaigre. Si vous les écoutez et que vous n'essayez pas de les contourner, ça devrait mieux se passer.

                        Normalement, c'est aux architectes de votre boite de vous fournir les informations nécessaire à une bonne intégration des applicatifs dans l'infrastructure de votre société.

                        Il faudrait donc que votre hiérarchie se sorte un peu les doigts du c.. pour qu'elle vous mette en relation avec les sachants et que vous n'avez pas à faire la tournée des popotes pour que vous puissiez faire votre taf.

                        Bon, aussi, un petit conseil, ayez quand même quelques bases en administration pour qu'ils (les admin) ne vous baladent pas trop, si les architectes sont un peu aux fraises (ce qui arrive bien trop souvent).

                        >ça c'est conclu par l'impossibilité de développer/déployer les applications sans me proposer de solution

                        Si vous les consultez pas avant et que vous ne comprenez pas leurs problématiques, c'est normal que cela tourne en eaux de boudin. Ils sont le garant de la pérennité des infrastructures, c'est leur rôle de vous "cadrer".

                        >Récupérer des informations depuis un progiciel dans un fichier Excel, Récupérer ...

                        Il y a déjà beaucoup de voyants rouges de potentiels emmerdes. Soyez pro-actif et faites en sorte de les éliminer "en amont".

                        Toutes les questions que vous vous posez pour l'authentification, normalement, c'est des trucs qui ne sont pas spécifique à votre application et donc des solutions "groupes" ont déjà été posés et les architectes sont là pour les faire respecter, aussi par vous, développeur, que par les admin qui se sont engagés à les respecter et facilité leurs utilisations.

                        Faudrait savoir pourquoi votre application ne peut pas suivre les solutions déjà utilisées dans votre société.

                        >Du coup je préfère garder un contrôle total sur l'application.

                        Cherchez pas, vous n'avez aucun "contrôle" sur application. S'ils veulent démonter votre application et vous faire porter le chapeau, votre seule solution, c'est d'implémenter correctement la solution retenue en accord avec eux. Vous n'avez que le "bouton nucléaire" par la preuve que vous avez suivi les recommendations et que c'est eux qui ont merdés. Si vous avez suivi les recommandations "groupes" fourni pas les architectes, vous êtes à couvert (sauf scud "politique", mais c'est imparable).

                        >Et puis c'est pas toujours évident de faire l'interlocuteur entre les manager qui nous demande de développer des applications et le service informatique

                        Non, c'est à eux (les managers) de gérer les réunions et autres propositions entre services. Ils doivent aussi vous aiguillez vers les sachant des solutions "groupe".

                        Vous avez plus en commun, en tant que développeur, avec les admins qu'avec les managers. S'il y a une mauvaise communication généralisée entre les services, c'est de leur ressort de mettre de l'huile dans les rouages (via des réunions inter-service qui ne devraient pas être une compétition de qui qui y a la plus grosse.)

                        >je suis la première personne que l'on va venir voir

                        Absolument pas, vous n'êtes normalement qu'au niveau 3 du support. Les administrateurs sont généralement dans la boucle largement avant (pour rattraper leurs boulettes qui sont bien plus fréquente que des "bugs" qui ont largement disparus avec toutes les séries de tests que votre application c'est mangée). Ils peuvent quand même vous pourrir si votre application n'est pas correctement "monitorable", s'ils ont été "gentils" à la mise en production (mais les admin expérimentés ne se font pas avoir et vous cadre avant).

                        Un projet n'est jamais "seul", vous devez faire votre application dans le cadre "culturel" de votre entreprise. Si vous êtes nouveau, vous pouvez être force de proposition de changement de pratique, mais faut convaincre. Et on ne convainc que rarement quand on ne connait pas la manière de penser de ses interlocuteurs.

                        • Partager sur Facebook
                        • Partager sur Twitter
                        Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
                          8 avril 2021 à 10:02:16

                          Je suis totalement d'accord avec votre réponses

                          D'ailleurs, j'aurai bien aimé travailler ou être aiguillé par une personne avec plus d'expérience au sein de l'entreprise, (Je vous remercie encore pour tous vos conseils) 

                          Pour en revenir au différents expérience que j'ai eu et mon ressentiment au travers des entreprises pour lesquelles j'ai travaillé. 

                          ==> Stage Fin DUT - dans une entrepris A (C'est ici que j'ai eu la meilleure relation avec le service informatique) 

                          J'ai eu l'occasion de travailler sur une application qui avait déjà était commencé par une équipe en Allemagne, elle récupérait des informations depuis une API sauf qu'il y avait une données manquante et ma hiérarchie en avait parlé lors d'une réunion. 

                          Ce sont des choses qui me paraissent impossible dans les 2 autres entreprises, (Rien que de reprendre une application pour y ajouter des spécificités locales)

                          ==> Apprentissage - dans une entreprise B (Mon job en tant que développeur c'est limité à la création de Macro Excel)

                          Pour mon projet de fin d'étude mon maitre d'apprentissage m'a demandé de développer un système de supervision de la production (Le groupe possédait déjà un outils (MAIS suite à plusieurs réunions les managers ont décidé que l'outil ne répondait pas à leurs besoin et le couts de la mise en place était trop élevé), Je réalise toute la partie préliminaire, développe la solution (3-4mois) et arrive à un moment ou j'ai besoin du service informatique qui me dit que c'est impossible de continuer. A ce moment la je suis suis retrouvé lâché par les managers et le service informatique. 

                          Ils m'ont donnés les raisons suivantes (rationalisation des outils, maintenabilité, partage des connaissances). En prenant du recule, je trouve que le service informatique avait raison de me stopper dans le projet et que les coupables a ce moment sont plus les managers. 

                          Du coup je suis intervenu en tant que support sur le site (MAJ OS, Antivirus, Bloqueur port USB / Installation d'IOT  dans les armoires électrique / Programmation automate pour envoyer les bonnes informations) dans la mise en place du projet sur le site (mais au final le projet n'a pas été très concluant en 1 année de développement avec 1 réunions dans la semaine (d'une 15aine de personnes) le projet fut testé sur le site sur une toute petite partie).   

                          ==> Mission d'interim - Dans une entreprise C

                          Rebelotte L'entreprise cherche à mettre en place un système de supervision de la production (le groupe possède également déjà un outil, mais ne répond pas aux spécificités locales et le coût de la mise en place est trop élevé), de mon côté ça fait presque 6 mois que je suis en recherche de travaille et au vus des résultats à mon départ de mes années d'apprentissage j'accepte.

                          La situation est également différente de l'entreprise ou j'ai fait mon apprentissage (peu de mouvement entre les personnelle et le site, entreprise racheté par le groupe il y a peu, Suivi de la production différentes de l'outil actuelle (pas par commande car il y a des commandes de 1 quantité qui peuvent être réalisé en 1 minute), pas d'automates...)  

                          Après je suis loin d'être "seul" dans le développement (Au contraire je suis plus proche des personnes qui utilisent réellement l'application), j'ai également des contactes au sein du groupe pour connaitre les différents indicateurs qu'ils utilisent comment il sont calculé... 

                          Pour l'instant je suis même plutôt content de l'application que j'ai conçu (9 mois de développement), qui est fonctionnelle et utilisé sur le site par l'ensemble des personnes et service (Opérateur, Manager, qualité, maintenance...).  

                          -
                          Edité par DeveloSt 8 avril 2021 à 14:34:16

                          • Partager sur Facebook
                          • Partager sur Twitter

                          Site Internet : https://devst.go.yj.fr

                          ASP .NET Stockage de Mot de Passe ?

                          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                          • Editeur
                          • Markdown