パススルー認証を使用したIIS 7へのWeb配置


12

多くの試行錯誤の構成の後、現在msdeploy.exeをスクリプト化して、Visual Studio 2010でビルドされたパッケージを、IIS 7.5を実行しているリモートサーバーに次のようなコマンドラインで展開できます。

基本認証コマンド:

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

パススルー認証を有効にすることで、コマンドラインでパスワードを提供する必要をなくすことはできますか?Web配置のドキュメントは、認証タイプのパラメータ言及代わりに、基本の「NTLM」を、指定することができます。ただし、これを試行するたびに(下の例を参照)、401を示すエラーが表示されます。WMSvcWebログには401.2が表示され、基本ログを使用した以前の試行とは異なり、実際にはDOMAIN \ myuserが表示されます。 Webログで。クライアントまたはサーバーのイベントビューアーには、他の有用な情報は見つかりません。

注:ターゲットWebサーバーは別のドメインにあるためnet use \\webserver /u:DOMAIN\myuser、トークンを確立するためにaを実行します。

パススルー認証コマンドの試行:

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

msdeploy.exeがHTTPレベルでIISで正しく認証されていないようです。何が間違っているのでしょうか?

クライアントはWindows XP、サーバーはWin2008R2です。両方ともmsdeploy.exeバージョン7.1.618.0を実行しています。どちらにも.NET 2.0、3.5、および4.0がインストールされています。

回答:


1

クライアントコンピューターが同じドメインにとどまらない場合、パススルー認証を使用できないと思います。Webデプロイ1.1を使用する場合、storeCredentialsおよびgetCredentialsを試して、コマンドラインにユーザー名とパスワードを直接入力しないようにすることができます。


0

私はあなたの問題を完全には理解していないかもしれませんが、-storeCredentialsおよび-getCredentialsフラグを使用してこれを達成できますか?


0

これは明らかに遅い回答であり、あなたはこれを解決したか回避したと確信していますが、これが他の人に役立つ場合:

ターゲットWebサーバーが別のドメインにある場合でも、NTDeploy認証を使用してパッケージを展開するために、MSDeployを確実に使用できます。これはおおよそ使用するコマンドラインです。

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"

これが機能するためには、ターゲットドメインのユーザー名+パスワードと完全に一致するユーザー名+パスワードのセキュリティコンテキストでソースマシンからこのコマンドを実行します。

paramファイルはおそらく認証に関係ありませんが、完全を期すためにそれを含めました。これは、デプロイ先に応じてアプリケーションに異なる接続文字列を適用するために使用する方法です。

「net use」アプローチを使用してトークンを確立することはありません。これがHTTPを介したNTLM認証に容易に変換されるかどうかはわかりません。


-3

IISサイト管理ページ-> IIS->認証に移動します

匿名認証を有効にする-> IISゲストユーザー(IUSER_computername)を指定する

WebサイトwwwrootフォルダーでIISゲストユーザーのアクセス許可を付与します。


パススルー認証と認証なしを混同しないでください。
spoulson
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.