Web Deploy für IIS 7 mit Passthrough-Authentifizierung


12

Nach umfangreichen Test- und Fehlerkonfigurationen kann ich derzeit msdeploy.exe als Skript ausführen, um ein in Visual Studio 2010 erstelltes Paket auf einem Remoteserver mit IIS 7.5 mit einer Befehlszeile wie der folgenden bereitzustellen:

Grundlegender Authentifizierungsbefehl:

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

Kann ich die Notwendigkeit beseitigen, ein Kennwort in der Befehlszeile anzugeben, indem ich die Passthrough-Authentifizierung aktiviere? In den Web Deploy-Dokumenten wird der authType-Parameter erwähnt , der 'NTLM' anstelle von Basic angeben kann. Wenn ich dies versuche (siehe Beispiel unten), wird jedoch eine Fehlermeldung angezeigt, die auf eine 401 hinweist. Im WMSvc-Webprotokoll wird eine 401.2 angezeigt, und in diesem Protokolleintrag wird keine Benutzer-ID angegeben, im Gegensatz zu früheren Versuchen mit Standardauthentifizierung wird DOMÄNE \ meinBenutzer angezeigt im Weblog. In der Ereignisanzeige von Client oder Server werden keine weiteren nützlichen Informationen gefunden.

Hinweis: Der Ziel-Webserver befindet sich in einer anderen Domäne. Daher muss net use \\webserver /u:DOMAIN\myuserein Token erstellt werden.

Versuch eines Pass-Through-Authentifizierungsbefehls:

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

Offenbar authentifiziert sich msdeploy.exe auf HTTP-Ebene nicht ordnungsgemäß bei IIS. Was könnte falsch sein?

Client ist Windows XP, Server ist Win2008R2. Beide führen msdeploy.exe Version 7.1.618.0 aus. Beide haben .NET 2.0, 3.5 und 4.0 installiert.

Antworten:


1

Ich schätze, wir können die Passthrough-Authentifizierung nicht verwenden, wenn der Client-Computer nicht in derselben Domäne bleibt. Wenn Sie Web Deployment 1.1 verwenden, können Sie storeCredentials und getCredentials ausprobieren, um zu vermeiden, dass ein Benutzername und ein Kennwort direkt in eine Befehlszeile eingegeben werden.


0

Möglicherweise verstehe ich Ihr Problem nicht vollständig, aber können Sie die Flags -storeCredentials und -getCredentials verwenden, um dies zu erreichen?


0

Dies ist eindeutig eine späte Antwort und ich bin sicher, dass Sie dies gelöst oder umgangen haben, aber für den Fall, dass dies jemand anderem hilft:

Sie können MSDeploy definitiv zum Bereitstellen eines Pakets mithilfe der NTLM-Authentifizierung verwenden, auch wenn sich der Ziel-Webserver in einer anderen Domäne befindet. Dies ist ungefähr die Kommandozeile, die wir verwenden:

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"

Damit dies funktioniert, führen wir diesen Befehl auf dem Quellcomputer im Sicherheitskontext eines Benutzernamens + Kennworts aus, der mit einem Benutzernamen + Kennwort in der Zieldomäne identisch ist.

Die param-Datei hat wahrscheinlich keinen Einfluss auf die Authentifizierung, aber ich habe sie nur der Vollständigkeit halber eingeschlossen. Mit dieser Methode wenden wir unterschiedliche Verbindungszeichenfolgen für die Anwendung an, je nachdem, wo sie bereitgestellt wird.

Wir verwenden den "net use" -Ansatz nicht, um ein Token zu erstellen. Ich bin mir nicht sicher, ob dies leicht zu einer NTLM-Authentifizierung über HTTP führt.


-3

Gehen Sie zur Seite IIS Site Admin -> IIS -> Authentifizierung

Anonyme Authentifizierung aktivieren -> IIS-Gastbenutzer angeben (IUSER_Computername)

Erteilen Sie dem IIS-Gastbenutzer die Berechtigung für den WWW-Stammverzeichnis der Website.


Bitte verwechseln Sie Durchgangsauthentifizierung nicht mit keiner Authentifizierung.
Spoulson
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.