2011-04-27 5 views
1

Ok, je travaille sur une application web asp.net à utiliser en interne pour suivre l'évolution de notre personnel sur le campus et ce qu'il fait.Active Directory + Authentification HTTP

Nous utilisons actuellement un système pour cela qui utilise des tables "NoSQL" (ce qui n'est pas familier à 100% de toute façon ..) mais c'est un ancien système utilisant des scripts cgi. Donc, je le réécris dans asp.net pour mettre à jour le système pour le rendre plus moderne avec un design moderne et ajouter l'authentification Active Directory car il utilise sa propre base de données utilisateur séparée de AD que nous utilisons partout ailleurs.

J'ai trouvé un article à enable Active Directory Authentication via web.config, cependant, je préférerais au lieu d'utiliser l'authentification par formulaires, je voudrais lier cela dans une invite HTTP pour l'authentification. J'ai essayé quelques recherches Google pour essayer de trouver une solution, mais je n'arrive pas à trouver quelqu'un là-bas qui l'ait fait auparavant.

Merci d'avance.

Répondre

1

Tout d'abord, si vous allez authentifier les gens avec leurs informations d'identification de domaine, vous devez vous assurer d'utiliser HTTPS car sinon leurs mots de passe seront faciles à obtenir l'aide d'un sniffer de réseau. OK, donc ce dont vous parlez est le mode d'authentification Windows dans ASP.NET avec l'authentification de base IIS. Vous devez configurer les choses suivantes dans votre web.config:

<configuration> 
    <connectionStrings> 
    <add name="ADConnectionString" connectionString="LDAP://your.ad.fqdn.com/DC=com,DC=fqdn,DC=ad,DC=your"/> 
    </connectionStrings> 
    <system.web> 
    <membership defaultProvider="ADMembershipProvider"> 
     <providers> 
     <add name="ADMembershipProvider" type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="ADConnectionString" connectionUsername="MYNTDOMAIN\someuser" connectionPassword="asdf1234"/> 
     </providers> 
    </membership> 
    <authentication mode="Windows"/> 
    </system.web> 
</configuration> 

Ensuite vous allez vouloir configurer IIS pour l'authentification de base. En supposant que vous exécutez IIS 7.x, dans le Gestionnaire des services Internet, recherchez le dossier racine de votre application, puis cliquez sur Authentification. Vous devriez être en mesure d'activer l'authentification de base ici. Vous pouvez également activer l'authentification Windows pour autoriser les utilisateurs IE/Chrome à se connecter automatiquement:

Basic Authentication in IIS 7

1

L'authentification Windows est généralement transparente (elle s'authentifie automatiquement avec les informations d'identification avec lesquelles elle est connectée). Si vous souhaitez qu'ils soient obligés d'entrer des informations d'identification, votre page doit renvoyer un code d'état HTTP 401.

1

Il semble que vous souhaitiez activer l'authentification Windows dans votre application ASP.NET au lieu de l'authentification par formulaires. Cela implique essentiellement de changer le type d'authentification dans web.config de "Forms" à "Windows", puis de configurer les autorisations d'utilisateur/de groupe dans IIS. Le lien ci-dessous va dans les détails sur ces changements.

Plus d'infos:

MSDN Article on Windows Authentication in ASP.NET

Questions connexes