Expandir os Serviços de Federação do Active Directory (AD FS) para o AzureExtend Active Directory Federation Services (AD FS) to Azure

Esta arquitetura de referência implementa uma rede híbrida segura que expande a sua rede no local para o Azure e utiliza os Serviços de Federação do Active Directory (AD FS) para proceder à autenticação federada e à autorização dos componentes em execução no 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. Implementar esta solução.Deploy this solution.

Proteger a arquitetura de rede híbrida com o Active Directory

Transferir um ficheiro do Visio desta arquitetura.Download a Visio file of this architecture.

O AD FS pode ser alojado no local. Mas, se a sua aplicação for híbrida com algumas partes implementadas no Azure, poderá ser mais eficiente replicar o AD FS na cloud.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.

O diagrama mostra os cenários seguintes:The diagram shows the following scenarios:

  • O código da aplicação de uma organização parceira acede a uma aplicação Web alojada na sua VNet do Azure.Application code from a partner organization accesses a web application hosted inside your Azure VNet.
  • Um utilizador externo registado com credenciais armazenadas no Active Directory Domain Services (AD DS) acede a uma aplicação Web alojada na sua VNet do Azure.An external, registered user with credentials stored inside Active Directory Domain Services (DS) accesses a web application hosted inside your Azure VNet.
  • Um utilizador ligado à VNet com um dispositivo autorizado executa uma aplicação Web alojada na sua VNet do Azure.A user connected to your VNet using an authorized device executes a web application hosted inside your Azure VNet.

Utilizações típicas desta arquitetura:Typical uses for this architecture include:

  • Aplicações híbridas onde as cargas de trabalho são executadas parcialmente no local e parcialmente no Azure.Hybrid applications where workloads run partly on-premises and partly in Azure.
  • Soluções que utilizam a autorização federada para expor as aplicações Web às organizações parceiras.Solutions that use federated authorization to expose web applications to partner organizations.
  • Sistemas que suportam o acesso em browsers em execução fora da firewall da organização.Systems that support access from web browsers running outside of the organizational firewall.
  • Sistemas que permitem aos utilizadores aceder a aplicações Web através da ligação de dispositivos externos autorizados, como computadores remotos, notebooks e outros dispositivos móveis.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 arquitetura de referência centra-se na federação passiva, na qual os servidores de federação decidem como e quando autenticar um utilizador.This reference architecture focuses on passive federation, in which the federation servers decide how and when to authenticate a user. O utilizador fornece as informações de início de sessão quando a aplicação é iniciada.The user provides sign in information when the application is started. Este mecanismo é utilizado frequentemente por browsers e envolve um protocolo que redireciona o browser para um site onde o utilizador é autenticado.This mechanism is most commonly used by web browsers and involves a protocol that redirects the browser to a site where the user authenticates. O AD FS também suporta a federação ativa, em que uma aplicação assume a responsabilidade de fornecer credenciais sem a necessidade de interação do utilizador. Mas, esse cenário está fora do âmbito desta arquitetura.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 obter considerações adicionais, veja Escolher uma solução de integração do Active Directory no local com o Azure.For additional considerations, see Choose a solution for integrating on-premises Active Directory with Azure.

ArquiteturaArchitecture

Esta arquitetura expande a implementação descrita em Expandir o AD DS para o Azure.This architecture extends the implementation described in Extending AD DS to Azure. Contém os seguintes componentes.It contains the following components.

  • Sub-rede do AD DS.AD DS subnet. Os servidores do AD DS estão contidos na sua própria sub-rede com regras do grupo de segurança da rede (NSG) que atuam como uma firewall.The AD DS servers are contained in their own subnet with network security group (NSG) rules acting as a firewall.

  • Servidores do AD DS.AD DS servers. Os controladores de domínio em execução como VMs no Azure.Domain controllers running as VMs in Azure. Estes servidores fornecem a autenticação de identidades locais dentro do domínio.These servers provide authentication of local identities within the domain.

  • Sub-rede do AD FS.AD FS subnet. Os servidores do AD FS estão localizados na sua própria sub-rede com as regras NSG a funcionarem como uma firewall.The AD FS servers are located within their own subnet with NSG rules acting as a firewall.

  • Servidores do AD FS.AD FS servers. Os servidores do AD FS fornecem autenticação e autorização federadas.The AD FS servers provide federated authorization and authentication. Nesta arquitetura, podem realizar as seguintes tarefas:In this architecture, they perform the following tasks:

    • Receber tokens de segurança que contêm afirmações realizadas por um servidor de federação parceiro em nome de um utilizador parceiro.Receiving security tokens containing claims made by a partner federation server on behalf of a partner user. O AD FS verifica se os tokens são válidos antes de transmitir as afirmações para a aplicação Web em execução no Azure para autorizar os pedidos.AD FS verifies that the tokens are valid before passing the claims to the web application running in Azure to authorize requests.

      O aplicativo em execução no Azure é o entidade confiadora.The application running in Azure is the relying party. O servidor de federação parceiro tem de emitir afirmações que devem ser compreendidas pela aplicação Web.The partner federation server must issue claims that are understood by the web application. Os servidores de federação parceiros são referidos como parceiros de conta, uma vez que enviam pedidos de acesso em nome de contas autenticadas na organização parceira.The partner federation servers are referred to as account partners, because they submit access requests on behalf of authenticated accounts in the partner organization. Os servidores do AD FS são denominados parceiros de recursos, pois fornecem acesso aos recursos (a aplicação Web).The AD FS servers are called resource partners because they provide access to resources (the web application).

    • Autenticar e autorizar pedidos recebidos de utilizadores externos a executar um browser ou dispositivo que precisa de acesso às aplicações Web, com o AD DS e o Serviço do Registo de Dispositivos do Azure 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.

    Os servidores do AD FS são configurados como um farm acedido através de um balanceador de carga do Azure.The AD FS servers are configured as a farm accessed through an Azure load balancer. Esta implementação melhora a disponibilidade e a escalabilidade.This implementation improves availability and scalability. Os servidores do AD FS não são expostos diretamente à Internet.The AD FS servers are not exposed directly to the Internet. Todo o tráfego de Internet é filtrado através dos servidores proxy da aplicação Web do AD FS e de uma DMZ (também referida como uma rede de perímetro).All Internet traffic is filtered through AD FS web application proxy servers and a DMZ (also referred to as a perimeter network).

    Para obter mais informações sobre como funciona o AD FS, veja Descrição Geral dos Serviços de Federação do Active Directory.For more information about how AD FS works, see Active Directory Federation Services Overview. Além disso, o artigo Implementação do AD FS no Azure contém uma introdução passo a passo detalhada para a implementação.Also, the article AD FS deployment in Azure contains a detailed step-by-step introduction to implementation.

  • Sub-rede de proxy do AD FS.AD FS proxy subnet. Os servidores proxy do AD FS podem ser contidos dentro da sua própria sub-rede, com as regras NSG a fornecer proteção.The AD FS proxy servers can be contained within their own subnet, with NSG rules providing protection. Os servidores nesta sub-rede estão expostos à Internet através de um conjunto de aplicações virtuais de rede que fornecem uma firewall entre a rede virtual do Azure e a 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 aplicação Web (WAP) do AD FS.AD FS web application proxy (WAP) servers. Estas VMs funcionam como servidores do AD FS para pedidos recebidos de organizações parceiras e de dispositivos externos.These VMs act as AD FS servers for incoming requests from partner organizations and external devices. Os servidores WAP atuam como um filtro e protegem os servidores do AD FS do acesso direto da Internet.The WAP servers act as a filter, shielding the AD FS servers from direct access from the Internet. Tal como acontece com os servidores do AD FS, a implementação dos servidores WAP num farm com balanceamento de carga dá-lhe maior disponibilidade e escalabilidade do que a implementação de uma coleção de servidores autónomos.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 obter informações detalhadas sobre a instalação de servidores WAP, veja Install and Configure the Web Application Proxy Server (Instalar e Configurar o Servidor Proxy de Aplicações Web).For detailed information about installing WAP servers, see Install and Configure the Web Application Proxy Server

  • Organização parceira.Partner organization. Uma organização parceira a executar uma aplicação Web que solicita acesso a uma aplicação Web em execução no Azure.A partner organization running a web application that requests access to a web application running in Azure. O servidor de federação na organização parceira autentica os pedidos localmente e envia tokens de segurança que contêm afirmações para o AD FS em execução no Azure.The federation server at the partner organization authenticates requests locally, and submits security tokens containing claims to AD FS running in Azure. O AD FS no Azure valida os tokens de segurança e, se válidos, pode transmitir as afirmações para a aplicação Web em execução no Azure para os autorizar.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

    Também pode configurar um túnel VPN com o gateway do Azure para fornecer acesso direto ao AD FS para os parceiros fidedignos.You can also configure a VPN tunnel using Azure gateway to provide direct access to AD FS for trusted partners. Os pedidos recebidos destes parceiros não são transmitidos através dos servidores WAP.Requests received from these partners do not pass through the WAP servers.

RecomendaçõesRecommendations

As recomendações seguintes aplicam-se à maioria dos cenários.The following recommendations apply for most scenarios. Siga-as, a não ser que tenha requisitos específicos que as anulem.Follow these recommendations unless you have a specific requirement that overrides them.

Recomendações de redesNetworking recommendations

Configure a interface de rede para cada uma das VMs que aloja o AD FS e os servidores WAP com endereços IP privados estáticos.Configure the network interface for each of the VMs hosting AD FS and WAP servers with static private IP addresses.

Não atribua endereços IP públicos às VMs do AD FS.Do not give the AD FS VMs public IP addresses. Para obter mais informações, consulte a considerações de segurança secção.For more information, see the Security considerations section.

Defina o endereço IP dos servidores do serviço de nomes de domínio (DNS) primário e secundário das interfaces de rede para cada VM do AD FS e WAP para referenciar as VMs dos Serviços de Diretório do Active Directory.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. As VMs dos serviços de diretório Active Directory deve estar a executar o DNS.The Active Directory DS VMs should be running DNS. Este passo é necessário para permitir que cada VM adira ao domínio.This step is necessary to enable each VM to join the domain.

Instalação do AD FSAD FS installation

O artigo Implementar um Farm de Servidores de Federação fornece instruções detalhadas para instalar e configurar o AD FS.The article Deploying a Federation Server Farm provides detailed instructions for installing and configuring AD FS. Execute as seguintes tarefas antes de configurar o primeiro servidor do AD FS no farm:Perform the following tasks before configuring the first AD FS server in the farm:

  1. Obtenha um certificado publicamente fidedigno para realizar a autenticação do servidor.Obtain a publicly trusted certificate for performing server authentication. O nome do requerente tem de conter o nome que os clientes utilizam para aceder ao serviço de federação.The subject name must contain the name clients use to access the federation service. Este pode ser o nome DNS registado para o balanceador de carga, por exemplo, adfs.contoso.com (evite utilizar nomes com carateres universais, tal como * .contoso.com, por motivos de segurança).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). Utilize o mesmo certificado em todas as VMs do servidor do AD FS.Use the same certificate on all AD FS server VMs. Pode comprar um certificado de uma autoridade de certificação fidedigna. Porém, se a sua organização utilizar os Serviços de Certificados do Active Directory, poderá criar os seus próprios.You can purchase a certificate from a trusted certification authority, but if your organization uses Active Directory Certificate Services you can create your own.

    O nome alternativo do requerente é utilizado pelo serviço de registo de dispositivos (DRS) para ativar o acesso a partir de dispositivos externos.The subject alternative name is used by the device registration service (DRS) to enable access from external devices. Este deve ter o formato enterpriseregistration.contoso.com.This should be of the form enterpriseregistration.contoso.com.

    Para obter mais informações, veja Obtain and Configure a Secure Sockets Layer (SSL) Certificate for AD FS (Obter e Configurar um Certificado SSL (Secure Sockets Layer) para o AD FS).For more information, see Obtain and Configure a Secure Sockets Layer (SSL) Certificate for AD FS.

  2. No controlador de domínio, gere uma nova chave de raiz para o Serviço de Distribuição de Chaves.On the domain controller, generate a new root key for the Key Distribution Service. Defina o tempo efetivo para a hora atual, com menos 10 horas (esta configuração reduz o atraso que pode ocorrer na distribuição e na sincronização das chaves no domínio).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 passo é necessário para suportar a criação da conta de serviço de grupo, que é utilizada para executar o serviço do AD FS.This step is necessary to support creating the group service account that is used to run the AD FS service. O comando PowerShell seguinte mostra um exemplo sobre como fazê-lo:The following PowerShell command shows an example of how to do this:

    Add-KdsRootKey -EffectiveTime (Get-Date).AddHours(-10)
    
  3. Adicione cada VM do servidor do AD FS ao domínio.Add each AD FS server VM to the domain.

