Расширение служб федерации Active Directory (AD FS) в AzureExtend Active Directory Federation Services (AD FS) to Azure

Эта эталонная архитектура реализует безопасную гибридную сеть, которая расширяет вашу локальную сеть в Azure и использует службы федерации Active Directory (AD FS) для выполнения федеративной проверки подлинности и авторизации компонентов, работающих в 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. Разверните это решение.Deploy this solution.

Защищенная гибридная сетевая архитектура с Active Directory

Скачайте файл Visio этой архитектуры.Download a Visio file of this architecture.

AD FS может размещаться в локальной среде, но если ваше приложение является гибридным, в котором некоторые части реализованы в Azure, эффективнее реплицировать AD FS в облако.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.

На схеме показаны следующие сценарии:The diagram shows the following scenarios:

  • Код приложения организации-партнера обращается к веб-приложению, размещенному внутри виртуальной сети Azure.Application code from a partner organization accesses a web application hosted inside your Azure VNet.
  • Внешний зарегистрированный пользователь с учетными данными, хранящимися в доменных службах Active Directory (DS), обращается к веб-приложению, размещенному внутри виртуальной сети Azure.An external, registered user with credentials stored inside Active Directory Domain Services (DS) accesses a web application hosted inside your Azure VNet.
  • Пользователь, подключенный к виртуальной сети с помощью авторизованного устройства, запускает веб-приложение, размещенное внутри виртуальной сети Azure.A user connected to your VNet using an authorized device executes a web application hosted inside your Azure VNet.

Типичные способы использования этой архитектуры:Typical uses for this architecture include:

  • Гибридные приложения, в которых рабочие нагрузки выполняются частично локально и частично в Azure.Hybrid applications where workloads run partly on-premises and partly in Azure.
  • Решения, использующие федеративную авторизацию для публикации веб-приложений в партнерских организациях.Solutions that use federated authorization to expose web applications to partner organizations.
  • Системы, которые поддерживают доступ из веб-браузеров за пределами брандмауэра организации.Systems that support access from web browsers running outside of the organizational firewall.
  • Системы, которые позволяют пользователям получать доступ к веб-приложениям, подключаясь к авторизованным внешним устройствам, таким как удаленные компьютеры, ноутбуки и другие мобильные устройства.Systems that enable users to access to web applications by connecting from authorized external devices such as remote computers, notebooks, and other mobile devices.

В этой эталонной архитектуре основное внимание уделяется пассивной федерации, в которой серверы федерации определяют, как и когда выполнять проверку подлинности пользователя.This reference architecture focuses on passive federation, in which the federation servers decide how and when to authenticate a user. Пользователь предоставляет сведения для входа при запуске приложения.The user provides sign in information when the application is started. Этот механизм чаще всего используется веб-браузерами и включает в себя протокол, который перенаправляет браузер на сайт, на котором пользователь проходит проверку подлинности.This mechanism is most commonly used by web browsers and involves a protocol that redirects the browser to a site where the user authenticates. Службы федерации Active Directory поддерживают также активную федерацию, где приложение отвечает за предоставление учетных данных без дальнейшего участия пользователя, но этот сценарий выходит за рамки этой архитектуры.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.

Дополнительные сведения см. в статье Выбор решения для интеграции локальных Active Directory с Azure.For additional considerations, see Choose a solution for integrating on-premises Active Directory with Azure.

ArchitectureArchitecture

Эта архитектура расширяет реализацию, описанную в статье Расширение доменных служб Active Directory в Azure.This architecture extends the implementation described in Extending AD DS to Azure. В нем содержатся следующие компоненты.It contains the following components.

  • Подсеть AD DS.AD DS subnet. Серверы AD DS содержатся в собственной подсети с правилами группы сетевой безопасности (NSG), действующими в качестве брандмауэра.The AD DS servers are contained in their own subnet with network security group (NSG) rules acting as a firewall.

  • Серверы AD DS.AD DS servers. Контроллеры домена, выполняющие функции виртуальных машин в Azure.Domain controllers running as VMs in Azure. Эти серверы предоставляют проверку подлинности локальных удостоверений в домене.These servers provide authentication of local identities within the domain.

  • Подсеть AD FS.AD FS subnet. Серверы AD FS расположены в своей собственной подсети с правилами NSG, действующими в качестве брандмауэра.The AD FS servers are located within their own subnet with NSG rules acting as a firewall.

  • AD FS серверы.AD FS servers. Серверы AD FS предоставляют федеративную авторизацию и проверку подлинности.The AD FS servers provide federated authorization and authentication. В этой архитектуре они выполняют следующие задачи:In this architecture, they perform the following tasks:

    • Получение маркеров безопасности, содержащих утверждения, сделанные сервером федерации партнера от имени пользователя партнера.Receiving security tokens containing claims made by a partner federation server on behalf of a partner user. Службы федерации Active Directory проверяют действительность токенов, прежде чем передавать утверждения в веб-приложение, запущенное в Azure, для авторизации запросов.AD FS verifies that the tokens are valid before passing the claims to the web application running in Azure to authorize requests.

      Приложение, выполняемое в Azure, является проверяющей стороной.The application running in Azure is the relying party. Сервер федерации партнера должен выдавать утверждения, которые распознаются веб-приложением.The partner federation server must issue claims that are understood by the web application. Серверы федерации партнера называются партнерами по учетным записям, так как они отправляют запросы на доступ от имени прошедших проверку подлинности учетных записей в организации партнера.The partner federation servers are referred to as account partners, because they submit access requests on behalf of authenticated accounts in the partner organization. Серверы AD FS называются партнерами по ресурсам, так как они обеспечивают доступ к ресурсам (веб-приложение).The AD FS servers are called resource partners because they provide access to resources (the web application).

    • Проверка подлинности и авторизация входящих запросов от внешних пользователей, работающих с веб-браузером или устройством, которым необходим доступ к веб-приложениям, с использованием доменных служб Active Directory и службы регистрации устройств 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.

    Серверы AD FS настроены как ферма, доступ к которой осуществляется через подсистему балансировки нагрузки Azure.The AD FS servers are configured as a farm accessed through an Azure load balancer. Эта реализация позволяет повысить доступность и масштабируемость.This implementation improves availability and scalability. Серверы AD FS недоступны напрямую в Интернете.The AD FS servers are not exposed directly to the Internet. Весь интернет-трафик фильтруется через прокси-серверы веб-приложений AD FS и промежуточную сеть (также называемую сетью периметра).All Internet traffic is filtered through AD FS web application proxy servers and a DMZ (also referred to as a perimeter network).

    Дополнительные сведения о работе служб федерации Active Directory см. в статье Active Directory Federation Services Overview (Службы федерации Active Directory).For more information about how AD FS works, see Active Directory Federation Services Overview. Подробные пошаговые инструкции по реализации см. в статье Развертывание служб федерации Active Directory в Azure.Also, the article AD FS deployment in Azure contains a detailed step-by-step introduction to implementation.

  • Подсеть прокси-сервера AD FS.AD FS proxy subnet. Прокси-серверы AD FS могут содержаться в собственной подсети с правилами NSG, обеспечивающими защиту.The AD FS proxy servers can be contained within their own subnet, with NSG rules providing protection. Серверы этой подсети доступны в Интернете через набор сетевых виртуальных устройств, которые обеспечивают брандмауэр между вашей виртуальной сетью Azure и Интернетом.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.

  • Прокси-серверы веб-приложения (WAP) AD FS.AD FS web application proxy (WAP) servers. Эти виртуальные машины действуют как серверы AD FS для входящих запросов от партнерских организаций и внешних устройств.These VMs act as AD FS servers for incoming requests from partner organizations and external devices. WAP-серверы действуют как фильтр, защищая серверы AD FS от прямого доступа из Интернета.The WAP servers act as a filter, shielding the AD FS servers from direct access from the Internet. Как и для серверов AD FS, развертывание WAP-серверов в ферме с подсистемой балансировки нагрузки обеспечивает большую доступность и масштабируемость, чем развертывание коллекции автономных серверов.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.

    Примечание

    Подробные сведения об установке WAP-серверов см. в статье Установка и настройка прокси-сервера веб-приложений.For detailed information about installing WAP servers, see Install and Configure the Web Application Proxy Server

  • Партнерская организация.Partner organization. Партнерская организация, запускающая веб-приложение, которое запрашивает доступ к веб-приложению, запущенному в Azure.A partner organization running a web application that requests access to a web application running in Azure. Сервер федерации в партнерской организации проверяет подлинность запросов локально и отправляет маркеры безопасности, содержащие утверждения, в AD FS, работающие в 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 в Azure проверяют маркеры безопасности, и если они действительны, передают утверждения в веб-приложение, запущенное в Azure, для их авторизации.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.

    Примечание

    Вы также можете настроить VPN-туннель с помощью шлюза Azure для предоставления прямого доступа к AD FS доверенным партнерам.You can also configure a VPN tunnel using Azure gateway to provide direct access to AD FS for trusted partners. Запросы, полученные от этих партнеров, не проходят через WAP-серверы.Requests received from these partners do not pass through the WAP servers.

