2015-02-10 127 views
2

我想從非域加入的計算機(Azure角色)連接到我的TFS,因此計算機必須以某種方式向我的TFS進行身份驗證。我知道如何用用戶名+密碼來做到這一點,但我寧願不將它保存在機器上。使用客戶端證書身份驗證通過TFS API連接到TFS

因此,我想要Configure my TFS for client certificate authentication,爲域用戶頒發客戶端證書,將其安裝在Azure角色上,然後使用它進行連接。

上面的文章說使用tfpt tweakui(其may actually be tfpt connections),但它沒有任何UI。

但無論哪種方式,我想使用TFS API連接。但是,我不知道如何:

// ------- I know username+password... ------------------- 
var NetCreds = new System.Net.NetworkCredential("username", "password"); // No certificate here 
var collection2 = new TfsTeamProjectCollection(new Uri("myuri"), new TfsClientCredentials(new WindowsCredential(NetCreds))); 

// ------- And I know how to get a certificate... -------- 
var certStore = new X509Store(StoreName.My, StoreLocation.LocalMachine); 
certStore.Open(OpenFlags.ReadOnly); 
var certCollection = certStore.Certificates.Find(X509FindType.FindByThumbprint, "Thumbprint-that-I'll-provide", validOnly: true); 
X509Certificate2 cert = certCollection.OfType<X509Certificate2>().Single(); 

// -------- But how to connect with it? ------------------ 
var TfsCreds = new TfsClientCredentials(cert); // Nope, no such method... 
var collection = new TfsTeamProjectCollection("myuri", TfsCreds); 

那麼,如何使用客戶端證書身份驗證連接到TFS?

回答

2

該頁面需要更新。最後有一個重要的評論說下列內容。您將需要使用這些較新的命令。

對於TFS 2010,有一件事情已經發生變化,服務器端的舊版tfsadminutil configureconnections命令已被替換爲tfsconfig證書(http://msdn.microsoft.com/en-us/library/ee349260.aspx)。在客戶端,tf certificates命令替換tfpt tweakui。

+0

是的! 'tf證書'它是!現在來測試它是否真的有效... – Jonathan 2015-02-24 15:33:03

+0

結語 - 它的工作原理。我需要證書的CA在機器的受信任根CA中。它讓我的所有用戶在瀏覽器中看到客戶端證書提示,但我可以忍受。 – Jonathan 2015-05-19 08:10:42

相關問題