Nota

Para instalar o AD FS, o controlador de domínio a executar a função FSMO (Flexible Single Master Operation) do emulador do controlador de domínio primário (PDC) para o domínio deve estar em execução e acessível nas VMs do 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: Existe alguma forma a tornar menos repetitiva? >><<RBC: Is there a way to make this less repetitive?>>

Confiança do AD FSAD FS trust

Estabeleça a confiança da federação entre a sua instalação do AD FS e os servidores de federação de todas as organizações parceiras.Establish federation trust between your AD FS installation, and the federation servers of any partner organizations. Configure o mapeamento e a filtragem de afirmações necessários.Configure any claims filtering and mapping required.

  • A equipa do DevOps em cada organização parceira tem de adicionar uma confiança da entidade confiadora para as aplicações Web acessíveis através de servidores do AD FS.DevOps staff at each partner organization must add a relying party trust for the web applications accessible through your AD FS servers.
  • A equipa do DevOps na sua organização tem de configurar a confiança do fornecedor de afirmações para permitir que os servidores do AD FS confiem nas afirmações fornecidas pelas organizações parceiras.DevOps staff in your organization must configure claims-provider trust to enable your AD FS servers to trust the claims that partner organizations provide.
  • A equipa do DevOps na sua organização também tem de configurar o AD FS para transmitir afirmações para as aplicações Web da sua organização.DevOps staff in your organization must also configure AD FS to pass claims on to your organization's web applications.

Para obter mais informações, veja Establishing Federation Trust (Estabelecer Confiança da Federação).For more information, see Establishing Federation Trust.

Publique as aplicações Web da sua organização e disponibilize-as aos parceiros externos com a pré-autenticação através dos servidores WAP.Publish your organization's web applications and make them available to external partners by using preauthentication through the WAP servers. Para obter mais informações, veja Publish Applications using AD FS Preauthentication (Publicar Aplicações com a Pré-autenticação do AD FS).For more information, see Publish Applications using AD FS Preauthentication

O AD FS suporta a transformação e o aumento de tokens.AD FS supports token transformation and augmentation. O Azure Active Directory não fornece esta funcionalidade.Azure Active Directory does not provide this feature. Com o AD FS, quando configura as relações de confiança, pode:With AD FS, when you set up the trust relationships, you can:

  • Configurar transformações de afirmação para as regras de autorização.Configure claim transformations for authorization rules. Por exemplo, pode mapear a segurança de grupo a partir de uma representação utilizada por uma organização parceira não Microsoft para algo que do Active Directory Domain podem autorizar na sua organização.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.
  • Converter as afirmações de um formato para outro.Transform claims from one format to another. Por exemplo, poderá mapear a partir de SAML 2.0 para SAML 1.1 se a sua aplicação suportar apenas afirmações 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.

Monitorização do AD FSAD FS monitoring

O Pacote de Gestão do Microsoft System Center dos Serviços de Federação do Active Directory 2012 R2 fornece uma monitorização proativa e reativa da implementação do AD FS para o servidor de federação.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 pacote de gestão monitoriza:This management pack monitors:

  • Eventos que o serviço do AD FS guarda nos registos de eventos.Events that the AD FS service records in its event logs.
  • Os dados de desempenho que os contadores de desempenho do AD FS recolhem.The performance data that the AD FS performance counters collect.
  • O estado de funcionamento geral dos sistemas do AD FS e das aplicações Web (entidades confiadoras) e fornece alertas para problemas e avisos críticos.The overall health of the AD FS system and web applications (relying parties), and provides alerts for critical issues and warnings.

Considerações de escalabilidadeScalability considerations

As considerações seguintes, resumidas do artigo Plan your AD FS deployment (Planear a Implementação do AD FS), apresentam um ponto de partida para o dimensionamento de farms do AD FS:The following considerations, summarized from the article Plan your AD FS deployment, give a starting point for sizing AD FS farms:

  • Se tiver menos de 1000 utilizadores, não crie servidores dedicados, em vez disso, instale o AD FS em cada um dos servidores dos Serviços de Diretório do Active Directory na cloud.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. Confirme que tem, pelo menos, dois servidores do Diretório do Active Directory para manter a disponibilidade.Make sure that you have at least two Active Directory DS servers to maintain availability. Crie um único servidor WAP.Create a single WAP server.
  • Se tiver entre 1000 e 15 000 utilizadores, crie dois servidores do AD FS dedicados e dois servidores WAP dedicados.If you have between 1000 and 15000 users, create two dedicated AD FS servers and two dedicated WAP servers.
  • Se tiver entre 15 000 e 60 000 utilizadores, crie entre três e cinco servidores AD FS dedicados e, pelo menos, dois 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.

Estas considerações partem do princípio que está a utilizar VMs de tamanho quad-cores duplo (Standard D4_v2 ou superior) no Azure.These considerations assume that you are using dual quad-core VM (Standard D4_v2, or better) sizes in Azure.

Se estiver a utilizar a Base de Dados Interna do Windows para armazenar os dados de configuração do AD FS, ficará limitado a oito servidores do AD FS no farm.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. Se achar que vai precisar de mais no futuro, utilize o SQL Server.If you anticipate that you will need more in the future, use SQL Server. Para obter mais informações, veja The Role of the AD FS Configuration Database (A Função da Base de Dados de Configuração do AD FS).For more information, see The Role of the AD FS Configuration Database.

Considerações de disponibilidadeAvailability considerations

Crie um farm do AD FS com, pelo menos, dois servidores para aumentar a disponibilidade do serviço.Create an AD FS farm with at least two servers to increase availability of the service. Utilize contas de armazenamento diferentes para cada VM do AD FS no farm.Use different storage accounts for each AD FS VM in the farm. Esta abordagem ajuda a garantir que uma falha numa única conta de armazenamento não torna todo o farm inacessível.This approach helps to ensure that a failure in a single storage account does not make the entire farm inaccessible.

Crie conjuntos de disponibilidade do Azure separados para as VMs do AD FS e WAP.Create separate Azure availability sets for the AD FS and WAP VMs. Confirme se existem, pelo menos, duas VMs em cada conjunto.Ensure that there are at least two VMs in each set. Cada conjunto de disponibilidade tem de ter, pelo menos, dois domínios de atualização e dois domínios de falhas.Each availability set must have at least two update domains and two fault domains.

