Inicio de sesión único (Compilar aplicaciones en la nube del mundo real con Azure)

por Rick Anderson, Tom Dykstra

Descargar proyecto Fix It o Descargar libro electrónico

El libro electrónico Compilar aplicaciones en la nube del mundo real con Azure se basa en una presentación desarrollada por Scott Guthrie. Explica 13 patrones y prácticas que pueden ayudarle a tener éxito en el desarrollo de aplicaciones web para la nube. Para obtener información sobre el libro electrónico, consulte el primer capítulo.

Hay muchos problemas de seguridad que se deben tener en cuenta al desarrollar una aplicación en la nube, pero para esta serie nos centraremos en solo uno: inicio de sesión único. Una pregunta que la gente se hace a menudo es la siguiente: "Estoy compilando principalmente aplicaciones para los empleados de mi empresa; ¿cómo puedo hospedar estas aplicaciones en la nube y seguir habilitándolas para usar el mismo modelo de seguridad que mis empleados conocen y usan en el entorno local cuando ejecutan aplicaciones que están hospedadas dentro del firewall?". Una de las formas en que se habilita este escenario se denomina Azure Active Directory (Azure AD). Azure AD le permite hacer que las aplicaciones de línea de negocio (LOB) de la empresa estén disponibles a través de Internet, y le permite hacer que estas aplicaciones también estén disponibles para los partners empresariales.

Introducción a Azure AD

Azure AD proporciona Active Directory en la nube. Entre las características clave se incluyen las siguientes:

  • Se integra con Active Directory local.
  • Habilita el inicio de sesión único con las aplicaciones.
  • Admite estándares abiertos, como SAML, WS-Fed y OAuth 2.0.
  • Admite la API de REST de Graph para empresas.

Supongamos que tiene un entorno de Windows Server Active Directory local que usa para permitir que los empleados inicien sesión en aplicaciones de intranet:

This illustration shows an oval shaped structure with multiple devices and two triangle towers, crossing a line and arrows between each device and its source, to show how each connect.

Lo que Azure AD le permite hacer es crear un directorio en la nube. Es una característica gratuita y fácil de configurar.

Puede ser totalmente independiente de su Active Directory local; puede incluir en ella a quien quiera y autenticarlos en las aplicaciones de Internet.

Windows Azure Active Directory

O puede integrarla con su AD local.

AD and WAAD integration

Ahora todos los empleados que pueden autenticarse localmente también pueden hacerlo a través de Internet, sin que usted deba abrir un firewall ni implementar ningún servidor nuevo en su centro de datos. Puede seguir aprovechando todo el entorno existente de Active Directory que conoce y usa actualmente para dotar a sus aplicaciones internas de la capacidad de inicio de sesión único.

Una vez que haya realizado esta conexión entre AD y Azure AD, también podrá habilitar sus aplicaciones web y sus dispositivos móviles para autenticar a sus empleados en la nube, y podrá habilitar aplicaciones de terceros, como Office 365, SalesForce.com o aplicaciones de Google, para que acepten las credenciales de sus empleados. Si está usando Office 365, ya tiene configurado Azure AD porque Office 365 usa Azure AD para la autenticación y la autorización.

3rd party apps

Lo bueno de este enfoque es que cada vez que su organización agrega o elimina un usuario, o un usuario cambia una contraseña, usted usa el mismo proceso que usa actualmente en su entorno local. Todos los cambios de AD local se propagan automáticamente al entorno en la nube.

Si su empresa está usando o se está pasando a Office 365, la buena noticia es que tendrá Azure AD configurado automáticamente porque Office 365 usa Azure AD para la autenticación. Por lo tanto, puede usar fácilmente en sus propias aplicaciones la misma autenticación que usa Office 365.

Configuración de un inquilino de Azure AD

Un directorio de Azure AD se llama inquilino de Azure AD, y la configuración de un inquilino es bastante sencilla. Le mostraremos cómo se realiza en el Portal de administración de Azure para ilustrar los conceptos, pero, por supuesto, como las otras funciones del portal, también puede hacerlo mediante un script o una API de administración.

En el portal de administración, haga clic en la pestaña Active Directory.

WAAD in portal

Tendrá automáticamente un inquilino de Azure AD para su cuenta de Azure y podrá hacer clic en el botón Añadir situado en la parte inferior de la página para crear directorios adicionales. Es posible que quiera uno para un entorno de pruebas y otro para producción, por ejemplo. Piense detenidamente en el nombre de un nuevo directorio. Si usa su nombre para el directorio y después vuelve a usarlo para uno de los usuarios, puede resultar confuso.

Add directory

El portal tiene compatibilidad completa con la creación, eliminación y administración de usuarios dentro de este entorno. Por ejemplo, para agregar un usuario, vaya a la pestaña Usuarios y haga clic en el botón Agregar usuario.

Add User button

Add user dialog

Puede crear un nuevo usuario que exista solo en este directorio, puede registrar una cuenta de Microsoft como usuario en este directorio, o registrar un usuario de otro directorio de Azure AD como usuario en este directorio. (En un directorio real, el dominio predeterminado sería ContosoTest.onmicrosoft.com. También puede usar un dominio de su elección, como contoso.com).

User types

Add a user dialog

Puede asignar el usuario a un rol.

User profile

Y la cuenta se crea con una contraseña temporal.

Temporary password

Los usuarios que cree de esta manera pueden iniciar sesión inmediatamente en las aplicaciones web mediante este directorio en la nube.

