통과 인증을 사용하여 IIS 7에 웹 배포


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

통과 인증을 사용하여 명령 행에서 비밀번호를 제공 할 필요가 없습니까? 웹 배포 문서는 authType이 매개 변수를 언급 하는 대신 기본으로, 'NTLM'를 지정할 수 있습니다. 그러나이 작업을 시도 할 때마다 (아래 예 참조) 401을 나타내는 오류가 발생합니다. WMSvc 웹 로그에 401.2가 표시되고 기본 인증을 사용하는 이전의 시도와 달리 실제로 DOMAIN \ myuser가 표시되는 것과 달리 해당 로그 항목에 사용자 ID가 채워지지 않았습니다. 웹 로그에. 클라이언트 나 서버의 이벤트 뷰어에는 다른 유용한 정보가 없습니다.

참고 : 대상 웹 서버가 다른 도메인에 있으므로 net use \\webserver /u:DOMAIN\myuser토큰을 설정합니다.

통과 인증 명령 시도 :

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 deploy 1.1을 사용하는 경우 사용자 이름과 비밀번호를 명령 행에 직접 입력하지 않도록 storeCredentials 및 getCredentials를 시도 할 수 있습니다.


0

문제를 완전히 이해하지 못했을 수도 있지만 -storeCredentials 및 -getCredentials 플래그를 사용하여이 작업을 수행 할 수 있습니까?


0

이것은 분명히 늦게 답변 이며이 문제를 해결하거나 해결했음을 확신하지만 다른 사람에게 도움이되는 경우 :

대상 웹 서버가 다른 도메인에있는 경우에도 MSDeploy를 사용하여 NTLM 인증을 사용하여 패키지를 배포 할 수 있습니다. 이것은 대략 우리가 사용하는 명령 줄입니다.

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"

이 작업을 수행 하려면 대상 도메인의 username + password 와 동일하게 username + password의 보안 컨텍스트에서 소스 머신에서이 명령을 실행하십시오 .

param 파일은 인증과 관련이 없지만 완전성을 위해 포함 시켰습니다. 이는 배포 위치에 따라 응용 프로그램에 다른 연결 문자열을 적용하는 데 사용하는 방법입니다.

"넷 사용"접근 방식을 사용하여 토큰을 설정하지는 않습니다. 이것이 HTTP를 통한 NTLM 인증으로 쉽게 변환되는지는 확실하지 않습니다.


-3

IIS 사이트 관리자 페이지-> IIS-> 인증으로 이동하십시오.

익명 인증 사용-> IIS 게스트 사용자 지정 (IUSER_computername)

웹 사이트 wwwroot 폴더에 IIS 게스트 사용자 권한을 부여하십시오.


경유 인증을 인증없이 혼동하지 마십시오.
spoulson
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.