簡體   English   中英

如何使用集成Windows身份驗證使用MSDeploy和TeamCity進行部署?

[英]How do I deploy using MSDeploy and TeamCity with Integrated Windows Authentication?

當我傳入用戶憑據時,我有一個MSDeploy部署與TeamCity很好地協作。 命令行參數(使用某些值的env。變量)是:

MSBuild.exe Web.csproj
/P:Configuration=%env.Configuration%
/ P:DeployOnBuild =真
/ P:DeployTarget = MSDeployPublish
/ P:MsDeployServiceUrl = https://% env.TargetServer% / MsDeploy.axd
/ P:AllowUntrustedCertificate =真
/ P:MSDeployPublishMethod = WMSVC
/ P:CreatePackageOnPublish =真
/P:UserName=%env.AdminUser%
/P:Password=%env.AdminPassword%

工作得很好。 但現在我想使用集成的身份驗證。 我嘗試使用集成身份驗證或只是基本的來自Can MSBuild部署的 Troy建議嗎? 但它沒有做到這一點。 我嘗試了傳遞空白用戶名和指定的各種組合

/ P:=進行AuthType NTLM

我得到的最接近的是指定/ p:AuthType = NTLM並傳入一個空白用戶名。 但是仍然會導致此錯誤:

使用Web管理服務連接到目標計算機(“[我的目標服務器名稱]”),但無法授權。 確保您使用的是正確的用戶名和密碼,您所連接的站點是否存在,以及憑據是否代表具有訪問該站點權限的用戶。 遠程服務器返回錯誤:(401)未經授權

我在本地和遠程服務器上都運行Web管理服務。 我將兩個實例更改為以我認識的用戶正確訪問該站點的方式運行 - 如果我手動傳入憑據,則該用戶可以正常工作。

我還嘗試在目標站點上手動為該用戶提供IIS管理員權限(但不確定為什么這是必要的,因為用戶可以在手動傳遞憑據時發布到站點)。

我注意到的一件事是,在WMsvc日志中,它沒有記錄使用NTLM auth進行嘗試的任何用戶名。

不知道這里發生了什么。 我真的不想在我的TeamCity配置中存儲用戶憑據。

謝謝。

我知道我提交並回答這個問題的時間有點遲了,但為了其他任何追逐此類問題的人的利益,我只是設法讓這個工作。

與OP類似,我試圖讓Windows Server 2008R2上的TeamCity使用WMsvc在遠程IIS 7.5服務器上發布一個網站。

在完成所有這些步驟之前,我一直在努力解決401錯誤:

  • 確保AuthType = NTLM參數集。

  • 確保提供了Username參數,但設置為空值。

  • 確保在遠程Web服務器上啟用了NTLM身份驗證,這涉及添加注冊表項:

     HKLM\\Software\\Microsoft\\WebManagement\\Server DWORD WindowsAuthenticationEnabled = 1 
  • 確保構建代理程序在構建服務器上運行的用戶上下文可以成功執行與WMsvc的Windows集成身份驗證連接。 我實際上必須以此用戶身份登錄到構建服務器,然后打開IE,並將目標網站添加到本地Intranet區域。 基本上,我一直在點擊這個URL並改變IE中的設置,直到我可以直接訪問它而沒有身份驗證提示或401錯誤:

     https://[the server]:8172/MsDeploy.axd?site=[the site] 

順便說一下,當我使用auth工作時,遠程WMSvc開始在Brownser中給我404錯誤,結果證明是一個好兆頭。 在此過程中,我還在構建服務器信任的遠程WMsvc上設置了SSL證書 - 可能不是必需的,但它有助於我的測試。

完成上述操作后,TeamCity部署開始報告此錯誤:

An error occurred when the request was processed on the remote computer.
The server experienced an issue processing the request. Contact the server administrator for more information.

我在事件日志中找不到任何有用的東西,但這里的修復只是為了確保經過身份驗證的用戶對目標文件夾具有必要的文件系統權限。 你可能想要更有選擇性,但我只是讓他們完全控制Inetpub。

構建代理服務是否在您要使用的帳戶下運行? 您提到了Web管理服務,但請記住它是構建代理 ,它實際上正在完成工作並需要權限。

我假設部署是使用TeamCity-Agent的帳戶執行的。 這可以解釋你的錯誤。 確保此帳戶具有適當的部署權限。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM