Extensión de Servicios de federación de Active Directory (AD FS) a AzureExtend Active Directory Federation Services (AD FS) to Azure

Esta arquitectura de referencia implementa una red segura híbrida que extiende la red local a Azure y usa los Servicios de federación de Active Directory (AD FS) para realizar la autenticación y la autorización federada para los componentes que se ejecutan en Azure.This reference architecture implements a secure hybrid network that extends your on-premises network to Azure and uses Active Directory Federation Services (AD FS) to perform federated authentication and authorization for components running in Azure. Implemente esta solución.Deploy this solution.

Arquitectura de red híbrida segura con Active Directory

Descargue un archivo Visio de esta arquitectura.Download a Visio file of this architecture.

AD FS puede hospedarse de forma local, pero, si la aplicación es un híbrido en el que algunas partes se implementan en Azure, puede ser más eficaz replicar AD FS en la nube.AD FS can be hosted on-premises, but if your application is a hybrid in which some parts are implemented in Azure, it may be more efficient to replicate AD FS in the cloud.

El diagrama muestra los siguientes escenarios:The diagram shows the following scenarios:

  • El código de la aplicación de una organización asociada tiene acceso a una aplicación web que se hospeda dentro de la red virtual de Azure.Application code from a partner organization accesses a web application hosted inside your Azure VNet.
  • Un usuario externo y registrado con las credenciales almacenadas en Active Directory Domain Services (DS) tiene acceso a una aplicación web que se hospeda dentro de la red virtual de Azure.An external, registered user with credentials stored inside Active Directory Domain Services (DS) accesses a web application hosted inside your Azure VNet.
  • Un usuario conectado a la red virtual con un dispositivo autorizado ejecuta una aplicación web que se hospeda dentro de la red virtual de Azure.A user connected to your VNet using an authorized device executes a web application hosted inside your Azure VNet.

Los usos habituales de esta arquitectura incluyen:Typical uses for this architecture include:

  • Aplicaciones híbridas donde una parte de las cargas de trabajo se ejecutan de forma local y otra parte en Azure.Hybrid applications where workloads run partly on-premises and partly in Azure.
  • Soluciones que usan autorización federada para exponer las aplicaciones web a las organizaciones asociadas.Solutions that use federated authorization to expose web applications to partner organizations.
  • Sistemas que permiten el acceso desde exploradores web que se ejecutan fuera del firewall de la organización.Systems that support access from web browsers running outside of the organizational firewall.
  • Sistemas que permiten a los usuarios el acceso a las aplicaciones web mediante la conexión de dispositivos externos autorizados como equipos remotos, portátiles y otros dispositivos móviles.Systems that enable users to access to web applications by connecting from authorized external devices such as remote computers, notebooks, and other mobile devices.

Esta arquitectura de referencia se centra en la federación pasiva, en la que los servidores de federación deciden cómo y cuándo autenticar a un usuario.This reference architecture focuses on passive federation, in which the federation servers decide how and when to authenticate a user. El usuario proporciona información de inicio de sesión cuando se inicia la aplicación.The user provides sign in information when the application is started. Este mecanismo se usa normalmente en los exploradores web e implica un protocolo que redirige el explorador a un sitio donde el usuario se autentica.This mechanism is most commonly used by web browsers and involves a protocol that redirects the browser to a site where the user authenticates. AD FS también admite la federación activa, en la que una aplicación asume la responsabilidad de proporcionar las credenciales sin la intervención del usuario, pero ese escenario está fuera del ámbito de esta arquitectura.AD FS also supports active federation, where an application takes on responsibility for supplying credentials without further user interaction, but that scenario is outside the scope of this architecture.

Para consideraciones adicionales, consulte Selección de una solución para la integración de Active Directory local con Azure.For additional considerations, see Choose a solution for integrating on-premises Active Directory with Azure.

ArquitecturaArchitecture

Esta arquitectura amplía la implementación que se describe en Extensión de AD DS a Azure.This architecture extends the implementation described in Extending AD DS to Azure. Contiene los siguientes componentes.It contains the following components.

  • Subred de AD DS.AD DS subnet. Los servidores de AD DS se encuentran en su propia subred con reglas de grupo de seguridad de red (NSG) que actúan como un firewall.The AD DS servers are contained in their own subnet with network security group (NSG) rules acting as a firewall.

  • Servidores de AD FS.AD DS servers. Controladores de dominio que se ejecutan como máquinas virtuales en Azure.Domain controllers running as VMs in Azure. Estos servidores proporcionan autenticación de las identidades locales dentro del dominio.These servers provide authentication of local identities within the domain.

  • Subred de AD FS.AD FS subnet. Los servidores de AD FS se encuentran dentro de su propia subred con reglas NSG que actúan como un firewall.The AD FS servers are located within their own subnet with NSG rules acting as a firewall.

  • Servidores de AD FS.AD FS servers. Los servidores de AD FS proporcionan autenticación y autorización federadas.The AD FS servers provide federated authorization and authentication. En esta arquitectura, se realizan las siguientes tareas:In this architecture, they perform the following tasks:

    • Recibir tokens de seguridad que contienen notificaciones realizadas por un servidor de federación asociado en nombre del usuario asociado.Receiving security tokens containing claims made by a partner federation server on behalf of a partner user. AD FS comprueba que los tokens son válidos antes de pasar las notificaciones a la aplicación web que se ejecuta en Azure para autorizar las solicitudes.AD FS verifies that the tokens are valid before passing the claims to the web application running in Azure to authorize requests.

      La aplicación que se ejecuta en Azure es el usuario de confianza.The application running in Azure is the relying party. El servidor de federación asociado debe emitir notificaciones que la aplicación web entienda.The partner federation server must issue claims that are understood by the web application. Los servidores de federación asociados se conocen como asociados de cuenta, ya que envían las solicitudes de acceso en nombre de las cuentas autenticadas en la organización del asociado.The partner federation servers are referred to as account partners, because they submit access requests on behalf of authenticated accounts in the partner organization. Los servidores de AD FS se denominan asociados de recursos ya que proporcionan acceso a los recursos (la aplicación web).The AD FS servers are called resource partners because they provide access to resources (the web application).

    • Autenticar y autorizar las solicitudes entrantes de los usuarios externos que ejecutan un explorador web o un dispositivo que necesita tener acceso a las aplicaciones web, mediante AD DS y el Servicio de registro de dispositivos de Active Directory.Authenticating and authorizing incoming requests from external users running a web browser or device that needs access to web applications, by using AD DS and the Active Directory Device Registration Service.

    Los servidores de AD FS se configuran como una granja de servidores a los que se accede a través de un equilibrador de carga de Azure.The AD FS servers are configured as a farm accessed through an Azure load balancer. Esta implementación mejora la disponibilidad y la escalabilidad.This implementation improves availability and scalability. Los servidores de AD FS no se exponen directamente a Internet.The AD FS servers are not exposed directly to the Internet. Todo el tráfico de Internet se filtra a través de servidores proxy de aplicación web de AD FS y una red perimetral (también conocida como DMZ).All Internet traffic is filtered through AD FS web application proxy servers and a DMZ (also referred to as a perimeter network).

    Para obtener más información acerca del funcionamiento de AD FS, consulte Introducción a los Servicios de federación de Active Directory.For more information about how AD FS works, see Active Directory Federation Services Overview. Además, el artículo Implementación de AD FS en Azure contiene una introducción detallada paso a paso para la implementación.Also, the article AD FS deployment in Azure contains a detailed step-by-step introduction to implementation.

  • Subred de proxy de AD FS.AD FS proxy subnet. Los servidores proxy de AD FS pueden estar dentro de su propia subred, con reglas NSG que proporcionan la protección.The AD FS proxy servers can be contained within their own subnet, with NSG rules providing protection. Los servidores de esta subred se exponen a Internet a través de un conjunto de aplicaciones virtuales de red que proporcionan un firewall entre la red virtual de Azure e Internet.The servers in this subnet are exposed to the Internet through a set of network virtual appliances that provide a firewall between your Azure virtual network and the Internet.

  • Servidores proxy de aplicación web (WAP) de AD FS.AD FS web application proxy (WAP) servers. Estas máquinas virtuales actúan como servidores de AD FS para las solicitudes entrantes de las organizaciones asociadas y los dispositivos externos.These VMs act as AD FS servers for incoming requests from partner organizations and external devices. Los servidores WAP actúan como un filtro, blindando a los servidores de AD FS frente al acceso directo desde Internet.The WAP servers act as a filter, shielding the AD FS servers from direct access from the Internet. Al igual que con los servidores de AD FS, implementar los servidores WAP en una granja de servidores con equilibrio de carga ofrece mayor disponibilidad y escalabilidad que la implementación de una colección de servidores independientes.As with the AD FS servers, deploying the WAP servers in a farm with load balancing gives you greater availability and scalability than deploying a collection of stand-alone servers.

    Nota

    Para información detallada acerca de cómo instalar los servidores WAP, consulte Instalar y configurar el servidor de Proxy de aplicación webFor detailed information about installing WAP servers, see Install and Configure the Web Application Proxy Server

  • Organización del asociado.Partner organization. La organización de un asociado ejecuta una aplicación web que solicita acceso a una aplicación web que se ejecuta en Azure.A partner organization running a web application that requests access to a web application running in Azure. El servidor de federación de la organización del asociado autentica localmente las solicitudes y envía tokens de seguridad que contienen notificaciones a AD FS que se ejecuta en Azure.The federation server at the partner organization authenticates requests locally, and submits security tokens containing claims to AD FS running in Azure. AD FS en Azure valida los tokens de seguridad y, si son válidos, puede pasar las notificaciones a la aplicación web que se ejecuta en Azure para que las autorice.AD FS in Azure validates the security tokens, and if valid can pass the claims to the web application running in Azure to authorize them.

    Nota

    También puede configurar un túnel VPN con la puerta de enlace de Azure para proporcionar acceso directo a AD FS para los asociados de confianza.You can also configure a VPN tunnel using Azure gateway to provide direct access to AD FS for trusted partners. Las solicitudes recibidas desde estos asociados no pasan a través de los servidores WAP.Requests received from these partners do not pass through the WAP servers.

RecomendacionesRecommendations

Las siguientes recomendaciones sirven para la mayoría de los escenarios.The following recommendations apply for most scenarios. Sígalas a menos que tenga un requisito concreto que las invalide.Follow these recommendations unless you have a specific requirement that overrides them.

Recomendaciones de redesNetworking recommendations

Configure la interfaz de red para cada una de las máquinas virtuales que hospedan servidores de AD FS y WAP con direcciones IP privadas estáticas.Configure the network interface for each of the VMs hosting AD FS and WAP servers with static private IP addresses.

No conceda a las máquinas virtuales de AD FS direcciones IP públicas.Do not give the AD FS VMs public IP addresses. Para más información, consulte la sección Consideraciones de seguridad.For more information, see the Security considerations section.

Establezca la dirección IP de los servidores del servicio de nombres de dominio preferido y secundario (DNS) para las interfaces de red de cada máquina virtual AD FS y WAP para hacer referencia a las máquinas virtuales de Active Directory DS.Set the IP address of the preferred and secondary domain name service (DNS) servers for the network interfaces for each AD FS and WAP VM to reference the Active Directory DS VMs. Las máquinas virtuales de Active Directory DS deben ejecutar DNS.The Active Directory DS VMs should be running DNS. Este paso es necesario para permitir que cada máquina virtual se una al dominio.This step is necessary to enable each VM to join the domain.

Instalación de AD FSAD FS installation

El artículo [Implementación de una granja de servidores de federación] Deploying_a_federation_server_farm proporciona instrucciones detalladas para instalar y configurar AD FS.The article Deploying a Federation Server Farm provides detailed instructions for installing and configuring AD FS. Antes de configurar el primer servidor de AD FS en la granja de servidores, haga lo siguiente:Perform the following tasks before configuring the first AD FS server in the farm:

  1. Obtenga un certificado público de confianza para realizar la autenticación de los servidores.Obtain a publicly trusted certificate for performing server authentication. El nombre de sujeto debe contener el nombre que los clientes usan para tener acceso al servicio de federación.The subject name must contain the name clients use to access the federation service. Puede tratarse del nombre DNS registrado para el equilibrador de carga, por ejemplo adfs.contoso.com (por motivos de seguridad, evite utilizar nombres con caracteres comodín como * .contoso.com).This can be the DNS name registered for the load balancer, for example, adfs.contoso.com (avoid using wildcard names such as *.contoso.com, for security reasons). Use el mismo certificado en todas las máquinas virtuales de servidores de AD FS.Use the same certificate on all AD FS server VMs. Puede adquirir un certificado de una entidad de certificación de confianza, pero, si su organización usa Servicios de certificados de Active Directory, puede crear los suyos propios.You can purchase a certificate from a trusted certification authority, but if your organization uses Active Directory Certificate Services you can create your own.

    El nombre alternativo del firmante se utiliza en el servicio de registro de dispositivos (DRS) para habilitar el acceso desde dispositivos externos.The subject alternative name is used by the device registration service (DRS) to enable access from external devices. Debe tener el formato enterpriseregistration.contoso.com.This should be of the form enterpriseregistration.contoso.com.

    Para más información, consulte Obtain and Configure a Secure Sockets Layer (SSL) Certificate for AD FS [Obtención y configuración de un certificado Capa de sockets seguros (SSL) para AD FS].For more information, see Obtain and Configure a Secure Sockets Layer (SSL) Certificate for AD FS.

  2. En el controlador de dominio, genere una nueva clave raíz para el Servicio de distribución de claves.On the domain controller, generate a new root key for the Key Distribution Service. Establezca el tiempo efectivo en la hora actual menos 10 horas (esta configuración reduce el retardo que se puede producir en la distribución y la sincronización de las claves a través del dominio).Set the effective time to the current time minus 10 hours (this configuration reduces the delay that can occur in distributing and synchronizing keys across the domain). Este paso es necesario para permitir la creación de la cuenta del servicio de grupo que se usa para ejecutar el servicio AD FS.This step is necessary to support creating the group service account that is used to run the AD FS service. El siguiente comando de PowerShell muestra un ejemplo de cómo hacerlo:The following PowerShell command shows an example of how to do this:

    Add-KdsRootKey -EffectiveTime (Get-Date).AddHours(-10)
    
  3. Agregue cada máquina virtual del servidor de AD FS al dominio.Add each AD FS server VM to the domain.

Nota

Para instalar AD FS, el controlador de dominio que ejecuta el rol de Operaciones de maestro único flexible (FSMO) del emulador del controlador de dominio principal (PDC) para el dominio debe estar ejecutándose y ser accesible desde las máquinas virtuales de AD FS.To install AD FS, the domain controller running the primary domain controller (PDC) emulator flexible single master operation (FSMO) role for the domain must be running and accessible from the AD FS VMs. <<RBC: ¿hay alguna manera de hacer esto menos repetitivo?>><<RBC: Is there a way to make this less repetitive?>>

Confianza de AD FSAD FS trust

Establezca la confianza de federación entre la instalación de AD FS y los servidores de federación de las organizaciones asociadas.Establish federation trust between your AD FS installation, and the federation servers of any partner organizations. Configure las notificaciones de filtrado y asignación necesarias.Configure any claims filtering and mapping required.

  • El personal de DevOps de cada organización asociada debe agregar una relación de confianza para las aplicaciones web accesibles a través de los servidores de AD FS.DevOps staff at each partner organization must add a relying party trust for the web applications accessible through your AD FS servers.
  • El personal de DevOps de la organización debe configurar la confianza del proveedor de notificaciones a fin de habilitar los servidores de AD FS para confiar en las notificaciones que las organizaciones asociadas proporcionan.DevOps staff in your organization must configure claims-provider trust to enable your AD FS servers to trust the claims that partner organizations provide.
  • También debe configurar AD FS para pasar las notificaciones a las aplicaciones web de la organización.DevOps staff in your organization must also configure AD FS to pass claims on to your organization's web applications.

Para más información, consulte Establishing Federation Trust (Establecimiento de la confianza de la federación).For more information, see Establishing Federation Trust.

Publique las aplicaciones web de su organización y haga que estén disponibles para los asociados externos con la autenticación previa a través de servidores WAP.Publish your organization's web applications and make them available to external partners by using preauthentication through the WAP servers. Para más información, consulte Publish Applications using AD FS Preauthentication (Publicación de aplicaciones mediante la autenticación previa de Azure AD)For more information, see Publish Applications using AD FS Preauthentication

AD FS admite el aumento y la transformación de tokens.AD FS supports token transformation and augmentation. Azure Active Directory no proporciona esta característica.Azure Active Directory does not provide this feature. Con AD FS, al configurar las relaciones de confianza, puede:With AD FS, when you set up the trust relationships, you can:

  • Configurar transformaciones de notificación para las reglas de autorización.Configure claim transformations for authorization rules. Por ejemplo, puede asignar la seguridad de grupo desde una representación utilizada por una organización del asociado de que no sean de Microsoft a algo que Active Directory DS pueda autorizar en su organización.For example, you can map group security from a representation used by a non-Microsoft partner organization to something that Active Directory DS can authorize in your organization.
  • Transformar las notificaciones de un formato a otro.Transform claims from one format to another. Por ejemplo, puede pasar de SAML 2.0 a SAML 1.1, si la aplicación solo admite las notificaciones de SAML 1.1.For example, you can map from SAML 2.0 to SAML 1.1 if your application only supports SAML 1.1 claims.

Supervisión de AD FSAD FS monitoring

El Módulo de administración de Microsoft System Center para Active Directory Federation Services 2012 R2 proporciona la supervisión tanto reactiva como proactiva de la implementación de AD FS para el servidor de federación.The Microsoft System Center Management Pack for Active Directory Federation Services 2012 R2 provides both proactive and reactive monitoring of your AD FS deployment for the federation server. Este módulo de administración supervisa:This management pack monitors:

  • Los eventos que el servicio AD FS incluye en sus registros de eventos.Events that the AD FS service records in its event logs.
  • Los datos de rendimiento que los contadores de rendimiento de AD FS recopilan.The performance data that the AD FS performance counters collect.
  • El estado general del sistema AD FS y las aplicaciones web (usuarios de confianza), además de proporcionar alertas para los problemas críticos y las advertencias.The overall health of the AD FS system and web applications (relying parties), and provides alerts for critical issues and warnings.

Consideraciones sobre escalabilidadScalability considerations

Las consideraciones siguientes, que se resumen a partir del artículo Planear la implementación de AD FS, proporcionan un punto de partida para ajustar el tamaño de las granjas de servidores de AD FS:The following considerations, summarized from the article Plan your AD FS deployment, give a starting point for sizing AD FS farms:

  • Si tiene menos de 1 000 usuarios, no cree servidores dedicados, sino que, en su lugar, instale AD FS en cada uno de los servidores de Active Directory DS de la nube.If you have fewer than 1000 users, do not create dedicated servers, but instead install AD FS on each of the Active Directory DS servers in the cloud. Asegúrese de que tiene al menos dos servidores de Active Directory DS para mantener la disponibilidad.Make sure that you have at least two Active Directory DS servers to maintain availability. Cree un único servidor WAP.Create a single WAP server.
  • Si tiene entre 1 000 y 15 000 usuarios, cree dos servidores de AD FS dedicados y dos servidores WAP dedicados.If you have between 1000 and 15000 users, create two dedicated AD FS servers and two dedicated WAP servers.
  • Si tiene entre 15 000 y 60 000 usuarios, cree entre tres y cinco servidores AD FS dedicados y al menos dos servidores WAP dedicados.If you have between 15000 and 60000 users, create between three and five dedicated AD FS servers and at least two dedicated WAP servers.

En estas consideraciones se supone que se utilizan los tamaños de máquinas virtuales duales de cuatro núcleos (D4_v2 estándar o posterior) en Azure.These considerations assume that you are using dual quad-core VM (Standard D4_v2, or better) sizes in Azure.

Si usa Windows Internal Database para almacenar los datos de configuración de AD FS, estará limitado a ocho servidores de AD FS en la granja de servidores.If you are using the Windows Internal Database to store AD FS configuration data, you are limited to eight AD FS servers in the farm. Si prevé que necesitará más en el futuro, utilice SQL Server.If you anticipate that you will need more in the future, use SQL Server. Para más información, consulte La función de la base de datos de configuración de AD FS.For more information, see The Role of the AD FS Configuration Database.

Consideraciones sobre disponibilidadAvailability considerations

Cree una granja de servidores de AD FS con al menos dos servidores para aumentar la disponibilidad del servicio.Create an AD FS farm with at least two servers to increase availability of the service. Use cuentas de almacenamiento diferentes para cada máquina virtual de AD FS en la granja de servidores.Use different storage accounts for each AD FS VM in the farm. Este enfoque ayuda a garantizar que un error en una única cuenta de almacenamiento no haga que toda la granja quede inaccesible.This approach helps to ensure that a failure in a single storage account does not make the entire farm inaccessible.

Cree conjuntos de disponibilidad de Azure diferentes para las máquinas virtuales de AD FS y WAP.Create separate Azure availability sets for the AD FS and WAP VMs. Asegúrese de que hay al menos dos máquinas virtuales en cada conjunto.Ensure that there are at least two VMs in each set. Cada conjunto de disponibilidad debe tener dos dominios de actualización y dos dominios de error, como mínimo.Each availability set must have at least two update domains and two fault domains.

Configure los equilibradores de carga para las máquinas virtuales de AD FS y WAP de la manera siguiente:Configure the load balancers for the AD FS VMs and WAP VMs as follows:

  • Use un equilibrador de carga de Azure para proporcionar acceso externo a las máquinas virtuales de WAP y uno interno para distribuir la carga entre los servidores de AD FS en la granja de servidores.Use an Azure load balancer to provide external access to the WAP VMs, and an internal load balancer to distribute the load across the AD FS servers in the farm.

  • Pase únicamente el tráfico que aparezca en el puerto 443 (HTTPS) a los servidores de AD FS y WAP.Only pass traffic appearing on port 443 (HTTPS) to the AD FS/WAP servers.

  • Asigne al equilibrador de carga una dirección IP estática.Give the load balancer a static IP address.

  • Crear un sondeo de mantenimiento mediante HTTP en /adfs/probe.Create a health probe using HTTP against /adfs/probe. Para más información, consulte Hardware Load Balancer Health Checks and Web Application Proxy / AD FS 2012 R2 (Comprobaciones de mantenimiento de equilibrador de carga de hardware y proxy de aplicación web / AD FS 2012 R2).For more information, see Hardware Load Balancer Health Checks and Web Application Proxy / AD FS 2012 R2.

    Nota

    Los servidores de AD FS usan el protocolo Indicación de nombre de servidor (SNI), por lo que el intento de sondear con un punto de conexión HTTPS desde el equilibrador de carga fracasa.AD FS servers use the Server Name Indication (SNI) protocol, so attempting to probe using an HTTPS endpoint from the load balancer fails.

  • Agregue un registro A DNS al dominio para el equilibrador de carga de AD FS.Add a DNS A record to the domain for the AD FS load balancer. Especifique la dirección IP del equilibrador de carga y asígnele un nombre en el dominio (por ejemplo, adfs.contoso.com).Specify the IP address of the load balancer, and give it a name in the domain (such as adfs.contoso.com). Se trata del nombre que los clientes y los servidores WAP usan para tener acceso a la granja de servidores de AD FS.This is the name clients and the WAP servers use to access the AD FS server farm.

Puede usar SQL Server o Windows Internal Database para contener la información de configuración de AD FS.You can use either SQL Server or the Windows Internal Database to hold AD FS configuration information. Windows Internal Database proporciona redundancia básica.The Windows Internal Database provides basic redundancy. Los cambios se escriben directamente en una de las bases de datos de AD FS en el clúster de AD FS, mientras que los demás servidores usan replicación de extracción para mantener sus bases de datos actualizadas.Changes are written directly to only one of the AD FS databases in the AD FS cluster, while the other servers use pull replication to keep their databases up to date. Con SQL Server, puede proporcionar una redundancia completa de las bases de datos y una elevada disponibilidad mediante clústeres de conmutación por error o la creación de reflejo.Using SQL Server can provide full database redundancy and high availability using failover clustering or mirroring.

Consideraciones sobre la manejabilidadManageability considerations

El personal de DevOps debe estar preparado para realizar las siguientes tareas:DevOps staff should be prepared to perform the following tasks:

  • Administración de los servidores de federación, incluida la administración de la granja de servidores de AD FS, de la directiva de confianza en los servidores de federación y de los certificados usados por los servicios de federación.Managing the federation servers, including managing the AD FS farm, managing trust policy on the federation servers, and managing the certificates used by the federation services.
  • Administración de los servidores WAP, incluida la administración de la granja de servidores WAP y certificados.Managing the WAP servers including managing the WAP farm and certificates.
  • Administración de las aplicaciones web, incluida la configuración de los usuarios de confianza, los métodos de autenticación y las asignaciones de notificaciones.Managing web applications including configuring relying parties, authentication methods, and claims mappings.
  • Copia de seguridad de los componentes de AD FS.Backing up AD FS components.

Consideraciones sobre la seguridadSecurity considerations

AD FS usa HTTPS, así que asegúrese de que las reglas de NSG para la subred que contiene las máquinas virtuales del nivel web permiten solicitudes de HTTPS.AD FS uses HTTPS, so make sure that the NSG rules for the subnet containing the web tier VMs permit HTTPS requests. Estas solicitudes pueden originarse en la red local, las subredes que contienen el nivel web, el nivel empresarial, el nivel de datos, la red perimetral privada, la red perimetral pública y la subred que contiene los servidores de AD FS.These requests can originate from the on-premises network, the subnets containing the web tier, business tier, data tier, private DMZ, public DMZ, and the subnet containing the AD FS servers.

Evite la exposición directa de los servidores de AD FS a Internet.Prevent direct exposure of the AD FS servers to the Internet. Los servidores de AD FS son equipos unidos a un dominio que tienen autorización completa para conceder tokens de seguridad.AD FS servers are domain-joined computers that have full authorization to grant security tokens. Si un servidor se ve comprometido, un usuario malintencionado puede emitir tokens de acceso completo a todas las aplicaciones web y a todos los servidores de federación que estén protegidos por AD FS.If a server is compromised, a malicious user can issue full access tokens to all web applications and to all federation servers that are protected by AD FS. Si el sistema debe controlar las solicitudes de los usuarios externos que no se conectan desde sitios de confianza asociados, use los servidores WAP para controlar estas solicitudes.If your system must handle requests from external users not connecting from trusted partner sites, use WAP servers to handle these requests. Para más información, consulte Ubicación de un servidor proxy de federación.For more information, see Where to Place a Federation Server Proxy.

Coloque los servidores de AD FS y los servidores WAP en subredes independientes con sus propios firewalls.Place AD FS servers and WAP servers in separate subnets with their own firewalls. Puede usar las reglas NSG para definir las reglas de firewall.You can use NSG rules to define firewall rules. Todos los firewalls deben permitir el tráfico en el puerto 443 (HTTPS).All firewalls should allow traffic on port 443 (HTTPS).

Restrinja el acceso de inicio de sesión directo a los servidores de AD FS y WAP.Restrict direct sign in access to the AD FS and WAP servers. Solo el personal de DevOps debe ser capaz de conectarse.Only DevOps staff should be able to connect. No una los servidores WAP al dominio.Do not join the WAP servers to the domain.

Considere usar un conjunto de aplicaciones de red virtual que registre información detallada sobre el tráfico que atraviesa la frontera de la red virtual con fines de auditoría.Consider using a set of network virtual appliances that logs detailed information on traffic traversing the edge of your virtual network for auditing purposes.

Implementación de la soluciónDeploy the solution

Hay disponible una implementación de esta arquitectura en GitHub.A deployment for this architecture is available on GitHub. Tenga en cuenta que la implementación completa puede durar un máximo de dos horas, lo que incluye la creación de una instancia de VPN Gateway y la ejecución de los scripts que configuran Active Directory y AD FS.Note that the entire deployment can take up to two hours, which includes creating the VPN gateway and running the scripts that configure Active Directory and AD FS.

