Я хочу подключиться к своей TFS с компьютера, не связанного с доменом (роль Azure), чтобы машина как-то аутентифицировалась в моей TFS. Я знаю, как это сделать с именем пользователя + пароль, но я бы предпочел не сохранять его на машине.Подключение к TFS через API TFS с использованием проверки подлинности сертификата клиента
Итак, я хочу, чтобы Configure my TFS for client certificate authentication, выдать сертификат клиента для пользователя домена, установить его на роль Azure и использовать его для подключения.
В приведенной выше статье говорится использовать tfpt tweakui
(который may actually be tfpt connections
), но у этого нет пользовательского интерфейса.
Но в любом случае, я хочу подключиться с помощью 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
Эпилог - он работает. Мне нужно, чтобы CA сертификата находился в доверенных корневых центрах машины. И все мои пользователи видят подсказки сертификатов клиентов в своем браузере, но я могу жить с этим. – Jonathan