Configure os balanceadores de carga para as VMs do AD FS e WAP da seguinte forma:Configure the load balancers for the AD FS VMs and WAP VMs as follows:

  • Utilize um balanceador de carga do Azure para fornecer acesso às VMs WAP e um balanceador de carga interno para distribuir a carga entre os servidores do AD FS no farm.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.

  • Transmita apenas tráfego presente na porta 443 (HTTPS) para os servidores do AD FS/WAP.Only pass traffic appearing on port 443 (HTTPS) to the AD FS/WAP servers.

  • Atribua um endereço IP estático ao balanceador de carga.Give the load balancer a static IP address.

  • Criar uma sonda de estado de funcionamento através de HTTP em relação a /adfs/probe.Create a health probe using HTTP against /adfs/probe. Para obter mais informações, consulte verificações estado de funcionamento de Balanceador de carga do Hardware e de Proxy de aplicações Web / AD FS 2012 R2.For more information, see Hardware Load Balancer Health Checks and Web Application Proxy / AD FS 2012 R2.

    Nota

    Os servidores do AD FS utilizam o protocolo de Indicação do Nome de Servidor (SNI), por isso, se tentar sondar com um ponto final HTTPS a partir do Balanceador de carga, este falhará.AD FS servers use the Server Name Indication (SNI) protocol, so attempting to probe using an HTTPS endpoint from the load balancer fails.

  • Adicione um registo A DNS ao domínio para o balanceador de carga do AD FS.Add a DNS A record to the domain for the AD FS load balancer. Especifique o endereço IP do balanceador de carga e escolha um nome no domínio (por exemplo, adfs.contoso.com).Specify the IP address of the load balancer, and give it a name in the domain (such as adfs.contoso.com). Este é nome que os clientes e os servidores do WAP utilizam para aceder ao farm de servidores do AD FS.This is the name clients and the WAP servers use to access the AD FS server farm.

Pode utilizar o SQL Server ou a Base de Dados Interna do Windows para conter as informações de configuração do AD FS.You can use either SQL Server or the Windows Internal Database to hold AD FS configuration information. A Base de Dados Interna do Windows fornece uma redundância básica.The Windows Internal Database provides basic redundancy. As alterações são escritas diretamente apenas numa das bases de dados do AD FS no cluster do AD FS, enquanto os outros servidores utilizam a replicação por solicitação para manter as bases de dados atualizadas.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. A utilização do SQL Server pode fornecer uma redundância de base de dados completa e uma elevada disponibilidade com clustering de ativação pós-falha ou espelhamento.Using SQL Server can provide full database redundancy and high availability using failover clustering or mirroring.

Considerações sobre a capacidade de gestãoManageability considerations

A equipa do DevOps deve estar preparada para realizar as seguintes tarefas:DevOps staff should be prepared to perform the following tasks:

  • Gerir os servidores de federação, incluindo o farm do AD FS, a política de fidedignidade nos servidores de federação e os certificados utilizados pelos serviços de federação.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.
  • Gerir os servidores WAP, incluindo o farm e os certificados WAP.Managing the WAP servers including managing the WAP farm and certificates.
  • Gerir as aplicações Web, incluindo configurar as entidades confiadoras, dos métodos de autenticação e dos mapeamentos de afirmações.Managing web applications including configuring relying parties, authentication methods, and claims mappings.
  • Realizar a cópia de segurança dos componentes do AD FS.Backing up AD FS components.

Considerações de segurançaSecurity considerations

AD FS utiliza HTTPS, por isso, certifique-se de que as regras NSG para a sub-rede que contém a web escalão VMs permitem pedidos HTTPS.AD FS uses HTTPS, so make sure that the NSG rules for the subnet containing the web tier VMs permit HTTPS requests. Estes pedidos podem ter origem na rede no local, nas sub-redes que contêm a camada Web, na camada Business, na camada de dados, na DMZ privada, na DMZ pública e na sub-rede que contém os servidores do 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.

Impeça a exposição direta dos servidores do AD FS à Internet.Prevent direct exposure of the AD FS servers to the Internet. Os servidores do AD FS são computadores associados a domínios que têm autorização total para conceder tokens de segurança.AD FS servers are domain-joined computers that have full authorization to grant security tokens. Se um servidor for comprometido, um utilizador mal-intencionado poderá emitir tokens de acesso total para todas as aplicações Web e para todos os servidores de federação protegidos pelo 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. Se o sistema tiver de processar pedidos de utilizadores externos não ligados a partir de sites de parceiros fidedignos, utilize os servidores WAP para processar estes pedidos.If your system must handle requests from external users not connecting from trusted partner sites, use WAP servers to handle these requests. Para obter mais informações, veja Where to Place a Federation Server Proxy (Onde Colocar um Proxy de Servidor de Federação).For more information, see Where to Place a Federation Server Proxy.