Requisitos previosPrerequisites

  1. Clone, bifurque o descargue el archivo zip del repositorio de GitHub.Clone, fork, or download the zip file for the GitHub repository.

  2. Instale la CLI de Azure 2.0.Install Azure CLI 2.0.

  3. Instale el paquete de npm de bloques de creación de Azure.Install the Azure building blocks npm package.

    npm install -g @mspnp/azure-building-blocks
    
  4. Desde un símbolo del sistema, un símbolo del sistema de Bash o un símbolo del sistema de PowerShell, inicie sesión en su cuenta de Azure como se indica a continuación:From a command prompt, bash prompt, or PowerShell prompt, sign into your Azure account as follows:

    az login
    

Implementación del centro de datos local simuladoDeploy the simulated on-premises datacenter

  1. Vaya a la carpeta adfs del repositorio de GitHub.Navigate to the adfs folder of the GitHub repository.

  2. Abra el archivo onprem.json .Open the onprem.json file. Busque instancias de adminPassword, Password y SafeModeAdminPassword, y actualice las contraseñas.Search for instances of adminPassword, Password, and SafeModeAdminPassword and update the passwords.

  3. Ejecute el siguiente comando y espere a que finalice la implementación:Run the following command and wait for the deployment to finish:

    azbb -s <subscription_id> -g <resource group> -l <location> -p onprem.json --deploy
    

Implementación de la infraestructura de AzureDeploy the Azure infrastructure

  1. Abra el archivo azure.json .Open the azure.json file. Busque instancias de adminPassword y Password y agregue valores para las contraseñas.Search for instances of adminPassword and Password and add values for the passwords.

  2. Ejecute el siguiente comando y espere a que finalice la implementación:Run the following command and wait for the deployment to finish:

    azbb -s <subscription_id> -g <resource group> -l <location> -p azure.json --deploy
    

Configuración de la granja de AD FSSet up the AD FS farm

  1. Abra el archivo adfs-farm-first.json .Open the adfs-farm-first.json file. Busque AdminPassword y reemplace la contraseña predeterminada.Search for AdminPassword and replace the default password.

  2. Ejecute el siguiente comando:Run the following command:

    azbb -s <subscription_id> -g <resource group> -l <location> -p adfs-farm-first.json --deploy
    
  3. Abra el archivo adfs-farm-rest.json .Open the adfs-farm-rest.json file. Busque AdminPassword y reemplace la contraseña predeterminada.Search for AdminPassword and replace the default password.

  4. Ejecute el siguiente comando y espere a que finalice la implementación:Run the following command and wait for the deployment to finish:

    azbb -s <subscription_id> -g <resource group> -l <location> -p adfs-farm-rest.json --deploy
    

Configuración de AD FS (parte 1)Configure AD FS (part 1)

  1. Abra una sesión de escritorio remoto en la máquina virtual denominada ra-adfs-jb-vm1, que es la máquina virtual del jumpbox.Open a remote desktop session to the VM named ra-adfs-jb-vm1, which is the jumpbox VM. El nombre de usuario es testuser.The user name is testuser.

  2. En el jumpbox, abra una sesión de escritorio remoto en la máquina virtual denominada ra-adfs-proxy-vm1.From the jumpbox, open a remote desktop session to the VM named ra-adfs-proxy-vm1. La dirección IP privada es 10.0.6.4.The private IP address is 10.0.6.4.

  3. En esta sesión de escritorio remoto, ejecute el PowerShell ISE.From this remote desktop session, run the PowerShell ISE.

  4. En PowerShell, vaya al siguiente directorio:In PowerShell, navigate to the following directory:

    C:\Packages\Plugins\Microsoft.Powershell.DSC\2.77.0.0\DSCWork\adfs-v2.0
    
  5. Pegue el código siguiente en un panel de scripts y ejecútelo:Paste the following code into a script pane and run it:

    . .\adfs-webproxy.ps1
    $cd = @{
        AllNodes = @(
            @{
                NodeName = 'localhost'
                PSDscAllowPlainTextPassword = $true
                PSDscAllowDomainUser = $true
            }
        )
    }
    
    $c1 = Get-Credential -UserName testuser -Message "Enter password"
    InstallWebProxyApp -DomainName contoso.com -FederationName adfs.contoso.com -WebApplicationProxyName "Contoso App" -AdminCreds $c1 -ConfigurationData $cd
    Start-DscConfiguration .\InstallWebProxyApp
    

    En el indicador Get-Credential, escriba la contraseña que especificó en el archivo de parámetros de la implementación.At the Get-Credential prompt, enter the password that you specified in the deployment parameter file.

  6. Ejecute el comando siguiente para supervisar el progreso de la configuración de DSC:Run the following command to monitor the progress of the DSC configuration:

    Get-DscConfigurationStatus
    

    La consistencia puede tardar varios minutos en lograrse.It can take several minutes to reach consistency. Durante este tiempo, es posible que vea errores del comando.During this time, you may see errors from the command. Si la configuración finaliza de forma satisfactoria, el resultado debe ser similar al siguiente:When the configuration succeeds, the output should look similar to the following:

    PS C:\Packages\Plugins\Microsoft.Powershell.DSC\2.77.0.0\DSCWork\adfs-v2.0> Get-DscConfigurationStatus
    
    Status     StartDate                 Type            Mode  RebootRequested      NumberOfResources
    ------     ---------                 ----            ----  ---------------      -----------------
    Success    12/17/2018 8:21:09 PM     Consistency     PUSH  True                 4
    

