Konfiguration der Zertifizierungsstelle

Dieser Abschnitt beschreibt die erweiterte Konfiguration des Verbundauthentifizierungsdiensts (Federated Authentication Service, FAS) für die Integration mit Zertifizierungsstellenservern. Die meisten dieser Konfigurationen werden von der FAS-Verwaltungskonsole nicht unterstützt. In den Anweisungen werden PowerShell-APIs verwendet, die der Verbundauthentifizierungsdienst bietet. Sie müssen über grundlegende Kenntnisse von PowerShell verfügen, bevor Sie die Anweisungen in diesem Artikel ausführen.

Einrichten mehrerer Zertifizierungsstellenserver für die Verwendung im FAS

Sie können mit der FAS-Verwaltungskonsole den Verbundauthentifizierungsdienst mit mehreren Zertifizierungsstellen (ZS) konfigurieren, während Sie eine Regel erstellen oder bearbeiten:

Bearbeiten einer Regel mit zwei Zertifizierungsstellen.

Alle ausgewählten Zertifizierungsstellen müssen die Zertifikatvorlage Citrix_SmartcardLogon veröffentlichen (bzw. die in Ihrer Regel ausgewählte Vorlage).

Wenn eine der von Ihnen zu verwendenden Zertifizierungsstellen die gewünschte Vorlage nicht veröffentlicht, führen Sie den Schritt Eine Zertifizierungsstelle einrichten für die Zertifizierungsstelle aus.

Hinweis:

Sie müssen den Schritt Autorisieren dieses Diensts nicht für jede Zertifizierungsstelle ausführen, da das in diesem Schritt konfigurierte Autorisierungszertifikat von allen Zertifizierungsstellen verwendet werden kann.

Erwartete Verhaltensänderungen

Wenn Sie den FAS-Server mit mehreren Zertifizierungsstellenservern konfiguriert haben, wird die Generierung von Benutzerzertifikaten auf alle konfigurierten Zertifizierungsstellenserver verteilt. Wenn einer der konfigurierten CA-Server ausfällt, wechselt der FAS-Server zu einem anderen verfügbaren CA-Server.

Konfigurieren der Microsoft-Zertifizierungsstelle für TCP-Zugriff

FAS greift mithilfe von DCOM auf die Microsoft-Zertifizierungsstelle zu. DCOM verwendet Port 135, um den Port zu ermitteln, auf dem der Dienst lauscht. Standardmäßig wird der Listening-Port dynamisch zugewiesen. Dies kann zu einer komplexen Situation bei der Implementierung der Firewallsicherheit führen. Daher hat Microsoft die Möglichkeit eingerichtet, einen statischen Port zu konfigurieren. Um einen statischen Port auf Microsoft CA zu konfigurieren, wählen Sie Start > Ausführen > dcomcnfg.exe, um das DCOM-Konfigurationsfenster zu öffnen. Erweitern Sie Computer > Mein Computer > DCOM-Konfiguration, um den CertSrv-Anforderungsknoten anzuzeigen. Bearbeiten Sie dann die Eigenschaften der CertSrv Request DCOM-Anwendung:

Lokalisierte Abbildung

Ändern Sie die Endpunkte, indem Sie einen statischen Endpunkt auswählen, und geben Sie eine TCP-Portnummer ein (900 in der Abbildung oben).

In diesem Beispiel muss die Firewall Port 135 und Port 900 zulassen.

Starten Sie die Microsoft-Zertifizierungsstelle neu, um die Änderung zu übernehmen.

Sie brauchen den FAS-Server (bzw. andere Maschinen, die die Zertifizierungsstelle verwenden) nicht zu konfigurieren, da DCOM durch Verwendung des RPC-Ports 135 eine Aushandlungsphase hat. Wenn ein Client DCOM verwenden muss, stellt er eine Verbindung zum DCOM RPC-Dienst auf dem Server her und fordert Zugriff auf einen bestimmten DCOM-Server an. Dadurch wird Port 900 (in diesem Beispiel) geöffnet und der DCOM-Server weist den Client an, eine Verbindung zu diesem Port herzustellen.

Vorabgenerieren von Benutzerzertifikaten

Die Anmeldung erfolgt für Benutzer erheblich schneller, wenn Benutzerzertifikate im FAS-Server vorab generiert werden. In den folgenden Abschnitten wird die erforderliche Vorgehensweise für einen oder mehrere FAS-Server beschrieben.

Abrufen einer Liste der Active Directory-Benutzer

Sie können die Zertifikatgenerierung verbessern, indem Sie eine Liste der Benutzer von Active Directory abrufen und als Datei (z. B. als CSV-Datei) speichern, wie im folgenden Beispiel dargestellt.

Import-Module ActiveDirectory $searchbase = "cn=users,dc=bvt,dc=local" # AD User Base to Look for Users, leave it blank to search all $filename = "user_list.csv" # Filename to save if ($searchbase -ne ""){ Get-ADUser -Filter {(UserPrincipalName -ne "null") -and (Enabled -eq "true")} -SearchBase $searchbase -Properties UserPrincipalName | Select UserPrincipalName | Export-Csv -NoTypeInformation -Encoding utf8 -delimiter "," $filename } else { Get-ADUser -Filter {(UserPrincipalName -ne "null") -and (Enabled -eq "true")} -Properties UserPrincipalName | Select UserPrincipalName | Export-Csv -NoTypeInformation -Encoding utf8 -delimiter "," $filename }

Get-ADUser ist ein Standard-Cmdlet zum Abfragen einer Benutzerliste. Das obige Beispiel enthält ein Filterargument, um nur Benutzer mit einem UserPrincipalName und dem Kontostatus “aktiviert” aufzulisten.

Mit dem Argument SearchBase können Sie den Teil von Active Directory einschränken, der nach Benutzern durchsucht wird. Sie können dies belassen, wenn Sie alle Benutzer in AD einschließen möchten.

Hinweis:

Diese Abfrage kann eine große Anzahl von Benutzern zurückgeben.

Die CSV-Datei sieht wie folgt aus:

Lokalisierte Abbildung

FAS-Server

Das folgende PowerShell-Skript verwendet die zuvor generierte Benutzerliste und erstellt eine Liste mit Benutzerzertifikaten.

Add-PSSnapin Citrix.A* $csv = "user_list.csv" $rule = "default" # rule/role in your admin console $users = Import-Csv -encoding utf8 $csv foreach ( $user in $users ) { $server = Get-FasServerForUser -UserPrincipalNames $user.UserPrincipalName if( $server.Server -ne $NULL) { New-FasUserCertificate -Address $server.Server -UserPrincipalName $user.UserPrincipalName -CertificateDefinition $rule"_Definition" -Rule $rule } if( $server.Failover -ne $NULL) { New-FasUserCertificate -Address $server.Failover -UserPrincipalName $user.UserPrincipalName -CertificateDefinition $rule"_Definition" -Rule $rule } }

Wenn Sie über mehr als einen FAS-Server verfügen, wird das Zertifikat eines bestimmten Benutzers zweimal generiert: einmal auf dem Hauptserver und das andere auf dem Failoverserver.

Das vorherige Skript ist für eine Regel mit dem Namen “Standard” vorgesehen. Wenn Sie einen anderen Regelnamen haben (z. B. “Hallo”), ändern Sie die Variable $rule im Skript.

Lokalisierte Abbildung

FAS-Autorisierungszertifikat erneuern

Sie können ein FAS-Autorisierungszertifikat erneuern, ohne dass dies zu Störungen für FAS-Benutzer führt.

Verwenden der FAS-Verwaltungskonsole

  • Klicken Sie auf Erneut autorisieren, um eine neue FAS-Autorisierungszertifikatsanforderung zu generieren: Erneut autorisieren

Sie müssen die Anfrage bei der Zertifizierungsstelle manuell genehmigen. Weitere Informationen finden Sie unter Federated Authentication Service autorisieren.

  • Sobald ein neues Autorisierungszertifikat generiert wurde, zeigt FAS an, dass es noch nicht mit Ihren Regeln verknüpft ist. Klicken Sie auf Konfiguration aktualisieren, um das neue Autorisierungszertifikat Ihren Regeln zuzuordnen. Konfiguration aktualisieren

PowerShell verwenden

Führen Sie die folgenden Schritte aus:

  1. Erstellen Sie ein Autorisierungszertifikat: New-FasAuthorizationCertificate

  2. Notieren Sie die GUID des neuen Autorisierungszertifikats, wie sie zurückgegeben wird von: Get-FasAuthorizationCertificate

  3. Tauschen Sie das neue Autorisierungszertifikat aus: Set-FasCertificateDefinition –AuthorizationCertificate <GUID>

  4. Löschen Sie das alte Autorisierungszertifikat: Remove-FasAuthorizationCertificate. Achten Sie darauf, dass Sie die Option DeleteUserCerts $false verwenden, damit die Benutzeraktivität nicht unterbrochen wird.

FAS-Autorisierung aufheben und FAS-Zertifikate löschen

Verwenden der FAS-Verwaltungskonsole

  • Klicken Sie auf den Link Autorisierung aufheben und löschen Sie die Autorisierungszertifikate. Sie können alle Benutzerzertifikate und alle Regeln löschen (zum Löschen von Zertifikaten ist dies jedoch nicht erforderlich). Autorisierung aufheben

  • Wenn Sie die Regeln nicht löschen, erhalten Sie bei der späteren Autorisierung von FAS eine Warnung:Warnung

Die Warnung zeigt an, dass das Autorisierungszertifikat noch nicht mit Ihren Regeln verknüpft ist. Klicken Sie auf Konfiguration aktualisieren, um das neue Autorisierungszertifikat Ihren Regeln zuzuordnen.

PowerShell verwenden

Verwenden Sie den folgenden PowerShell-Befehl, um das Autorisierungszertifikat und die Benutzerzertifikate zu löschen:

$AuthCert = Get-FasAuthorizationCertificate -Address localhost Remove-FasAuthorizationCertificate -Address localhost -Id $AuthCert.Id

Hinweis:

Get-FasAuthorizationCertificate gibt eine Liste von Autorisierungszertifikaten und ausstehenden Autorisierungszertifikatsanforderungen zurück, damit Sie den Wert von $AuthCert überprüfen können, bevor Sie mit Remove-FasAuthorizationCertificate fortfahren.

Sie können das Autorisierungszertifikat entfernen, aber die Benutzerzertifikate behalten, indem Sie den Parameter DeleteUserCerts auf “false” setzen:

Remove-FasAuthorizationCertificate -Address localhost -Id $AuthCert.Id -DeleteUserCerts $false

Die verbleibenden Benutzerzertifikate können von FAS weiterhin für VDA-Anmelde- und Sitzungszertifikate verwendet werden, was bei der Erneuerung der FAS-Autorisierung nützlich ist. Weitere Einzelheiten finden Sie unter FAS-Autorisierungszertifikat erneuern.

  • Sie können Benutzerzertifikate folgendermaßen entfernen:

Remove-FasUserCertificate -Address localhost

Dieser Befehl entfernt alle Benutzerzertifikate vom FAS-Server. Der Befehl verfügt über Optionen zum Filtern der entfernten Zertifikate.

Hinweis:

Wenn FAS ein Autorisierungs- oder Benutzerzertifikat aus seinem internen Speicher entfernt, löscht es auch das zugehörige Schlüsselpaar.

Offline-Autorisierung

