Securizar Web API con WAAD

Hace ya tiempo hablé de como securizar una aplicación Web API con ACS. En ese post se usaba un DelegationHandler para validar en todas las peticiones que el cliente que realiza la llamada envie un token de seguridad válido en las cabeceras de autenticación. Ese post es completamente válido y podría usarse esa misma aproximación con Windows Azure Active Directory.

Es válido, pero si usamos las plantillas y el código que genera Visual Studio 2013, veremos otra opción mucho más simple, que no es otra que usar OWIN para establecer la seguridad. Vamos a verlo.

Si seleccionamos crear un nuevo proyecto web, indicaremos que queremos crear una aplicación Web API, indicando a su vez que queremos usar nuestro tenant de WAAD para disponer de una aplicación Single-tenant. Los pasos son exactamente los mismos que veíamos en el post anterior dónde hablábamos de una aplicación MVC.

02-WAAD_WebAPI

 

Una vez creado, añadiremos la atribute [Authorize] en aquellos controladores que queremos securizar.

04-WAAD_WebAPI

Una vez hecho esto, podemos ejecutar la aplicación (F5) e intentar realizar una petición GET a “api/values”. En este momento veremos cómo NO podemos hacer la petición y recibiremos en un error de autenticación.

Tened cuidado no estéis ya autenticados! Que entonces sí funcionará. Si en el ejemplo de MVC le distéis a recordar contraseña es posible que estéis autenticados y por tanto, esta petición os devuelva resultados.

03-WAAD_WebAPI

En el caso de la aplicación MVC os comentaba que era en el fichero de configuración dónde se establecía la configuración para indicar que queríamos usar WAAD. En este caso, se usa OWIN…aquí vemos el código que hace posible que el servicio Web API esté securizado.

En el proyecto Web API veremos una clase Startup.cs la cuál se usa para configurar todos aquellos módulos basado en OWIN. El nombre de esta clase es una convención, si arrancamos el proyecto y ponemos un punto de parada veremos cómo se ejecuta de forma automática el código de este clase.

05-WAAD_WebAPI

Si vamos al método ConfigureOAuth, veremos cómo se establece la seguridad…fácil, no?

06-WAAD_WebAPI

07-WAAD_WebAPI

 

Una aplicación cliente (WPF, Windows Store, WP…) que quiera hacer uso de este servicio tendrá que disponer de un token de seguridad válido y enviarlo en las cabeceadas de autenticación, tal y como veremos en el siguiente post.

Más fácil imposible!

Ibon Landa

bon Landa lleva más de 15 años dedicado al desarrollo de software. Durante este tiempo ha trabajado en diferentes empresas en las cuáles ha podido trabajar en diferentes entornos y tecnologías. Actualmente está focalizado principalmente en tareas de desarrollo, arquitectura, en las herramientas del ciclo de vida y en todo lo relacionado con la plataforma de Cloud Computing Microsoft Azure, área en el que ha sido reconocido como MVP. Participa de forma activa en la comunidad, escribiendo su blog, manteniendo un portal sobre Microsoft Azure y colaborando con Microsoft y grupos de usuarios en eventos de formación, talleres y giras de producto.

Deja un comentario

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