Sin embargo, lo mejor para el inicio de sesión único empresarial es la pestaña Integración de directorios:

Directory Integration tab

Si habilita la integración de directorios, puede sincronizar este directorio en la nube con su Active Directory local existente que ya usa dentro de su organización. Así, todos los usuarios almacenados en su directorio aparecerán en este directorio en la nube. Las aplicaciones en la nube ahora pueden autenticar a todos los empleados con sus credenciales de Active Directory existentes. Y todo esto es gratuito: tanto la herramienta de sincronización como Azure AD.

La herramienta es un asistente que es fácil de usar, como puede ver en estas capturas de pantalla. Estas no son instrucciones completas, solo un ejemplo que muestra el proceso básico. Para obtener información más detallada sobre cómo hacerlo, consulte los vínculos de la sección Recursos al final del capítulo.

WAAD Sync tool configuration wizard -Image 1

Haga clic en Siguiente y escriba las credenciales de Azure Active Directory.

WAAD Sync tool configuration wizard - Image 2

Haga clic en Siguiente y escriba las credenciales de AD local.

WAAD Sync tool configuration wizard - Image 3

Haga clic en Siguiente e indique si quiere almacenar un hash de sus contraseñas de AD en la nube.

WAAD Sync tool configuration wizard - Image 4

El hash de contraseña que puede almacenar en la nube es un hash unidireccional; las contraseñas reales nunca se almacenan en Azure AD. Si decide no almacenar hashes en la nube, deberá usar los Servicios de federación de Active Directory (AD FS). También hay otros factores a tener en cuenta a la hora de decidir si usar o no ADFS. La opción ADFS requiere algunos pasos de configuración adicionales.

Si decide almacenar hashes en la nube, ya ha terminado y la herramienta comienza a sincronizar directorios al hacer clic en Siguiente.

WAAD Sync tool configuration wizard - Image 5

Y en unos minutos ya ha terminado.

WAAD Sync tool configuration wizard - Image 6

Solo tiene que ejecutarlo en un controlador de dominio de la organización, en Windows 2003 o superior. Y no es necesario reiniciar. Cuando haya terminado, todos sus usuarios estarán en la nube y podrá realizar el inicio de sesión único desde cualquier aplicación web o móvil, usando SAML, OAuth o WS-Fed.

A veces nos preguntan por el grado de seguridad: ¿lo usa Microsoft para sus propios datos empresariales confidenciales? Y la respuesta es sí, lo hacemos. Por ejemplo, si va al sitio interno de Microsoft SharePoint en https://microsoft.sharepoint.com/, se le solicitará que inicie sesión.

Office 365 sign-in

Microsoft ha habilitado ADFS, por lo que al escribir un identificador de Microsoft, se le redirigirá a una página de inicio de sesión de ADFS.

ADFS sign-in

Y una vez que escriba las credenciales almacenadas en una cuenta interna de Microsoft AD, tendrá acceso a esta aplicación interna.

MS SharePoint site

Usamos un servidor de inicio de sesión de AD principalmente porque ya teníamos ADFS configurado antes de que Azure AD estuviera disponible, pero el proceso de inicio de sesión pasa por un directorio de Azure AD en la nube. Colocamos nuestros documentos importantes, control de código fuente, archivos de administración de rendimiento, informes de ventas, etc., en la nube y usamos esta misma solución exacta para protegerlos.

Creación de una aplicación de ASP.NET que use Azure AD para el inicio de sesión único

Visual Studio facilita la creación de una aplicación que usa Azure AD para el inicio de sesión único, como puede ver en algunas capturas de pantalla.

Al crear una nueva aplicación de ASP.NET, ya sea MVC o Web Forms, el método de autenticación predeterminado es ASP.NET Identity. Para cambiarlo a Azure AD, haga clic en el botón Cambiar autenticación.

Change Authentication

Seleccione Cuentas de organización, escriba su nombre de dominio y después seleccione Inicio de sesión único.

Configure Authentication dialog

También puede conceder permiso de lectura o escritura a la aplicación para los datos de directorio. Si lo hace, puede usar la API de REST de Azure Graph para buscar el número de teléfono de los usuarios, averiguar si están en la oficina, cuándo iniciaron sesión por última vez, etc.

Eso es todo lo que debe hacer: Visual Studio le pide las credenciales de un administrador para su inquilino de Azure AD y después configura tanto su proyecto como su inquilino de Azure AD para la nueva aplicación.

Al ejecutar el proyecto, verá una página de inicio de sesión y puede iniciar sesión con credenciales de un usuario en el directorio de Azure AD.

Org account sign-in

Logged in

Cuando implemente la aplicación en Azure, todo lo que debe hacer es seleccionar una casilla Habilitar autenticación de organización y, una vez más, Visual Studio se encargará de toda la configuración por usted.

Publish Web

Estas capturas de pantalla provienen de un tutorial completo paso a paso que muestra cómo desarrollar una aplicación que use la autenticación de Azure AD: Desarrollo de aplicaciones ASP.NET con Azure Active Directory.

Resumen

En este capítulo ha visto que Azure Active Directory, Visual Studio y ASP.NET facilitan la configuración del inicio de sesión único en aplicaciones de Internet para los usuarios de la organización. Los usuarios pueden iniciar sesión en aplicaciones de Internet con las mismas credenciales que usan para iniciar sesión con Active Directory en la red interna.

El siguiente capítulo examina las opciones de almacenamiento de datos disponibles para una aplicación en la nube.

Recursos

Para obtener más información, consulte los siguientes recursos: