Autenticación contra un servidor Team Foundation Server

En alguno de los ejemplos que he publicado anteriormente sobre como trabajar con el modelo de objetos de Team Foundation Server, vemos que siempre el primer paso es conectarse con el servidor de Team Foundation Server. En principio este no es un paso muy complicado, pero tenemos que lidiar con la obtención de credenciales de usuario para realizar la conexión. Obtener las credenciales de un usuario es algo que todas las aplicaciones hacen, pero que en pocas ocasiones se realiza con la seguridad que requiere el tema. Al fin y al cabo estamos pidiendo a alguien sus credenciales y estas podrían servir para comprometerle o incluso realizar acciones ilegales en su nombre.


En el API de Team Foundation, nos han facilitado la vida, y es realmente simple mostrar el cuadro de dialogo para autenticarnos contra un servidor Team Foundation:


//Creamos un proveedor de credenciales
ICredentialsProvider provider = new UICredentialsProvider();
TeamFoundationServer tfs =
 TeamFoundationServerFactory.GetServer(“server_name”, provider);
try
{
  /*
  Intentamos autenticarnos.
  Podemos usar los métodos Authenticate o EnsureAuthenticated. 
  Authenticate siempre va a llamar al servidor, con independencia de que el usuario ya se encuentra autenticado. EnsureAuthenticated, nos ahorra la llamada al servidor si el usuario ya se encuentra  autenticado, por ejemplo desde Visual Studio por lo que no penaliza el rendimiento si se  llama varias veces.
  */
  tfs.EnsureAuthenticated();
}
catch (UnauthorizedException)
{
  //El usuario no esta autenticado.
}


Esto funciona perfectamente en aplicaciones Windows, para ver como autenticarse desde el propio servidor o desde una aplicación de consola, mirad el documento: Team Foundation Server Object Model.doc, del SDK de Visual Studio 2005. Aunque el proceso es muy similar.


Hasta aquí lo que ocurre en Team Foundation, en otro post os hablaré de cómo implementar la recogida de credenciales de manera segura en nuestras propias aplicaciones.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *