Erweitern von Active Directory Federation Services (AD FS) auf AzureExtend Active Directory Federation Services (AD FS) to Azure

Diese Referenzarchitektur implementiert ein sicheres hybrides Netzwerk, das Ihr lokales Netzwerk auf Azure ausweitet, und verwendet Active Directory-Verbunddienste (AD FS), um eine Verbundauthentifizierung und -autorisierung für Komponenten durchzuführen, die in Azure ausgeführt werden.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. Stellen Sie diese Lösung bereit.Deploy this solution.

Schützen einer Hybrid-Netzwerkarchitektur mit Active Directory

Laden Sie eine Visio-Datei dieser Architektur herunter.Download a Visio file of this architecture.

AD FS kann lokal gehostet werden, aber wenn Ihre Anwendung eine hybride Anwendung ist, in der einige Teile in Azure implementiert sind, kann es effizienter sein, AD FS in der Cloud zu replizieren.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.

Im Diagramm sind folgende Szenarios dargestellt:The diagram shows the following scenarios:

  • Anwendungscode von einer Partnerorganisation greift auf eine Webanwendung zu, die in Ihrem Azure VNet gehostet wird.Application code from a partner organization accesses a web application hosted inside your Azure VNet.
  • Ein externer registrierter Benutzer mit Anmeldeinformationen, die in Active Directory Domain Services (DS) gespeichert sind, greift auf eine Webanwendung zu, die in Ihrem Azure VNet gehostet wird.An external, registered user with credentials stored inside Active Directory Domain Services (DS) accesses a web application hosted inside your Azure VNet.
  • Ein Benutzer, der über ein autorisiertes Gerät eine Verbindung mit Ihrem virtuellen Netzwerk (VNet) hergestellt hat, führt eine Webanwendung aus, die in Ihrem Azure VNet gehostet wird.A user connected to your VNet using an authorized device executes a web application hosted inside your Azure VNet.

Typische Einsatzmöglichkeiten für diese Architektur sind:Typical uses for this architecture include:

  • Hybridanwendungen, in denen Workloads teilweise lokal und teilweise in Azure ausgeführt werdenHybrid applications where workloads run partly on-premises and partly in Azure.
  • Lösungen, in denen Verbundautorisierung verwendet wird, um Webanwendungen für Partnerorganisationen verfügbar zu machenSolutions that use federated authorization to expose web applications to partner organizations.
  • Systeme, die Zugriff über Webbrowser ermöglichen, die außerhalb der Firewall der Organisation ausgeführt werdenSystems that support access from web browsers running outside of the organizational firewall.
  • Systeme, die Benutzern Zugriff auf Webanwendungen ermöglichen, indem sie eine Verbindung von einem autorisierten externen Gerät herstellen, etwa ein Remotecomputer, ein Notebook oder ein anderes mobiles GerätSystems that enable users to access to web applications by connecting from authorized external devices such as remote computers, notebooks, and other mobile devices.

In dieser Referenzarchitektur liegt der Schwerpunkt auf passivem Verbund, in dem die Verbundserver entscheiden, wie und wann ein Benutzer authentifiziert werden muss.This reference architecture focuses on passive federation, in which the federation servers decide how and when to authenticate a user. Der Benutzer gibt Anmeldeinformationen an, wenn die Anwendung gestartet wird.The user provides sign in information when the application is started. Dieser Mechanismus wird am häufigsten von Webbrowsern verwendet und beinhaltet ein Protokoll, das den Browser zu einer Website umleitet, auf der sich der Benutzer authentifiziert.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 unterstützt auch aktiven Verbund, bei dem eine Anwendung die jeweiligen Anmeldeinformationen bereitstellt, ohne dass weiterer Benutzereingriff erforderlich ist. Dieses Szenario ist aber nicht Bestandteil dieser Architektur.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.

Weitere Überlegungen finden Sie unter Auswählen einer Lösung für die Integration einer lokalen Active Directory-Instanz in Azure.For additional considerations, see Choose a solution for integrating on-premises Active Directory with Azure.

ArchitectureArchitecture

Diese Architektur erweitert die Implementierung, die unter Erweitern von AD DS auf Azure beschrieben ist.This architecture extends the implementation described in Extending AD DS to Azure. Sie enthält die folgenden Komponenten.It contains the following components.

  • AD DS-Subnetz.AD DS subnet. Der AD DS-Server befinden sich in ihrem eigenen Subnetz mit Regeln für Netzwerksicherheitsgruppen (NSG), die als Firewall fungieren.The AD DS servers are contained in their own subnet with network security group (NSG) rules acting as a firewall.

  • AD DS-Server.AD DS servers. Domänencontroller, die als virtuelle Computer in Azure ausgeführt werden.Domain controllers running as VMs in Azure. Diese Server bieten Authentifizierung von lokalen Identitäten in der Domäne.These servers provide authentication of local identities within the domain.

  • AD FS-Subnetz.AD FS subnet. Die AD FS-Server befinden sich in ihrem eigenen Subnetz mit NSG-Regeln, die als Firewall fungieren.The AD FS servers are located within their own subnet with NSG rules acting as a firewall.

  • AD FS-Server.AD FS servers. Die AD FS-Server bieten Verbundautorisierung und -authentifizierung.The AD FS servers provide federated authorization and authentication. In dieser Architektur führen sie die folgenden Aufgaben aus:In this architecture, they perform the following tasks:

    • Empfangen von Sicherheitstoken, die Ansprüche enthalten, die ein Partnerverbundserver im Auftrag eines Partnerbenutzers stellt.Receiving security tokens containing claims made by a partner federation server on behalf of a partner user. AD FS überprüft, ob die Token gültig sind, bevor die Ansprüche an die in Azure ausgeführte Webanwendung übergeben werden, um die Anforderungen zu autorisieren.AD FS verifies that the tokens are valid before passing the claims to the web application running in Azure to authorize requests.

      Die in Azure ausgeführte Anwendung ist die vertrauende Seite.The application running in Azure is the relying party. Die Partnerverbundserver muss Ansprüche ausgeben, die von der Webanwendung verstanden werden.The partner federation server must issue claims that are understood by the web application. Die Partnerverbundserver werden als Kontopartner bezeichnet, weil sie Anforderungen im Auftrag von authentifizierten Konten in der Partnerorganisation übergeben.The partner federation servers are referred to as account partners, because they submit access requests on behalf of authenticated accounts in the partner organization. Die AD FS-Server werden als Ressourcenpartner bezeichnet, weil sie Zugriff auf Ressourcen (die Webanwendung) ermöglichen.The AD FS servers are called resource partners because they provide access to resources (the web application).

    • Authentifizieren und Autorisieren eingehender Anforderungen von externen Benutzern, die einen Webbrowser oder ein Gerät ausführen, der oder das Zugriff auf Webanwendungen benötigt, mit AD DS und dem Active Directory-Geräteregistrierungsdienst.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.

    Die AD FS-Server sind als eine Farm konfiguriert, auf die über einen Azure-Lastenausgleich zugegriffen wird.The AD FS servers are configured as a farm accessed through an Azure load balancer. Diese Implementierung verbessert die Verfügbarkeit und die Skalierbarkeit.This implementation improves availability and scalability. Die AD FS-Server werden nicht direkt im Internet verfügbar gemacht.The AD FS servers are not exposed directly to the Internet. Der gesamte Internet-Datenverkehr wird über AD FS-Webanwendungs-Proxyserver und eine DMZ (auch als Umkreisnetzwerk bezeichnet) gefiltert.All Internet traffic is filtered through AD FS web application proxy servers and a DMZ (also referred to as a perimeter network).

    Weitere Informationen zur Funktionsweise von AD FS finden Sie in der Übersicht über Active Directory-Verbunddienste (AD FS).For more information about how AD FS works, see Active Directory Federation Services Overview. Darüber hinaus enthält der Artikel AD FS-Bereitstellung in Azure eine ausführliche Schritt-für-Schritt-Einführung in die Implementierung.Also, the article AD FS deployment in Azure contains a detailed step-by-step introduction to implementation.

  • AD FS-Proxysubnetz.AD FS proxy subnet. Die AD FS-Proxyserver können in ihrem eigenen Subnetz enthalten sein, in dem NSG-Regeln Schutz bieten.The AD FS proxy servers can be contained within their own subnet, with NSG rules providing protection. Die Server in diesem Subnetz werden dem Internet über eine Reihe von virtuellen Netzwerkgeräten verfügbar gemacht, die eine Firewall zwischen Ihrem virtuellen Azure-Netzwerk und dem Internet bereitstellen.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.

  • AD FS-Webanwendungs-Proxyserver (WAP-Server) .AD FS web application proxy (WAP) servers. Diese virtuellen Computer fungieren als AD FS-Server für eingehende Anforderungen von Partnerorganisationen und externen Geräten.These VMs act as AD FS servers for incoming requests from partner organizations and external devices. Die WAP-Server fungieren als Filter, der die AD FS-Server gegen direkten Zugriff aus dem Internet abschirmt.The WAP servers act as a filter, shielding the AD FS servers from direct access from the Internet. So wie bei den AD FS-Servern bietet Ihnen Bereitstellen der WAP-Server in einer Farm mit Lastenausgleich größere Verfügbarkeit und Skalierbarkeit, als dies bei Bereitstellung einer Sammlung von eigenständigen Servern der Fall ist.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.

    Hinweis

    Ausführliche Informationen zum Installieren von WAP-Servern finden Sie unter Installieren und Konfigurieren des Webanwendungsproxy-Servers.For detailed information about installing WAP servers, see Install and Configure the Web Application Proxy Server

  • Partnerorganisation.Partner organization. Eine Partnerorganisation, die eine Webanwendung ausführt, die Zugriff auf eine Webanwendung anfordert, die in Azure ausgeführt wird.A partner organization running a web application that requests access to a web application running in Azure. Der Verbundserver in der Partnerorganisation authentifiziert Anforderungen lokal und sendet Sicherheitstoken, die Ansprüche enthalten, an AD FS, der in Azure ausgeführt wird.The federation server at the partner organization authenticates requests locally, and submits security tokens containing claims to AD FS running in Azure. AD FS in Azure überprüft die Sicherheitstoken und kann, wenn die Token gültig sind, die Ansprüche an die in Azure ausgeführte Webanwendung übergeben, um sie zu autorisieren.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.

    Hinweis

    Sie können auch mit einem Azure-Gateway einen VPN-Tunnel konfigurieren, um für vertrauenswürdige Partner direkten Zugriff auf AD FS zu ermöglichen.You can also configure a VPN tunnel using Azure gateway to provide direct access to AD FS for trusted partners. Anforderungen, die von diesen Partnern eingehen, durchlaufen nicht den WAP-Server.Requests received from these partners do not pass through the WAP servers.

EmpfehlungenRecommendations

Die folgenden Empfehlungen gelten für die meisten Szenarios.The following recommendations apply for most scenarios. Sofern Sie keine besonderen Anforderungen haben, die Vorrang haben, sollten Sie diese Empfehlungen befolgen.Follow these recommendations unless you have a specific requirement that overrides them.

NetzwerkempfehlungenNetworking recommendations

Konfigurieren Sie die Netzwerkschnittstelle für jeden der virtuellen Computer, die AD FS und WAP-Server hosten, mit statischen privaten IP-Adressen.Configure the network interface for each of the VMs hosting AD FS and WAP servers with static private IP addresses.

Geben Sie den virtuellen Computern mit AD FS keine öffentlichen IP-Adressen.Do not give the AD FS VMs public IP addresses. Weitere Informationen hierzu finden Sie im Abschnitt Sicherheitshinweise.For more information, see the Security considerations section.

Legen Sie die IP-Adresse des bevorzugten und die des sekundären DNS-Servers (Domain Name System) für die Netzwerkschnittstellen für jeden virtuellen AD FS- und WAP-Computer so fest, dass sie auf die virtuellen Active Directory Domain Services-Computer verweisen.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. DNS sollte auf den virtuellen Active Directory Domain Services-Computern ausgeführt werden.The Active Directory DS VMs should be running DNS. Dieser Schritt ist notwendig, damit jeder virtuelle Computer der Domäne beitreten kann.This step is necessary to enable each VM to join the domain.

AD FS-InstallationAD FS installation

Der Artikel Bereitstellen einer Verbundserverfarm enthält ausführliche Anweisungen zum Installieren und Konfigurieren von AD FS.The article Deploying a Federation Server Farm provides detailed instructions for installing and configuring AD FS. Führen Sie die folgenden Aufgaben aus, bevor Sie den ersten AD FS-Server in der Farm konfigurieren:Perform the following tasks before configuring the first AD FS server in the farm:

  1. Rufen Sie ein öffentlich vertrauenswürdiges Zertifikat ab, mit dem eine Serverauthentifizierung vorgenommen wird.Obtain a publicly trusted certificate for performing server authentication. Der Antragstellername muss den Namen enthalten, den Clients dazu verwenden, auf den Verbunddienst zuzugreifen.The subject name must contain the name clients use to access the federation service. Dies kann der DNS-Name sein, der für den Lastenausgleich registriert ist, etwa adfs.contoso.com (aus Sicherheitsgründen sollten Sie keine Platzhalterzeichen, z.B. * . contoso.com, verwenden).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). Verwenden Sie auf allen virtuellen Computern, die als AD FS-Server fungieren, dasselbe Zertifikat.Use the same certificate on all AD FS server VMs. Sie können ein Zertifikat von einer vertrauenswürdigen Zertifizierungsstelle erwerben, wird in Ihrer Organisation aber Active Directory-Zertifikatdienste verwendet, können Sie Ihr eigenes Zertifikat erstellen.You can purchase a certificate from a trusted certification authority, but if your organization uses Active Directory Certificate Services you can create your own.

    Alternativer Antragstellername wird vom Geräteregistrierungsdienst (Device Registration Service, DRS) verwendet, um Zugriff von externen Geräten zu ermöglichen.The subject alternative name is used by the device registration service (DRS) to enable access from external devices. Dieser Name muss in der Form enterpriseregistration.contoso.com vorliegen.This should be of the form enterpriseregistration.contoso.com.

    Weitere Informationen hierzu finden Sie unter Abrufen und Konfigurieren eines SSL-Zertifikats (Secure Sockets Layer) für AD FS.For more information, see Obtain and Configure a Secure Sockets Layer (SSL) Certificate for AD FS.

  2. Generieren Sie auf dem Domänencontroller einen neuen Stammschlüssel für den Schlüsselverteilungsdienst.On the domain controller, generate a new root key for the Key Distribution Service. Legen Sie die effektive Zeit auf die aktuelle Zeit abzüglich 10 Stunden fest (diese Konfiguration verringert die Verzögerung, die auftreten kann, wenn Schlüssel in der Domäne verteilt und synchronisiert werden).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). Dieser Schritt ist erforderlich, damit das Gruppendienstkonto erstellt werden kann, mit dem der AD FS-Dienst ausgeführt wird.This step is necessary to support creating the group service account that is used to run the AD FS service. Im folgenden PowerShell-Befehl ist beispielhaft gezeigt, wie dies ausgeführt wird:The following PowerShell command shows an example of how to do this:

    Add-KdsRootKey -EffectiveTime (Get-Date).AddHours(-10)
    
  3. Fügen Sie jeden virtuellen Computer, der als AD FS-Server fungiert, zur Domäne hinzu.Add each AD FS server VM to the domain.

Hinweis

Damit AD FS installiert werden kann, müssen die virtuellen AD FS-Computer auf den Domänencontroller zugreifen können, auf dem die FSMO-Rolle (Flexible Single Master Operation) für den PDC-Emulator (Primary Domain Controller, primärer Domänencontroller) ausgeführt wird, und dieser Domänencontroller muss ausgeführt werden.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: Is there a way to make this less repetitive?>><<RBC: Is there a way to make this less repetitive?>>

AD FS-VertrauensstellungAD FS trust

Richten Sie eine Verbundvertrauensstellung zwischen Ihrer AD FS-Installation und den Verbundservern jeder Partnerorganisation ein.Establish federation trust between your AD FS installation, and the federation servers of any partner organizations. Konfigurieren Sie jegliche erforderliche Ansprüchefilterung und -zuordnung.Configure any claims filtering and mapping required.

  • DevOps-Mitarbeiter in jeder Partnerorganisation müssen eine Vertrauensstellung der vertrauenden Seite für die Webanwendungen hinzufügen, auf die über Ihre AD FS-Server zugegriffen werden kann.DevOps staff at each partner organization must add a relying party trust for the web applications accessible through your AD FS servers.
  • DevOps-Mitarbeiter in Ihrer Organisation müssen eine Anspruchsanbieter-Vertrauensstellung konfigurieren, damit Ihre AD FS-Server den Ansprüchen vertrauen können, die von Partnerorganisationen bereitgestellt werden.DevOps staff in your organization must configure claims-provider trust to enable your AD FS servers to trust the claims that partner organizations provide.
  • DevOps-Mitarbeiter in Ihrer Organisation müssen außerdem AD FS so konfigurieren, dass Ansprüche an die Webanwendungen Ihrer Organisation übergeben werden.DevOps staff in your organization must also configure AD FS to pass claims on to your organization's web applications.

Weitere Informationen hierzu finden Sie unter Establishing Federation Trust (Einrichten einer Verbundvertrauensstellung).For more information, see Establishing Federation Trust.

Veröffentlichen Sie die Webanwendungen Ihrer Organisation, und machen Sie diese für externe Partner verfügbar, indem Sie Präauthentifizierung durch die WAP-Server verwenden.Publish your organization's web applications and make them available to external partners by using preauthentication through the WAP servers. Weitere Informationen hierzu finden Sie unter Publish Applications using AD FS Preauthentication (Veröffentlichen von Anwendungen mit AD FS-Vorauthentifizierung).For more information, see Publish Applications using AD FS Preauthentication

AD FS unterstützt Tokentransformation und -ergänzung.AD FS supports token transformation and augmentation. Azure Active Directory bietet diese Funktionalität nicht.Azure Active Directory does not provide this feature. Wenn Sie die Vertrauensstellungen einrichten, können Sie mit AD FS:With AD FS, when you set up the trust relationships, you can:

  • Anspruchstransformationen für Autorisierungsregeln konfigurieren.Configure claim transformations for authorization rules. Beispielsweise können Sie Gruppensicherheit aus einer Darstellung, die von einer Nicht-Microsoft-Partnerorganisation verwendet wird, zu einer anderen Darstellung zuordnen, die von Active Directory DS in Ihrer Organisation autorisiert werden kann.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.
  • Ansprüche aus einem Format in ein anderes transformieren.Transform claims from one format to another. Beispielsweise können Sie von SAML 2.0 zu SAML 1.1 zuordnen, wenn Ihre Anwendung nur SAML 1.1-Ansprüche unterstützt.For example, you can map from SAML 2.0 to SAML 1.1 if your application only supports SAML 1.1 claims.

AD FS-ÜberwachungAD FS monitoring

Das Microsoft System Center-Management Pack für Active Directory Federation Services 2012 R2 bietet sowohl eine proaktive als auch eine reaktive Überwachung Ihrer AD FS-Bereitstellung für den Verbundserver.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. Dieses Management Pack überwacht Folgendes:This management pack monitors:

  • Ereignisse, die der AD FS-Dienst in seinen Ereignisprotokollen speichertEvents that the AD FS service records in its event logs.
  • Die Leistungsdaten, die von den AD FS-Leistungsindikatoren gesammelt werdenThe performance data that the AD FS performance counters collect.
  • Die Gesamtintegrität des AD FS-Systems und der Webanwendungen (vertrauende Seiten); stellt außerdem Benachrichtigung für schwerwiegende Probleme und Warnungen bereitThe overall health of the AD FS system and web applications (relying parties), and provides alerts for critical issues and warnings.

Überlegungen zur SkalierbarkeitScalability considerations

Die folgenden Aspekte, die aus dem Artikel Planen der AD FS-Bereitstellung zusammengefasst sind, bieten einen Ausgangspunkt zum Anpassen der Größe von AD FS-Farmen:The following considerations, summarized from the article Plan your AD FS deployment, give a starting point for sizing AD FS farms:

  • Wenn Sie weniger als 1000 Benutzer haben, sollten Sie keine dedizierten Server erstellen, sondern stattdessen AD FS auf jedem der Active Directory DS-Server in der Cloud installieren.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. Verwenden Sie dazu mindestens zwei Active Directory DS-Server, damit Verfügbarkeit sichergestellt ist.Make sure that you have at least two Active Directory DS servers to maintain availability. Erstellen Sie einen einzelnen WAP-Server.Create a single WAP server.
  • Wenn Sie zwischen 1000 und 15000 Benutzer haben, erstellen Sie zwei dedizierte AD FS-Server und zwei dedizierte WAP-Server.If you have between 1000 and 15000 users, create two dedicated AD FS servers and two dedicated WAP servers.
  • Wenn Sie zwischen 15000 und 60000 Benutzer haben, erstellen Sie drei bis fünf dedizierte AD FS-Server und mindestens zwei dedizierte WAP-Server.If you have between 15000 and 60000 users, create between three and five dedicated AD FS servers and at least two dedicated WAP servers.

Für diese Angaben wird angenommen, dass Sie virtuelle Computer in einer Größe mit doppeltem Vierkern (Standard_D4_v2 oder besser) in Azure verwenden.These considerations assume that you are using dual quad-core VM (Standard D4_v2, or better) sizes in Azure.

Wenn Sie die interne Windows-Datenbank verwenden, um die AD FS-Konfigurationsdaten zu speichern, sind Sie auf acht AD FS-Server in der Farm beschränkt.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. Wenn sich davon ausgehen, dass Sie zukünftig mehr benötigen, sollten Sie SQL Server verwenden.If you anticipate that you will need more in the future, use SQL Server. Weitere Informationen hierzu finden Sie unter The Role of the AD FS Configuration Database (Die Rolle der AD FS-Konfigurationsdatenbank).For more information, see The Role of the AD FS Configuration Database.

Überlegungen zur VerfügbarkeitAvailability considerations

Erstellen Sie eine AD FS-Farm mit mindestens zwei Servern, um die Verfügbarkeit des Diensts zu erhöhen.Create an AD FS farm with at least two servers to increase availability of the service. Verwenden Sie verschiedene Speicherkonten für jeden virtuellen AD FS-Computer in der Farm.Use different storage accounts for each AD FS VM in the farm. Mit dieser Vorgehensweise lässt sich sicherstellen, dass ein Fehler in einem Speicherkonto nicht dazu führt, dass die gesamte Farm unzugänglich wird.This approach helps to ensure that a failure in a single storage account does not make the entire farm inaccessible.

Erstellen Sie getrennte Azure-Verfügbarkeitsgruppen für die virtuellen AD FS- und WAP-Computer.Create separate Azure availability sets for the AD FS and WAP VMs. Stellen Sie sicher, dass in jeder Gruppe mindestens zwei virtuelle Computer vorhanden sind.Ensure that there are at least two VMs in each set. Jede Verfügbarkeitsgruppe muss mindestens zwei Upgdatedomänen und zwei Fehlerdomänen haben.Each availability set must have at least two update domains and two fault domains.

Konfigurieren Sie die Lastenausgleiche für die virtuellen AD FS- und WAP-Computer wie folgt:Configure the load balancers for the AD FS VMs and WAP VMs as follows:

  • Verwenden Sie einen Azure-Lastenausgleich, um externen Zugriff auf die virtuellen WAP-Computer zu bieten, und einen internen Lastenausgleich, um die Last auf die AD FS-Server in der Farm zu verteilen.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.

  • Übergeben Sie an die AD FS/WAP-Server nur Datenverkehr, der am Port 443 (HTTPS) ankommt.Only pass traffic appearing on port 443 (HTTPS) to the AD FS/WAP servers.

  • Geben Sie dem Lastenausgleich eine statische IP-Adresse.Give the load balancer a static IP address.

  • Erstellen Sie einen Integritätstest, indem Sie HTTP für /adfs/probe verwenden.Create a health probe using HTTP against /adfs/probe. Weitere Informationen finden Sie unter Hardware Load Balancer Health Checks and Web Application Proxy/AD FS 2012 R2 (Hardware-Load Balancer-Integritätsprüfungen und Webanwendungsproxy/AD FS 2012 R2).For more information, see Hardware Load Balancer Health Checks and Web Application Proxy / AD FS 2012 R2.

    Hinweis

    AD FS-Server verwenden das SNI-Protokoll (Server Name Indication), daher schlägt ein Versuch, den Test über einen HTTPS-Endpunkt aus dem Lastenausgleich auszuführen, fehl.AD FS servers use the Server Name Indication (SNI) protocol, so attempting to probe using an HTTPS endpoint from the load balancer fails.

  • Fügen Sie einen DNS-A-Datensatz zu der Domäne für den AD FS-Lastenausgleich hinzu.Add a DNS A record to the domain for the AD FS load balancer. Geben Sie die IP-Adresse des Lastenausgleichs an, und geben sie ihm einen Namen in der Domäne (z.B. „adfs.contoso.com“).Specify the IP address of the load balancer, and give it a name in the domain (such as adfs.contoso.com). Dies ist der Name, den Clients und WAP-Server verwenden, um auf die AD FS-Serverfarm zuzugreifen.This is the name clients and the WAP servers use to access the AD FS server farm.

Sie können entweder SQL Server oder die interne Windows-Datenbank verwenden, um die AD FS-Konfigurationsinformationen zu speichern.You can use either SQL Server or the Windows Internal Database to hold AD FS configuration information. Die interne Windows-Datenbank bietet grundlegende Redundanz.The Windows Internal Database provides basic redundancy. Änderungen werden direkt nur in eine der AD FS-Datenbanken im AD FS-Cluster geschrieben, während die anderen Server Pullreplikation verwenden, um ihre Datenbanken auf dem neuesten Stand zu halten.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. Wird SQL Server verwendet, können vollständige Datenbankredundanz und hohe Verfügbarkeit bereitgestellt werden, indem Failoverclustering oder Spiegelung verwendet wird.Using SQL Server can provide full database redundancy and high availability using failover clustering or mirroring.

Überlegungen zur VerwaltbarkeitManageability considerations

DevOps-Mitarbeiter sollten darauf vorbereitet sein, die folgenden Aufgaben auszuführen:DevOps staff should be prepared to perform the following tasks:

  • Verwalten der Verbundserver, einschließlich Verwalten der AD FS-Farm, Verwalten der Vertrauensrichtlinien auf den Verbundservern und Verwalten der Zertifikate, die von den Verbunddiensten verwendet werdenManaging 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.
  • Verwalten der WAP-Server, einschließlich Verwalten der WAP-Farm und -ZertifikateManaging the WAP servers including managing the WAP farm and certificates.
  • Verwalten von Webanwendungen, einschließlich Konfigurieren der vertrauenden Seiten, der Authentifizierungsmethoden und der AnspruchszuordnungenManaging web applications including configuring relying parties, authentication methods, and claims mappings.
  • Sichern der AD FS-KomponentenBacking up AD FS components.

SicherheitshinweiseSecurity considerations

Da für AD FS HTTPS verwendet wird, müssen Sie darauf achten, dass die NSG-Regeln für das Subnetz, in dem die virtuellen Computer auf Webebene enthalten sind, HTTPS-Anforderungen zulassen.AD FS uses HTTPS, so make sure that the NSG rules for the subnet containing the web tier VMs permit HTTPS requests. Diese Anforderungen können aus dem lokalen Netzwerk, aus den Subnetzen, die die Webebene, die Geschäftsebene, die Datenebene, die private DMZ oder die öffentliche DMZ enthalten, oder aus dem Subnetz stammen, das die AD FS-Server enthält.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.

Verhindern Sie, dass AD FS-Server direkt für das Internet verfügbar gemacht werden.Prevent direct exposure of the AD FS servers to the Internet. AD FS-Server sind zur Domäne gehörende Computer, die die vollständige Autorisierung haben, Sicherheitstoken zu gewähren.AD FS servers are domain-joined computers that have full authorization to grant security tokens. Wenn ein Server kompromittiert ist, kann ein böswilliger Benutzer Token für Vollzugriff auf alle Webanwendungen und alle Verbundserver ausgeben, die durch AD FS geschützt sind.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. Muss Ihr System Anforderungen von externen Benutzern verarbeiten, die nicht über vertrauenswürdige Partnerwebsites zugreifen, sollten Sie diese Anforderungen mit WAP-Servern verarbeiten.If your system must handle requests from external users not connecting from trusted partner sites, use WAP servers to handle these requests. Weitere Informationen hierzu finden Sie unter Where to Place a Federation Server Proxy (Platzieren eines Verbundserverproxys).For more information, see Where to Place a Federation Server Proxy.

Platzieren Sie AD FS-Server und WAP-Server in getrennten Subnetzen mit jeweils eigener Firewall.Place AD FS servers and WAP servers in separate subnets with their own firewalls. Sie können NSG-Regeln verwenden, um Firewallregeln zu definieren.You can use NSG rules to define firewall rules. Alle Firewalls müssen Datenverkehr über den Port 443 (HTTPS) zulassen.All firewalls should allow traffic on port 443 (HTTPS).

Beschränken Sie direkten Anmeldezugriff auf die AD FS- und WAP-Server.Restrict direct sign in access to the AD FS and WAP servers. Nur DevOps-Mitarbeiter sollten Verbindungen herstellen können.Only DevOps staff should be able to connect. Binden Sie die WAP-Server nicht in die Domäne ein.Do not join the WAP servers to the domain.

Sie sollten erwägen, eine Reihe von virtuellen Netzwerkgeräten zu verwenden, die zu Überwachungszwecken ausführliche Informationen zu dem Datenverkehr protokollieren, der in Ihrem virtuellen Netzwerk empfangen wird.Consider using a set of network virtual appliances that logs detailed information on traffic traversing the edge of your virtual network for auditing purposes.

Bereitstellen der LösungDeploy the solution

Eine Bereitstellung für diese Architektur ist auf GitHub verfügbar.A deployment for this architecture is available on GitHub. Beachten Sie, dass die gesamte Bereitstellung bis zu zwei Stunden dauern kann. Dieser Vorgang umfasst die Erstellung des VPN-Gateways und die Ausführung der Skripts, mit denen Active Directory und AD FS konfiguriert werden.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.

VoraussetzungenPrerequisites

  1. Führen Sie das Klonen, Forken oder Herunterladen der ZIP-Datei für das GitHub-Repository durch.Clone, fork, or download the zip file for the GitHub repository.

  2. Installieren Sie Azure CLI 2.0.Install Azure CLI 2.0.

  3. Installieren Sie das npm-Paket mit den Azure Bausteinen.Install the Azure building blocks npm package.

    npm install -g @mspnp/azure-building-blocks
    
  4. Melden Sie sich über eine Eingabeaufforderung, eine Bash-Eingabeaufforderung oder die PowerShell-Eingabeaufforderung folgendermaßen bei Ihrem Azure-Konto an:From a command prompt, bash prompt, or PowerShell prompt, sign into your Azure account as follows:

    az login
    

Bereitstellen des simulierten lokalen RechenzentrumsDeploy the simulated on-premises datacenter

  1. Navigieren Sie zum Ordner adfs des GitHub-Repositorys.Navigate to the adfs folder of the GitHub repository.

  2. Öffnen Sie die Datei onprem.json .Open the onprem.json file. Suchen Sie nach Instanzen von adminPassword, Password und SafeModeAdminPassword, und aktualisieren Sie die Kennwörter.Search for instances of adminPassword, Password, and SafeModeAdminPassword and update the passwords.

  3. Führen Sie den folgenden Befehl aus, und warten Sie, bis die Bereitstellung abgeschlossen ist:Run the following command and wait for the deployment to finish:

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

Bereitstellen der Azure-InfrastrukturDeploy the Azure infrastructure

  1. Öffnen Sie die Datei azure.json .Open the azure.json file. Suchen Sie nach Instanzen von adminPassword und Password, und fügen Sie Werte für die Kennwörter hinzu.Search for instances of adminPassword and Password and add values for the passwords.

  2. Führen Sie den folgenden Befehl aus, und warten Sie, bis die Bereitstellung abgeschlossen ist:Run the following command and wait for the deployment to finish:

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

Einrichten der AD FS-FarmSet up the AD FS farm

  1. Öffnen Sie die Datei adfs-farm-first.json .Open the adfs-farm-first.json file. Suchen Sie nach AdminPassword, und ersetzen Sie das Standardkennwort.Search for AdminPassword and replace the default password.

  2. Führen Sie den folgenden Befehl aus:Run the following command:

    azbb -s <subscription_id> -g <resource group> -l <location> -p adfs-farm-first.json --deploy
    
  3. Öffnen Sie die Datei adfs-farm-rest.json .Open the adfs-farm-rest.json file. Suchen Sie nach AdminPassword, und ersetzen Sie das Standardkennwort.Search for AdminPassword and replace the default password.

  4. Führen Sie den folgenden Befehl aus, und warten Sie, bis die Bereitstellung abgeschlossen ist: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
    

Konfigurieren von AD FS (Teil 1)Configure AD FS (part 1)

  1. Öffnen Sie eine Remotedesktopsitzung mit dem virtuellen Computer mit dem Namen ra-adfs-jb-vm1. Dies ist die Jumpbox-VM.Open a remote desktop session to the VM named ra-adfs-jb-vm1, which is the jumpbox VM. Der Benutzername lautet testuser.The user name is testuser.

  2. Öffnen Sie über die Jumpbox eine Remotedesktopsitzung mit dem virtuellen Computer ra-adfs-proxy-vm1.From the jumpbox, open a remote desktop session to the VM named ra-adfs-proxy-vm1. Die private IP-Adresse lautet 10.0.6.4.The private IP address is 10.0.6.4.

  3. Führen Sie für diese Remotedesktopsitzung die PowerShell ISE aus.From this remote desktop session, run the PowerShell ISE.

  4. Navigieren Sie in PowerShell zum folgenden Verzeichnis:In PowerShell, navigate to the following directory:

    C:\Packages\Plugins\Microsoft.Powershell.DSC\2.77.0.0\DSCWork\adfs-v2.0
    
  5. Fügen Sie den folgenden Code in einen Skriptbereich ein, und führen Sie ihn aus: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
    

    Geben Sie an der Get-Credential-Eingabeaufforderung das Kennwort ein, das Sie in der Bereitstellungsparameterdatei angegeben haben.At the Get-Credential prompt, enter the password that you specified in the deployment parameter file.

  6. Führen Sie den folgenden Befehl aus, um den Status der DSC-Konfiguration zu überwachen:Run the following command to monitor the progress of the DSC configuration:

    Get-DscConfigurationStatus
    

    Es kann mehrere Minuten dauern, um Konsistenz zu erzielen.It can take several minutes to reach consistency. Während dieses Zeitraums werden unter Umständen Fehler für den Befehl angezeigt.During this time, you may see errors from the command. Wenn die Konfiguration erfolgreich ist, sollte die Ausgabe etwa wie folgt aussehen: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
    

Konfigurieren von AD FS (Teil 2)Configure AD FS (part 2)

  1. Öffnen Sie über die Jumpbox eine Remotedesktopsitzung mit dem virtuellen Computer ra-adfs-proxy-vm2.From the jumpbox, open a remote desktop session to the VM named ra-adfs-proxy-vm2. Die private IP-Adresse lautet 10.0.6.5.The private IP address is 10.0.6.5.

  2. Führen Sie für diese Remotedesktopsitzung die PowerShell ISE aus.From this remote desktop session, run the PowerShell ISE.

  3. Navigieren Sie zum folgenden Verzeichnis:Navigate to the following directory:

    C:\Packages\Plugins\Microsoft.Powershell.DSC\2.77.0.0\DSCWork\adfs-v2.0
    
  4. Fügen Sie Folgendes in einen Skriptbereich ein, und führen Sie das Skript aus: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
    

    Geben Sie an der Get-Credential-Eingabeaufforderung das Kennwort ein, das Sie in der Bereitstellungsparameterdatei angegeben haben.At the Get-Credential prompt, enter the password that you specified in the deployment parameter file.

  5. Führen Sie den folgenden Befehl aus, um den Status der DSC-Konfiguration zu überwachen:Run the following command to monitor the progress of the DSC configuration:

    Get-DscConfigurationStatus
    

    Es kann mehrere Minuten dauern, um Konsistenz zu erzielen.It can take several minutes to reach consistency. Während dieses Zeitraums werden unter Umständen Fehler für den Befehl angezeigt.During this time, you may see errors from the command. Wenn die Konfiguration erfolgreich ist, sollte die Ausgabe etwa wie folgt aussehen: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
    

    Es kann vorkommen, dass ein DSC-Fehler auftritt.Sometimes this DSC fails. Wenn bei der Statusprüfung Status=Failure und Type=Consistency angezeigt werden, können Sie versuchen, Schritt 4 erneut auszuführen.If the status check shows Status=Failure and Type=Consistency, try re-running step 4.

Anmelden an AD FSSign into AD FS

  1. Öffnen Sie über die Jumpbox eine Remotedesktopsitzung mit dem virtuellen Computer ra-adfs-adfs-vm1.From the jumpbox, open a remote desktop session to the VM named ra-adfs-adfs-vm1. Die private IP-Adresse lautet 10.0.5.4.The private IP address is 10.0.5.4.

  2. Führen Sie die Schritte unter Enable the Idp-Initiated Sign on page (Aktivieren der vom Identitätsanbieter initiierten Anmeldeseite) aus.Follow the steps in Enable the Idp-Initiated Sign on page to enable the sign-on page.

  3. Navigieren Sie von der Jumpbox zu https://adfs.contoso.com/adfs/ls/idpinitiatedsignon.htm.From the jump box, browse to https://adfs.contoso.com/adfs/ls/idpinitiatedsignon.htm. Unter Umständen wird eine Zertifikatwarnung angezeigt, die Sie für diesen Test ignorieren können.You may receive a certificate warning that you can ignore for this test.

  4. Vergewissern Sie sich, dass die Anmeldeseite von Contoso Corporation angezeigt wird.Verify that the Contoso Corporation sign-in page appears. Melden Sie sich als contoso\testuser an.Sign in as contoso\testuser.