Das FAS-Autorisierungszertifikat kann offline mit PowerShell angefordert werden. Dies eignet sich für Organisationen, die nicht möchten, dass ihre Zertifizierungsstelle ein Autorisierungszertifikat über eine Online-Zertifikatsignieranforderung ausstellt.

  1. Führen Sie während der ersten FAS-Konfiguration mit der Verwaltungskonsole nur die ersten beiden Schritte aus: Zertifikatvorlagen bereitstellen und Zertifizierungsstelle einrichten. Vorlagen bereitstellung und Zertifizierungsstelle einrichten

  2. Laden Sie die folgenden PowerShell-Cmdlets auf den FAS-Server:

    Add-PSSnapin Citrix.Authentication.FederatedAuthenticationService.V1`
  3. Generieren Sie das Schlüsselpaar und erstellen Sie die Zertifikatsignieranforderung, indem Sie das folgende PowerShell-Cmdlet auf dem FAS-Server eingeben:

    $AuthCertRequest = New-FasAuthorizationCertificateRequest -Address localhost $AuthCertRequest

    Dies führt zu:

    Ergebnis

    Hinweis:

    Die Eigenschaften des generierten Schlüsselpaares werden durch die FAS-Autorisierungsschlüsselkonfiguration bestimmt. Weitere Einzelheiten finden Sie unter Schutz privater Schlüssel.

  4. Kopieren Sie die Zertifikatsanforderung auf den Datenträger:

    `$AuthCertRequest.CertificateRequest > c:\temp\authcert.csr
  5. Legen Sie Ihrer Zertifizierungsstelle die Zertifikatsanforderungsdatei (in diesem Beispiel authcert.csr) vor, genehmigen Sie die Anforderung und erhalten Sie eine Zertifikatsantwort.

    Die folgenden fünf Schritte beziehen sich speziell auf die Verwendung einer Microsoft Enterprise-Zertifizierungsstelle. Wenden Sie sich bei anderen Zertifizierungsstellen an den Anbieter Ihrer Zertifizierungsstelle, um Hilfe zu erhalten.

    • Fügen Sie auf Ihrem Zertifizierungsstellenserver das MMC-Snap-In “Zertifikatvorlagen” hinzu. Klicken Sie mit der rechten Maustaste auf die Vorlage Citrix_RegistrationAuthority_ManualAuthorization und wählen Sie Vorlage duplizieren aus. Wählen Sie die Registerkarte Allgemein. Ändern Sie den Namen und die Gültigkeitsdauer. In diesem Beispiel lautet der Name Offline_RA und die Gültigkeitsdauer beträgt zwei Jahre:

      Eigenschaften der Vorlage für private Schlüssel

    • Fügen Sie auf Ihrem Zertifizierungsstellenserver das MMC-Snap-In der Zertifizierungsstelle hinzu. Klicken Sie mit der rechten Maustaste auf Zertifikatvorlagen. Wählen Sie Neu und klicken Sie dann auf Auszustellende Zertifikatvorlage. Wählen Sie die Vorlage aus, die Sie erstellt haben.

    • Senden Sie die Zertifikatsignieranforderung an Ihre Zertifizierungsstelle, indem Sie Folgendes in eine PowerShell-Eingabeaufforderung auf dem FAS-Server eingeben:

      certreq -submit -attrib "certificatetemplate:<certificate template from step 5a>" <certificate request file from step 4>

      Zum Beispiel:

      certreq -submit -attrib "certificatetemplate:Offline_RA" C:\temp\authcert.csr

      Das Ausführen des vorhergehenden Befehls führt zu:

      Ergebnis der Zertifikatvorlage

      An diesem Punkt wird möglicherweise ein Fenster mit der Bezeichnung Zertifizierungsstellenliste angezeigt. Die Zertifizierungsstelle in diesem Beispiel hat sowohl die DCOM- (oben) als auch die HTTP-Registrierung (unten) aktiviert. Wählen Sie DCOM, falls verfügbar, und klicken Sie dann auf OK:

      Liste der Zertifizierungsstellen

      Nachdem die Zertifizierungsstelle angegeben wurde, wird der Befehl abgeschlossen und die RequestID angezeigt:

      Status der ausstehenden Zertifikatsanforderung

    • Klicken Sie auf dem Zertifizierungsstellenserver im MMC-Snap-In der Zertifizierungsstelle auf Ausstehende Anforderungen. Suchen Sie die Anforderungs-ID. Klicken Sie mit der rechten Maustaste auf die Anforderung und wählen Sie Ausstellen.

    • Wählen Sie den Knoten Ausgestellte Zertifikate aus. Suchen Sie das ausgestellte Zertifikat (die Anforderungs-ID muss übereinstimmen). Doppelklicken Sie auf das Zertifikat, um es zu öffnen. Wählen Sie die Registerkarte Details. Klicken Sie auf In Datei kopieren. Der Zertifikatexport-Assistent wird gestartet. Klicken Sie auf Weiter. Wählen Sie die folgenden Optionen für das Dateiformat:

      Assistent zum Exportieren von privaten Schlüsselzertifikaten

    Das Format muss Cryptographic Message Syntax Standard – PKCS #7 Certificates (.P7B) sein und Schließen Sie nach Möglichkeit alle Zertifikate in den Zertifizierungspfad ein muss ausgewählt sein.

  6. Kopieren Sie die exportierte Zertifikatsdatei auf den FAS-Server.

  7. Importieren Sie das Registrierungsstellenzertifikat in den FAS-Server, indem Sie das folgende PowerShell-Cmdlet auf dem FAS-Server eingeben:

    Import-FasAuthorizationCertificateResponse -Address localhost -Id $AuthCertRequest.Id -Pkcs7CertificateFile <Certificate file from step 6>

    Zum Beispiel:

    Import-FasAuthorizationCertificateResponse -Address localhost -Id $AuthCertRequest.Id -Pkcs7CertificateFile C:\temp\response.p7b

    Das Ausführen dieses Befehls führt zu:

    FAS-Autorisierungszertifikatantwort importieren

  8. Überprüfen Sie die FAS-Administratorkonsole. Daraus muss hervorgehen, dass FAS nun autorisiert ist.

    Dienst autorisieren

    Hinweis:

    Neben dem Schritt Diesen Dienst autorisieren ist ein grünes Häkchen angeordnet.

  9. Fahren Sie mit der Konfiguration fort, indem Sie eine Regel erstellen. Weitere Einzelheiten finden Sie unter Regeln konfigurieren.

Verwandte Informationen