Configuración de AD FS (parte 2)Configure AD FS (part 2)

  1. En el jumpbox, abra una sesión de escritorio remoto en la máquina virtual denominada ra-adfs-proxy-vm2.From the jumpbox, open a remote desktop session to the VM named ra-adfs-proxy-vm2. La dirección IP privada es 10.0.6.5.The private IP address is 10.0.6.5.

  2. En esta sesión de escritorio remoto, ejecute el PowerShell ISE.From this remote desktop session, run the PowerShell ISE.

  3. Vaya al siguiente directorio:Navigate to the following directory:

    C:\Packages\Plugins\Microsoft.Powershell.DSC\2.77.0.0\DSCWork\adfs-v2.0
    
  4. Pegue lo siguiente en un panel de scripts y ejecute el script:Past the following in a script pane and run the script:

    . .\adfs-webproxy-rest.ps1
    $cd = @{
        AllNodes = @(
            @{
                NodeName = 'localhost'
                PSDscAllowPlainTextPassword = $true
                PSDscAllowDomainUser = $true
            }
        )
    }
    
    $c1 = Get-Credential -UserName testuser -Message "Enter password"
    InstallWebProxy -DomainName contoso.com -FederationName adfs.contoso.com -WebApplicationProxyName "Contoso App" -AdminCreds $c1 -ConfigurationData $cd
    Start-DscConfiguration .\InstallWebProxy
    

    En el indicador Get-Credential, escriba la contraseña que especificó en el archivo de parámetros de la implementación.At the Get-Credential prompt, enter the password that you specified in the deployment parameter file.

  5. Ejecute el comando siguiente para supervisar el progreso de la configuración de DSC:Run the following command to monitor the progress of the DSC configuration:

    Get-DscConfigurationStatus
    

    La consistencia puede tardar varios minutos en lograrse.It can take several minutes to reach consistency. Durante este tiempo, es posible que vea errores del comando.During this time, you may see errors from the command. Si la configuración finaliza de forma satisfactoria, el resultado debe ser similar al siguiente:When the configuration succeeds, the output should look similar to the following:

    PS C:\Packages\Plugins\Microsoft.Powershell.DSC\2.77.0.0\DSCWork\adfs-v2.0> Get-DscConfigurationStatus
    
    Status     StartDate                 Type            Mode  RebootRequested      NumberOfResources
    ------     ---------                 ----            ----  ---------------      -----------------
    Success    12/17/2018 8:21:09 PM     Consistency     PUSH  True                 4
    

    En ocasiones, se producen errores en esta DSC.Sometimes this DSC fails. Si la comprobación del estado muestra Status=Failure y Type=Consistency, pruebe a volver a ejecutar el paso 4.If the status check shows Status=Failure and Type=Consistency, try re-running step 4.

Inicio de sesión en AD FSSign into AD FS

  1. En el jumpbox, abra una sesión de escritorio remoto en la máquina virtual denominada ra-adfs-adfs-vm1.From the jumpbox, open a remote desktop session to the VM named ra-adfs-adfs-vm1. La dirección IP privada es 10.0.5.4.The private IP address is 10.0.5.4.

  2. Siga los pasos de habilitar la página Inicio de sesión Idp-Initiated para habilitar la página de inicio de sesión.Follow the steps in Enable the Idp-Initiated Sign on page to enable the sign-on page.

  3. En el jumpbox, vaya a https://adfs.contoso.com/adfs/ls/idpinitiatedsignon.htm.From the jump box, browse to https://adfs.contoso.com/adfs/ls/idpinitiatedsignon.htm. Puede recibir una advertencia que puede ignorar para esta prueba.You may receive a certificate warning that you can ignore for this test.

  4. Compruebe que aparece la página de inicio de sesión de Contoso Corporation.Verify that the Contoso Corporation sign-in page appears. Inicie sesión como contoso\testuser.Sign in as contoso\testuser.