Déploiement Web vers IIS 7 avec authentification unique

12

Après beaucoup de configuration d'essai et d'erreur, je suis actuellement en mesure de scripter msdeploy.exe pour déployer un package intégré à Visual Studio 2010 sur un serveur distant exécutant IIS 7.5 avec une ligne de commande comme:

Commande d'authentification de base:

msdeploy -source:package="project.zip" -dest:auto,computerName='https://webserver:8172/MsDeploy.axd',authtype='Basic',username='DOMAIN\myuser',password='xxx',includeAcls='False' -verb:sync -setParamFile:"SetParameters.xml" -allowUntrusted

Puis-je éliminer la nécessité de fournir un mot de passe dans la ligne de commande en activant l'authentification unique? Les documents Web Deploy mentionnent le paramètre authType qui peut spécifier «NTLM», au lieu de Basic. Cependant, chaque fois que j'essaie ceci (voir l'exemple ci-dessous), j'obtiens une erreur indiquant un 401. Le journal Web WMSvc affiche un 401.2 et aucun ID utilisateur n'est renseigné dans cette entrée de journal, contrairement aux tentatives précédentes utilisant l'authentification de base montrent en fait le DOMAINE \ mon utilisateur dans le journal Web. Aucune autre information utile n'est trouvée dans l'Observateur d'événements du client ou du serveur.

Remarque: le serveur Web cible se trouve sur un autre domaine, je fais donc un net use \\webserver /u:DOMAIN\myuserpour établir un jeton.

Tentative de commande d'authentification unique:

msdeploy -source:package="project.zip" -dest:auto,computerName='https://webserver:8172/MsDeploy.axd',authtype='NTLM',includeAcls='False' -verb:sync -setParamFile:"SetParameters.xml" -allowUntrusted

Il semble que msdeploy.exe ne s'authentifie pas correctement avec IIS au niveau HTTP. Qu'est-ce qui pourrait mal?

Le client est Windows XP, le serveur est Win2008R2. Les deux exécutent la version 7.1.618.0 de msdeploy.exe. Les deux ont .NET 2.0, 3.5 et 4.0 installés.

spoulson
la source

Réponses:

1

Je suppose que nous ne pouvons pas utiliser l'authentification unique si l'ordinateur client ne reste pas avec le même domaine. Si vous utilisez Web deploy 1.1, vous pouvez essayer storeCredentials et getCredentials pour éviter de mettre un nom d'utilisateur et un mot de passe directement dans une ligne de commande.

sky100
la source
0

Je ne comprends peut-être pas parfaitement votre problème, mais pourriez-vous utiliser les indicateurs -storeCredentials et -getCredentials pour y parvenir?

Jeffery Smith
la source
0

Il s'agit clairement d'une réponse tardive et je suis sûr que vous avez résolu cela ou travaillé, mais au cas où cela aiderait quelqu'un d'autre:

Vous pouvez certainement utiliser MSDeploy pour déployer un package à l'aide de l'authentification NTLM même lorsque le serveur Web cible se trouve sur un autre domaine. C'est à peu près la ligne de commande que nous utilisons:

msdeploy.exe -source:package='MyPackage.csproj.zip' -dest:auto,computerName='https://www.myserver.com:8172/MsDeploy.axd?site=mysitename',authtype='NTLM',includeAcls='False' -verb:sync -disableLink:AppPoolExtension -disableLink:ContentExtension -disableLink:CertificateExtension -setParamFile:"MyPackage.csproj.SetParameters.xml"

Pour que cela fonctionne, nous exécutons cette commande à partir de la machine source dans le contexte de sécurité d'un nom d'utilisateur + mot de passe qui correspond de manière identique à un nom d'utilisateur + mot de passe sur le domaine cible.

Le fichier param n'a probablement aucune incidence sur l'authentification, mais je ne faisais que l'inclure pour être complet. Il s'agit de la méthode que nous utilisons pour appliquer différentes chaînes de connexion à l'application en fonction de l'endroit où elle est déployée.

Nous n'utilisons pas l'approche "net use" pour établir un jeton, je ne suis pas sûr que cela se traduise facilement en authentification NTLM via HTTP.

Michael12345
la source
-3

Accédez à la page d'administration du site IIS -> IIS -> Authentification

Activer l'authentification anonyme -> spécifier l'utilisateur invité IIS (IUSER_nomordinateur)

Accordez l'autorisation d'utilisateur invité IIS sur le dossier wwwroot du site Web.

Guido van Brakel
la source
Veuillez ne pas confondre l'authentification passthru avec aucune authentification du tout.
spoulson