我想從非域加入的計算機(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?
是的! 'tf證書'它是!現在來測試它是否真的有效... – Jonathan 2015-02-24 15:33:03
結語 - 它的工作原理。我需要證書的CA在機器的受信任根CA中。它讓我的所有用戶在瀏覽器中看到客戶端證書提示,但我可以忍受。 – Jonathan 2015-05-19 08:10:42