РекомендацииRecommendations

Следующие рекомендации применимы для большинства ситуаций.The following recommendations apply for most scenarios. Следуйте этим рекомендациям, если они не противоречат особым требованиям для вашего случая.Follow these recommendations unless you have a specific requirement that overrides them.

Рекомендации по сетиNetworking recommendations

Настройте сетевой интерфейс для каждой виртуальной машины, на которой размещены AD FS и WAP-серверы со статическими частными IP-адресами.Configure the network interface for each of the VMs hosting AD FS and WAP servers with static private IP addresses.

Не предоставляйте общедоступные IP-адреса виртуальным машинам AD FS.Do not give the AD FS VMs public IP addresses. Дополнительные сведения см. в разделе Вопросы безопасности.For more information, see the Security considerations section.

Задайте IP-адрес основных и вторичных серверов служб доменных имен (DNS) для сетевых интерфейсов каждой виртуальной машины AD FS и WAP, чтобы указать виртуальные машины AD 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. На виртуальных машинах AD DS должен быть запущен DNS.The Active Directory DS VMs should be running DNS. Этот шаг является обязательным для подключения каждой виртуальной машины к домену.This step is necessary to enable each VM to join the domain.

Установка AD FSAD FS installation

В статье Развертывание служб федерации Active Directory в Azure приведены подробные инструкции по установке и настройке служб федерации Active Directory.The article Deploying a Federation Server Farm provides detailed instructions for installing and configuring AD FS. Выполните следующие задачи перед началом настройки первого сервера AD FS в ферме:Perform the following tasks before configuring the first AD FS server in the farm:

  1. Получите общедоступный доверенный сертификат для проверки подлинности сервера.Obtain a publicly trusted certificate for performing server authentication. Имя субъекта должно содержать имя, используемое клиентами для доступа к службе федерации.The subject name must contain the name clients use to access the federation service. Это может быть DNS-имя, зарегистрированное для подсистемы балансировки нагрузки, например adfs.contoso.com (из соображений безопасности не используйте подстановочные имена, такие как **.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). Используйте один сертификат на всех виртуальных машинах сервера AD FS.Use the same certificate on all AD FS server VMs. Вы можете приобрести сертификат в доверенном центре сертификации, но если ваша организация использует службы сертификатов Active Directory, вы можете создать собственный.You can purchase a certificate from a trusted certification authority, but if your organization uses Active Directory Certificate Services you can create your own.

    Альтернативное имя субъекта используется службой регистрации устройств (DRS) для разрешения доступа с внешних устройств.The subject alternative name is used by the device registration service (DRS) to enable access from external devices. Оно должно указываться в формате enterpriseregistration.contoso.com.This should be of the form enterpriseregistration.contoso.com.

    Дополнительные сведения см. в статье Managing SSL Certificates in AD FS and WAP in Windows Server 2016 (Управление SSL-сертификатами в AD FS и WAP в Windows Server 2016).For more information, see Obtain and Configure a Secure Sockets Layer (SSL) Certificate for AD FS.

  2. На контроллере домена создайте корневой ключ для службы распределения ключей.On the domain controller, generate a new root key for the Key Distribution Service. Установите срок действия на текущее время минус 10 часов (эта конфигурация уменьшает задержку, которая может возникать при распространении и синхронизации ключей по всему домену).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). Этот шаг необходим для поддержки создания групповой учетной записи службы, используемой для запуска службы AD FS.This step is necessary to support creating the group service account that is used to run the AD FS service. В следующей команде PowerShell показан пример того, как это сделать:The following PowerShell command shows an example of how to do this:

    Add-KdsRootKey -EffectiveTime (Get-Date).AddHours(-10)
    
  3. Добавьте все виртуальные машины сервера AD FS в домен.Add each AD FS server VM to the domain.

