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:
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.
O puede integrarla con su AD local.
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.
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.
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.
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.
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).
Puede asignar el usuario a un rol.
Y la cuenta se crea con una contraseña temporal.
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:
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.
Haga clic en Siguiente y escriba las credenciales de Azure Active Directory.
Haga clic en Siguiente y escriba las credenciales de AD local.
Haga clic en Siguiente e indique si quiere almacenar un hash de sus contraseñas de AD en la nube.
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.
Y en unos minutos ya ha terminado.
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.
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.
Y una vez que escriba las credenciales almacenadas en una cuenta interna de Microsoft AD, tendrá acceso a esta aplicación interna.
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.
Seleccione Cuentas de organización, escriba su nombre de dominio y después seleccione Inicio de sesión único.
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.
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.
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:
- Documentación de Azure Active Directory. Página del portal para la documentación de Azure AD en el sitio windowsazure.com. Para ver tutoriales paso a paso, consulte la sección Desarrollo.
- Autenticación multifactor de Azure. Página del portal para obtener documentación sobre la autenticación multifactor en Azure.
- Opciones de autentificación de la cuenta de la organización. Explicación de las opciones de autenticación de Azure AD en el cuadro de diálogo de nuevo proyecto de Visual Studio 2013.
- Patrones y prácticas de Microsoft: patrón de identidad federada.
- Autorización basada en roles y basada en ACL en una aplicación de Windows Azure AD. Aplicación de ejemplo.
- Blog sobre Graph API de Azure Active Directory.
- Control de acceso en BYOD e integración de directorios en una infraestructura de identidad híbrida. Vídeo de la sesión Tech Ed 2014 de Gayana Bagdasaryan.
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de