Coloque os servidores AD FS e os servidores WAP em sub-redes separadas com as suas próprias firewalls.Place AD FS servers and WAP servers in separate subnets with their own firewalls. Pode utilizar as regras NSG para definir regras de firewall.You can use NSG rules to define firewall rules. Todas as firewalls devem permitir o tráfego na porta 443 (HTTPS).All firewalls should allow traffic on port 443 (HTTPS).

Restrinja o acesso de início de sessão direto aos servidores do AD FS e WAP.Restrict direct sign in access to the AD FS and WAP servers. Apenas a equipa do DevOps deve poder estabelecer ligação.Only DevOps staff should be able to connect. Não associe os servidores WAP ao domínio.Do not join the WAP servers to the domain.

Considere a utilização de um conjunto de aplicações virtuais de rede para registar as informações detalhadas do tráfego que atravessa o limite da sua rede virtual para fins de auditoria.Consider using a set of network virtual appliances that logs detailed information on traffic traversing the edge of your virtual network for auditing purposes.

Implementar a soluçãoDeploy the solution

Está disponível uma implementação para esta arquitetura no GitHub.A deployment for this architecture is available on GitHub. Tenha em atenção de que toda a implementação pode demorar até duas horas, que inclui criar o gateway VPN e executar os scripts que configuram o Active Directory e o 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.

Pré-requisitosPrerequisites

  1. Clone, copie ou transfira o ficheiro zip para o repositório do GitHub.Clone, fork, or download the zip file for the GitHub repository.

  2. Instale CLI 2.0 do Azure.Install Azure CLI 2.0.

  3. Instale o pacote npm dos blocos modulares do Azure.Install the Azure building blocks npm package.

    npm install -g @mspnp/azure-building-blocks
    
  4. Num prompt de comando, de bash de linha de comandos, ou linha de comandos do PowerShell, início de sessão na conta do Azure da seguinte forma:From a command prompt, bash prompt, or PowerShell prompt, sign into your Azure account as follows:

    az login
    

Implementar o datacenter no local simuladoDeploy the simulated on-premises datacenter

  1. Navegue para o adfs pasta do repositório do GitHub.Navigate to the adfs folder of the GitHub repository.

  2. Abra o ficheiro onprem.json.Open the onprem.json file. Procurar instâncias adminPassword, Password, e SafeModeAdminPassword e atualizar as palavras-passe.Search for instances of adminPassword, Password, and SafeModeAdminPassword and update the passwords.

  3. Execute o seguinte comando e aguarde pela conclusão da implementação:Run the following command and wait for the deployment to finish:

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

Implementar a infraestrutura do AzureDeploy the Azure infrastructure

  1. Abra o ficheiro azure.json.Open the azure.json file. Procurar instâncias adminPassword e Password e adicione valores para as palavras-passe.Search for instances of adminPassword and Password and add values for the passwords.

  2. Execute o seguinte comando e aguarde pela conclusão da implementação:Run the following command and wait for the deployment to finish:

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

Configurar o farm do AD FSSet up the AD FS farm

  1. Abra o ficheiro adfs-farm-first.json.Open the adfs-farm-first.json file. Procure AdminPassword e substitua a palavra-passe predefinida.Search for AdminPassword and replace the default password.

  2. Execute o seguinte comando:Run the following command:

    azbb -s <subscription_id> -g <resource group> -l <location> -p adfs-farm-first.json --deploy
    
  3. Abra o ficheiro adfs-farm-rest.json.Open the adfs-farm-rest.json file. Procure AdminPassword e substitua a palavra-passe predefinida.Search for AdminPassword and replace the default password.

  4. Execute o seguinte comando e aguarde pela conclusão da implementação: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
    

Configurar o AD FS (parte 1)Configure AD FS (part 1)

  1. Abra uma sessão de ambiente de trabalho remoto para a VM com o nome ra-adfs-jb-vm1, que é a VM da jumpbox.Open a remote desktop session to the VM named ra-adfs-jb-vm1, which is the jumpbox VM. O nome de utilizador é testuser.The user name is testuser.

  2. A partir da jumpbox, abra uma sessão de ambiente de trabalho remoto para a VM com o nome ra-adfs-proxy-vm1.From the jumpbox, open a remote desktop session to the VM named ra-adfs-proxy-vm1. O endereço IP privado é 10.0.6.4.The private IP address is 10.0.6.4.

  3. A partir desta sessão de área de trabalho remota, execute o ISE do PowerShell.From this remote desktop session, run the PowerShell ISE.

  4. No PowerShell, navegue até ao diretório seguinte:In PowerShell, navigate to the following directory:

    C:\Packages\Plugins\Microsoft.Powershell.DSC\2.77.0.0\DSCWork\adfs-v2.0
    
  5. Cole o seguinte código num painel de script e executá-lo: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
    

    Na Get-Credential , introduza a palavra-passe que especificou no ficheiro de parâmetros de implementação.At the Get-Credential prompt, enter the password that you specified in the deployment parameter file.

  6. Execute o seguinte comando para monitorizar o progresso do DSC configuração:Run the following command to monitor the progress of the DSC configuration:

    Get-DscConfigurationStatus
    

    Pode demorar vários minutos a chegar a consistência.It can take several minutes to reach consistency. Durante este período, poderá ver erros do comando.During this time, you may see errors from the command. Quando a configuração for concluída com êxito, o resultado deverá ter um aspeto semelhante ao seguinte: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
    

Configurar o AD FS (parte 2)Configure AD FS (part 2)

  1. A partir da jumpbox, abra uma sessão de ambiente de trabalho remoto para a VM com o nome ra-adfs-proxy-vm2.From the jumpbox, open a remote desktop session to the VM named ra-adfs-proxy-vm2. O endereço IP privado é 10.0.6.5.The private IP address is 10.0.6.5.

  2. A partir desta sessão de área de trabalho remota, execute o ISE do PowerShell.From this remote desktop session, run the PowerShell ISE.

  3. Navegue até ao diretório seguinte:Navigate to the following directory:

    C:\Packages\Plugins\Microsoft.Powershell.DSC\2.77.0.0\DSCWork\adfs-v2.0
    
  4. Após o seguinte num painel de script e execute o 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
    

    Na Get-Credential , introduza a palavra-passe que especificou no ficheiro de parâmetros de implementação.At the Get-Credential prompt, enter the password that you specified in the deployment parameter file.

  5. Execute o seguinte comando para monitorizar o progresso da configuração do DSC:Run the following command to monitor the progress of the DSC configuration:

    Get-DscConfigurationStatus
    

    Pode demorar vários minutos a chegar a consistência.It can take several minutes to reach consistency. Durante este período, poderá ver erros do comando.During this time, you may see errors from the command. Quando a configuração for concluída com êxito, o resultado deverá ter um aspeto semelhante ao seguinte: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
    

    Às vezes esta DSC não.Sometimes this DSC fails. Se o estado verifique mostra Status=Failure e Type=Consistency, tente executar novamente o passo 4.If the status check shows Status=Failure and Type=Consistency, try re-running step 4.

Inicie sessão no AD FSSign into AD FS

  1. A partir da jumpbox, abra uma sessão de ambiente de trabalho remoto para a VM com o nome ra-adfs-adfs-vm1.From the jumpbox, open a remote desktop session to the VM named ra-adfs-adfs-vm1. O endereço IP privado é 10.0.5.4.The private IP address is 10.0.5.4.

  2. Siga os passos em ativar o início de sessão Idp-Initiated página para ativar a página de início de sessão.Follow the steps in Enable the Idp-Initiated Sign on page to enable the sign-on page.

  3. Na jumpbox, navegue até https://adfs.contoso.com/adfs/ls/idpinitiatedsignon.htm.From the jump box, browse to https://adfs.contoso.com/adfs/ls/idpinitiatedsignon.htm. Poderá receber um aviso que pode ignorar para este teste de certificado.You may receive a certificate warning that you can ignore for this test.

  4. Verifique se a página de início de sessão do Contoso Corporation é apresentada.Verify that the Contoso Corporation sign-in page appears. Inicie sessão como contoso\testuser.Sign in as contoso\testuser.