Примечание

Чтобы установить AD FS, контроллер домена, на котором выполняется роль FSMO эмулятора основного контроллера домена, должен быть запущен и доступен из виртуальных машин 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: можно ли сократить повторяемость?>><<RBC: Is there a way to make this less repetitive?>>

Доверие AD FSAD FS trust

Установите доверие федерации между установкой AD FS и серверами федерации любых партнерских организаций.Establish federation trust between your AD FS installation, and the federation servers of any partner organizations. Настройте требуемую фильтрацию и сопоставление утверждений.Configure any claims filtering and mapping required.

  • Сотрудники отдела DevOps в каждой партнерской организации должны добавить доверие проверяющей стороны для веб-приложений, доступных через ваши серверы AD FS.DevOps staff at each partner organization must add a relying party trust for the web applications accessible through your AD FS servers.
  • Сотрудники отдела DevOps в вашей организации должны настроить доверие поставщика утверждений, чтобы ваши серверы AD FS могли доверять утверждениям, предоставляемым партнерскими организациями,DevOps staff in your organization must configure claims-provider trust to enable your AD FS servers to trust the claims that partner organizations provide.
  • а также настроить в AD FS передачу утверждений в веб-приложения вашей организации.DevOps staff in your organization must also configure AD FS to pass claims on to your organization's web applications.

Дополнительные сведения см. в статье Establishing Federation Trust (Настройка доверия федерации).For more information, see Establishing Federation Trust.

Публикуйте веб-приложения своей организации и предоставляйте их внешним партнерам, используя предварительную проверку подлинности через WAP-серверы.Publish your organization's web applications and make them available to external partners by using preauthentication through the WAP servers. Дополнительные сведения см. в статье Публикация приложений с использованием предварительной проверки подлинности AD FS.For more information, see Publish Applications using AD FS Preauthentication

Службы федерации Active Directory поддерживают преобразования токенов и приращение.AD FS supports token transformation and augmentation. Azure Active Directory не поддерживает эту функцию.Azure Active Directory does not provide this feature. В AD FS при настройке отношения доверия вы можете:With AD FS, when you set up the trust relationships, you can:

  • Настраивать преобразования утверждений для правил авторизации.Configure claim transformations for authorization rules. Например, можно сопоставлять безопасность групп из представления, используемого партнерской организацией сторонних организаций, с тем, что Active Directory DS может авторизоваться в вашей организации.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.
  • Преобразовывать утверждения из одного формата в другой.Transform claims from one format to another. Например, вы можете сопоставить SAML 2.0 с SAML 1.1, если ваше приложение поддерживает только утверждения 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.

Мониторинг AD FSAD FS monitoring

Пакет управления Microsoft System Center для AD FS 2012 R2 предоставляет средства активного и реактивного мониторинга развертывания сервера федерации AD FS.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. Этот пакет управления отслеживает:This management pack monitors:

  • События, которые служба AD FS записывает в свои журналы событий.Events that the AD FS service records in its event logs.
  • Данные о производительности, которые собирают счетчики производительности AD FS.The performance data that the AD FS performance counters collect.
  • Общую работоспособность системы AD FS и веб-приложений (проверяющих сторон), а также оповещения о критических проблемах и предупреждения.The overall health of the AD FS system and web applications (relying parties), and provides alerts for critical issues and warnings.

Вопросы масштабируемостиScalability considerations

Следующие аспекты, изложенные в статье Планирование развертывания служб федерации Active Directory, позволяют приступить к изменению размера ферм AD FS:The following considerations, summarized from the article Plan your AD FS deployment, give a starting point for sizing AD FS farms:

  • Если у вас менее 1000 пользователей, не создавайте выделенные серверы, а вместо этого установите AD FS на каждом из серверов Active Directory DS в облаке.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. Убедитесь, что у вас есть как минимум два сервера AD DS для обеспечения доступности.Make sure that you have at least two Active Directory DS servers to maintain availability. Создайте один сервер WAP.Create a single WAP server.
  • Если у вас от 1000 до 15 000 пользователей, создайте два выделенных сервера AD FS и два выделенных сервера WAP.If you have between 1000 and 15000 users, create two dedicated AD FS servers and two dedicated WAP servers.
  • Если у вас от 15 000 до 60 000 пользователей, создайте от трех до пяти выделенных серверов AD FS и не менее двух выделенных WAP-серверов.If you have between 15000 and 60000 users, create between three and five dedicated AD FS servers and at least two dedicated WAP servers.

Предполагается, что вы используете две четырехъядерные виртуальные машины (Standard D4_v2 или лучше) в Azure.These considerations assume that you are using dual quad-core VM (Standard D4_v2, or better) sizes in Azure.

Если вы используете внутреннюю базу данных Windows для хранения данных конфигурации AD FS, вы ограничены восемью серверами AD FS в ферме.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. Если предполагается, что в будущем вам понадобится больше, используйте SQL Server.If you anticipate that you will need more in the future, use SQL Server. Дополнительные сведения см. в разделе Роль базы данных конфигурации AD FS.For more information, see The Role of the AD FS Configuration Database.

Вопросы доступностиAvailability considerations

Создайте ферму AD FS с как минимум двумя серверами, чтобы увеличить доступность службы.Create an AD FS farm with at least two servers to increase availability of the service. Используйте разные учетные записи для каждой виртуальной машины AD FS в ферме.Use different storage accounts for each AD FS VM in the farm. Такой подход помогает гарантировать, что сбой в одной учетной записи хранения не сделает недоступной всю ферму.This approach helps to ensure that a failure in a single storage account does not make the entire farm inaccessible.

Создайте отдельные группы доступности Azure для виртуальных машин AD FS и WAP.Create separate Azure availability sets for the AD FS and WAP VMs. Убедитесь, что в каждой группе есть по крайней мере две виртуальные машины.Ensure that there are at least two VMs in each set. Для каждой группы доступности нужно настроить по крайней мере два домена обновления и два домена сбоя.Each availability set must have at least two update domains and two fault domains.

Настройте подсистемы балансировки нагрузки для виртуальных машин AD FS и WAP следующим образом:Configure the load balancers for the AD FS VMs and WAP VMs as follows:

  • Используйте подсистему балансировки нагрузки Azure для обеспечения внешнего доступа к виртуальным машинам WAP и внутреннюю систему балансировки нагрузки для распределения нагрузки между серверами AD FS в ферме.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.

  • Передавайте на серверы AD FS и WAP только трафик с порта 443 (HTTPS).Only pass traffic appearing on port 443 (HTTPS) to the AD FS/WAP servers.

  • Предоставьте статический IP-адрес подсистеме балансировки нагрузки.Give the load balancer a static IP address.

  • Создайте проверку работоспособности для /adfs/probe с помощью HTTP.Create a health probe using HTTP against /adfs/probe. Дополнительные сведения см. в статье Hardware Load Balancer Health Checks and Web Application Proxy / AD FS 2012 R2 (Проверки работоспособности аппаратной подсистемы балансировки нагрузки и прокси-службы веб-приложения или AD FS 2012 R2).For more information, see Hardware Load Balancer Health Checks and Web Application Proxy / AD FS 2012 R2.

    Примечание

    Серверы AD FS используют протокол указания имени сервера (SNI), поэтому попытка проверки с использованием конечной точки HTTPS из подсистемы балансировки нагрузки не выполняется.AD FS servers use the Server Name Indication (SNI) protocol, so attempting to probe using an HTTPS endpoint from the load balancer fails.

  • Добавьте запись A DNS в домен для подсистемы балансировки нагрузки AD FS.Add a DNS A record to the domain for the AD FS load balancer. Укажите IP-адрес подсистемы балансировки нагрузки и присвойте ей имя домена (например, adfs.contoso.com).Specify the IP address of the load balancer, and give it a name in the domain (such as adfs.contoso.com). Это имя, которое клиенты и серверы WAP используют для доступа к ферме серверов AD FS.This is the name clients and the WAP servers use to access the AD FS server farm.

Вы можете использовать SQL Server или внутреннюю базу данных Windows для хранения данных о конфигурации AD FS.You can use either SQL Server or the Windows Internal Database to hold AD FS configuration information. Внутренняя база данных Windows обеспечивает основную избыточность.The Windows Internal Database provides basic redundancy. Изменения записываются непосредственно только в одну из баз данных AD FS в кластере AD FS, в то время как другие серверы используют репликацию по запросу, чтобы обновлять свои базы данных.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. Использование SQL Server обеспечивает избыточность и высокую доступность всей базы данных за счет отказоустойчивой кластеризации или зеркального отображения.Using SQL Server can provide full database redundancy and high availability using failover clustering or mirroring.

Вопросы управляемостиManageability considerations

Сотрудники DevOps должны быть готовы выполнить следующие задачи:DevOps staff should be prepared to perform the following tasks:

  • Управление серверами федерации, включая управление фермой AD FS, управление политикой доверия на серверах федерации и управление сертификатами, используемыми службами федерации.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.
  • Управление WAP-серверами, включая управление фермой и сертификатами WAP.Managing the WAP servers including managing the WAP farm and certificates.
  • Управление веб-приложениями, включая настройку проверяющих сторон, методы проверки подлинности и сопоставления утверждений.Managing web applications including configuring relying parties, authentication methods, and claims mappings.
  • Резервное копирование компонентов AD FS.Backing up AD FS components.

Вопросы безопасностиSecurity considerations

AD FS используют протокол HTTPS, поэтому убедитесь, что правила NSG для подсети, содержащей виртуальные машины веб-уровня, разрешают HTTPS-запросы.AD FS uses HTTPS, so make sure that the NSG rules for the subnet containing the web tier VMs permit HTTPS requests. Эти запросы могут быть получены из локальной сети, подсетей, содержащих веб-уровень, бизнес-уровень, уровень данных, частную и общедоступную сеть периметра, а также подсеть, содержащую серверы 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.

Предотвратите прямой доступ серверов AD FS к Интернету.Prevent direct exposure of the AD FS servers to the Internet. Серверы AD FS — это компьютеры, присоединенные к доменам, которые имеют полную авторизацию для предоставления маркеров безопасности.AD FS servers are domain-joined computers that have full authorization to grant security tokens. Если сервер взломан, злоумышленник может выдавать маркеры доступа всем веб-приложениям и всем серверам федерации, которые защищены 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. Если ваша система должна обрабатывать запросы от внешних пользователей, не подключающихся с сайтов доверенных партнеров, используйте WAP-серверы для обработки этих запросов.If your system must handle requests from external users not connecting from trusted partner sites, use WAP servers to handle these requests. Дополнительные сведения см. в статье Where to Place a Federation Server Proxy (Место размещения прокси-сервера федерации).For more information, see Where to Place a Federation Server Proxy.

Поместите серверы AD FS и WAP-серверы в отдельные подсети со своими брандмауэрами.Place AD FS servers and WAP servers in separate subnets with their own firewalls. Для определения правил брандмауэра можно использовать правила NSG.You can use NSG rules to define firewall rules. Все брандмауэры должны пропускать трафик через порт 443 (HTTPS).All firewalls should allow traffic on port 443 (HTTPS).

Ограничьте прямой вход на серверы AD FS и WAP.Restrict direct sign in access to the AD FS and WAP servers. Только сотрудники DevOps должны иметь возможность подключения.Only DevOps staff should be able to connect. Не присоединяйте серверы WAP к домену.Do not join the WAP servers to the domain.

Для выполнения аудита рассмотрите возможность использования набора сетевых виртуальных устройств, которые регистрируют подробные сведения о трафике, пересекающем край вашей виртуальной сети.Consider using a set of network virtual appliances that logs detailed information on traffic traversing the edge of your virtual network for auditing purposes.

Рекомендации для DevOpsDevOps considerations

Рекомендации по DevOps см. в разделе DevOps. расширение домен Active Directory Services (AD DS) в Azure.For DevOps considerations, see DevOps: Extending Active Directory Domain Services (AD DS) to Azure.

Рекомендации по стоимостиCost considerations

Для оценки затрат используйте калькулятор цен Azure.Use the Azure pricing calculator to estimate costs. Другие рекомендации описаны в разделе "затраты" в Microsoft Azure хорошо спроектированной инфраструктурой.Other considerations are described in the Cost section in Microsoft Azure Well-Architected Framework.

Ниже приведены рекомендации по затратам для служб, используемых в этой архитектуре.Here are cost considerations for the services used in this architecture.

доменные службы Active Directory;AD Domain Services

Рассмотрите возможность использования доменных служб Active Directory в качестве общей службы, которая в свою очередь используется несколькими рабочими нагрузками для снижения затрат.Consider having Active Directory Domain Services as a shared service that is consumed by multiple workloads to lower costs. Дополнительные сведения см. в разделе цены на службы домен Active Directory Services.For more information, see Active Directory Domain Services pricing.

Службы федерации Azure ADAzure AD Federation Services

Сведения о выпусках, предлагаемых Azure Active Directory, см. в разделе цены на Azure AD.For information about the editions offered by Azure Active Directory, see Azure AD pricing. Функция служб федерации Active Directory доступна во всех выпусках.The AD Federation Services feature is available in all editions.

Развертывание решенияDeploy the solution

Пример развертывания для этой архитектуры можно найти на портале GitHub.A deployment for this architecture is available on GitHub. Обратите внимание, что для полного развертывания может потребоваться до двух часов, включая создание VPN-шлюза и запуск скриптов, которые настраивают доменные службы Active Directory и 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.

Предварительные требованияPrerequisites

  1. Клонируйте или скачайте ZIP-файл в репозитории GitHub либо создайте для него вилку.Clone, fork, or download the zip file for the GitHub repository.

  2. Установите Azure CLI 2,0.Install Azure CLI 2.0.

  3. Установите пакет npm стандартных блоков Azure.Install the Azure building blocks npm package.

    npm install -g @mspnp/azure-building-blocks
    
  4. Из командной строки, строки bash или строки PowerShell войдите в свою учетную запись Azure, как показано ниже:From a command prompt, bash prompt, or PowerShell prompt, sign into your Azure account as follows:

    az login
    

Развертывание имитации локального центра обработки данныхDeploy the simulated on-premises datacenter

  1. Перейдите в папку adfs в репозитории GitHub.Navigate to the adfs folder of the GitHub repository.

  2. Откройте файл onprem.json .Open the onprem.json file. Найдите экземпляры adminPassword, Password и SafeModeAdminPassword и обновите пароли.Search for instances of adminPassword, Password, and SafeModeAdminPassword and update the passwords.

  3. Выполните следующую команду и дождитесь завершения развертывания:Run the following command and wait for the deployment to finish:

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

Развертывание инфраструктуры AzureDeploy the Azure infrastructure

  1. Откройте файл azure.json .Open the azure.json file. Найдите экземпляры adminPassword и Password и добавьте значения для паролей.Search for instances of adminPassword and Password and add values for the passwords.

  2. Выполните следующую команду и дождитесь завершения развертывания:Run the following command and wait for the deployment to finish:

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

Настройка фермы AD FSSet up the AD FS farm

  1. Откройте файл adfs-farm-first.json .Open the adfs-farm-first.json file. Найдите AdminPassword и замените пароль по умолчанию.Search for AdminPassword and replace the default password.

  2. Выполните следующую команду:Run the following command:

    azbb -s <subscription_id> -g <resource group> -l <location> -p adfs-farm-first.json --deploy
    
  3. Откройте файл adfs-farm-rest.json .Open the adfs-farm-rest.json file. Найдите AdminPassword и замените пароль по умолчанию.Search for AdminPassword and replace the default password.

  4. Выполните следующую команду и дождитесь завершения развертывания: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
    

