Konfiguration der Zertifizierungsstelle

Dieser Artikel beschreibt die erweiterte Konfiguration des Federated Authentication Service (FAS) zur Integration mit Zertifizierungsstellen-Servern (CA). Die meisten dieser Konfigurationen werden von der FAS-Verwaltungskonsole nicht unterstützt. Die Anweisungen verwenden die von FAS bereitgestellten PowerShell-APIs. Sie sollten über grundlegende PowerShell-Kenntnisse verfügen, bevor Sie die Anweisungen in diesem Artikel ausführen.

Einrichten mehrerer Zertifizierungsstellen-Server für die Verwendung in FAS

Sie können die FAS-Verwaltungskonsole verwenden, um FAS mit mehreren Zertifizierungsstellen zu konfigurieren, während Sie eine Regel erstellen oder bearbeiten:

Regel mit zwei Zertifizierungsstellen bearbeiten.

Alle von Ihnen ausgewählten Zertifizierungsstellen müssen die Zertifikatvorlage Citrix_SmartcardLogon veröffentlichen (oder die Vorlage, die Sie in Ihrer Regel ausgewählt haben).

Wenn eine der Zertifizierungsstellen, die Sie verwenden möchten, die gewünschte Vorlage nicht veröffentlicht, führen Sie den Schritt Einrichten einer Zertifizierungsstelle für die Zertifizierungsstelle aus.

Hinweis:

Sie müssen den Schritt Diesen Dienst autorisieren nicht für jede Zertifizierungsstelle ausführen, da das in diesem Schritt konfigurierte Autorisierungszertifikat bei jeder Ihrer Zertifizierungsstellen verwendet werden kann.

Erwartete Verhaltensänderungen

Nachdem Sie den FAS-Server mit mehreren Zertifizierungsstellen-Servern konfiguriert haben, wird die Generierung von Benutzerzertifikaten auf alle konfigurierten Zertifizierungsstellen-Server verteilt. Wenn einer der konfigurierten Zertifizierungsstellen-Server ausfällt, wechselt der FAS-Server außerdem zu einem anderen verfügbaren Zertifizierungsstellen-Server.

Konfigurieren der Microsoft-Zertifizierungsstelle für den TCP-Zugriff

Standardmäßig verwendet die Microsoft-Zertifizierungsstelle DCOM für den Zugriff. Dies kann bei der Implementierung von Firewall-Sicherheit zu Komplexitäten führen, daher bietet Microsoft die Möglichkeit, auf einen statischen TCP-Port umzuschalten. Verwenden Sie auf der Microsoft-Zertifizierungsstelle Start>Ausführen>dcomcnfg.exe, um das DCOM-Konfigurationsfenster zu öffnen, erweitern Sie Computer>Mein Computer>DCOM-Konfiguration, um den Knoten CertSrv-Anforderung anzuzeigen, und bearbeiten Sie dann die Eigenschaften der DCOM-Anwendung CertSrv-Anforderung:

lokalisiertes Bild

Ändern Sie die “Endpunkte”, um einen statischen Endpunkt auszuwählen und eine TCP-Portnummer anzugeben (900 in der obigen Grafik).

Starten Sie die Microsoft-Zertifizierungsstelle neu und senden Sie eine Zertifikatanforderung. Wenn Sie netstat –a –n –b ausführen, sollten Sie sehen, dass certsvr jetzt auf Port 900 lauscht:

lokalisiertes Bild

Es ist nicht erforderlich, den FAS-Server (oder andere Maschinen, die die Zertifizierungsstelle verwenden) zu konfigurieren, da DCOM eine Verhandlungsphase über den RPC-Port hat. Wenn ein Client DCOM verwenden muss, stellt er eine Verbindung zum DCOM-RPC-Dienst auf dem Zertifikatserver her und fordert Zugriff auf einen bestimmten DCOM-Server an. Dies führt dazu, dass Port 900 geöffnet wird, und der DCOM-Server weist den FAS-Server an, wie er sich verbinden soll.

Benutzerzertifikate vorab generieren

Die Anmeldezeit für Benutzer wird erheblich verbessert, wenn Benutzerzertifikate innerhalb des FAS-Servers vorab generiert werden. Die folgenden Abschnitte beschreiben, wie dies für einzelne oder mehrere FAS-Server erfolgen kann.

Eine Liste der Active Directory-Benutzer abrufen

Sie können die Zertifikatgenerierung verbessern, indem Sie das AD abfragen und die Liste der Benutzer in einer Datei (z. B. einer .csv-Datei) speichern, wie im folgenden Beispiel gezeigt.

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
}
<!--NeedCopy-->

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

Das Argument SearchBase schränkt den Teil des AD ein, der nach Benutzern durchsucht werden soll. Sie können dies weglassen, wenn Sie alle Benutzer im AD einschließen möchten. Hinweis: Diese Abfrage kann eine große Anzahl von Benutzern zurückgeben.

Die CSV-Datei sieht ungefähr so aus:

lokalisiertes Bild

FAS-Server

Das folgende PowerShell-Skript nimmt die zuvor generierte Benutzerliste und erstellt eine Liste von 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
    }
}
<!--NeedCopy-->

Wenn Sie mehr als einen FAS-Server haben, wird das Zertifikat eines bestimmten Benutzers zweimal generiert: einmal auf dem Hauptserver und einmal auf dem Failover-Server.

Das obige Skript ist für eine Regel namens ‘default’ ausgelegt. Wenn Sie einen anderen Regelnamen haben (z. B. ‘hello’), ändern Sie einfach die $rule-Variable im Skript.

lokalisiertes Bild

Registrierungsstellen-Zertifikate erneuern

Wenn mehr als ein FAS-Server verwendet wird, können Sie ein FAS-Autorisierungszertifikat erneuern, ohne angemeldete Benutzer zu beeinträchtigen.

Hinweis:

Sie können die GUI auch verwenden, um FAS erneut zu autorisieren:

lokalisiertes Bild

Führen Sie die folgende Sequenz aus:

  1. Erstellen Sie ein neues Autorisierungszertifikat: New-FasAuthorizationCertificate

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

  3. Versetzen Sie den FAS-Server in den Wartungsmodus: Set-FasServer –Address <FAS server> -MaintenanceMode $true

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

  5. Nehmen Sie den FAS-Server aus dem Wartungsmodus: Set-FasServer –Address <FAS server> -MaintenanceMode $false

  6. Löschen Sie das alte Autorisierungszertifikat: Remove-FasAuthorizationCertificate

Verwandte Informationen

Konfiguration der Zertifizierungsstelle