Настройка AD FS (часть 1)Configure AD FS (part 1)

  1. Откройте сеанс удаленного входа в систему к виртуальной машине ra-adfs-jb-vm1, который является виртуальной машиной окна перехода.Open a remote desktop session to the VM named ra-adfs-jb-vm1, which is the jumpbox VM. Имя пользователя — testuser.The user name is testuser.

  2. В окне перехода откройте сеанс удаленного входа в систему для виртуальной машины ra-adfs-proxy-vm1.From the jumpbox, open a remote desktop session to the VM named ra-adfs-proxy-vm1. Частный IP-адрес – 10.0.6.4.The private IP address is 10.0.6.4.

  3. Из этого сеанса удаленного входа в систему запустите Интегрированную среду сценариев PowerShell.From this remote desktop session, run the PowerShell ISE.

  4. В PowerShell перейдите в следующий каталог.In PowerShell, navigate to the following directory:

    C:\Packages\Plugins\Microsoft.Powershell.DSC\2.77.0.0\DSCWork\adfs-v2.0
    
  5. Вставьте следующий код в область сценариев и запустите его.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
    

    В строке Get-Credential введите пароль, указанный в файле параметров развертывания.At the Get-Credential prompt, enter the password that you specified in the deployment parameter file.

  6. Выполните следующую команду, чтобы отслеживать ход выполнения конфигурации DSC.Run the following command to monitor the progress of the DSC configuration:

    Get-DscConfigurationStatus
    

    Необходимо несколько минут, чтобы достичь согласованности.It can take several minutes to reach consistency. В течение этого времени из команды могут возникнуть ошибки.During this time, you may see errors from the command. После успешного завершения конфигурации результат должен выглядеть так, как показано ниже.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
    

Настройка AD FS (часть 2)Configure AD FS (part 2)

  1. В окне перехода откройте сеанс удаленного входа в систему для виртуальной машины ra-adfs-proxy-vm2.From the jumpbox, open a remote desktop session to the VM named ra-adfs-proxy-vm2. Частный IP-адрес – 10.0.6.5.The private IP address is 10.0.6.5.

  2. Из этого сеанса удаленного входа в систему запустите Интегрированную среду сценариев PowerShell.From this remote desktop session, run the PowerShell ISE.

  3. Перейдите в следующую папку:Navigate to the following directory:

    C:\Packages\Plugins\Microsoft.Powershell.DSC\2.77.0.0\DSCWork\adfs-v2.0
    
  4. Вставьте следующее в область сценариев и выполните этот сценарий: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
    

    В строке Get-Credential введите пароль, указанный в файле параметров развертывания.At the Get-Credential prompt, enter the password that you specified in the deployment parameter file.

  5. Выполните следующую команду, чтобы отслеживать ход выполнения конфигурации.Run the following command to monitor the progress of the DSC configuration:

    Get-DscConfigurationStatus
    

    Необходимо несколько минут, чтобы достичь согласованности.It can take several minutes to reach consistency. В течение этого времени из команды могут возникнуть ошибки.During this time, you may see errors from the command. После успешного завершения конфигурации результат должен выглядеть так, как показано ниже.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
    

    Иногда происходит сбой DSC.Sometimes this DSC fails. Если проверка состояния возвращает Status=Failure и Type=Consistency, попробуйте перезапустить шаг 4.If the status check shows Status=Failure and Type=Consistency, try re-running step 4.

Вход в AD FSSign into AD FS

  1. В окне перехода откройте сеанс удаленного входа в систему для виртуальной машины ra-adfs-adfs-vm1.From the jumpbox, open a remote desktop session to the VM named ra-adfs-adfs-vm1. Частный IP-адрес – 10.0.5.4.The private IP address is 10.0.5.4.

  2. Чтобы включить страницу входа, выполните действия, описанные на странице Включение входа, инициированной IDP .Follow the steps in Enable the Idp-Initiated Sign on page to enable the sign-on page.

  3. В окне перехода просмотрите https://adfs.contoso.com/adfs/ls/idpinitiatedsignon.htm.From the jump box, browse to https://adfs.contoso.com/adfs/ls/idpinitiatedsignon.htm. Здесь может отобразиться предупреждение сертификата, которое в этом примере можно проигнорировать.You may receive a certificate warning that you can ignore for this test.

  4. Убедитесь, что отображается страница входа в корпорацию Contoso.Verify that the Contoso Corporation sign-in page appears. Выполните вход с именем пользователя contoso\testuser.Sign in as contoso\testuser.