Konfiguration der Zertifizierungsstelle
Dieser Artikel beschreibt die erweiterte Konfiguration des Federated Authentication Service (FAS) zur Integration mit Zertifizierungsstellenservern, die von der FAS-Verwaltungskonsole nicht unterstützt werden. Die Anweisungen verwenden PowerShell-APIs, die von FAS bereitgestellt werden. Sie sollten über grundlegende PowerShell-Kenntnisse verfügen, bevor Sie die Anweisungen in diesem Artikel ausführen.
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. Öffnen Sie auf der Microsoft-Zertifizierungsstelle das DCOM-Konfigurationsfenster und bearbeiten Sie die Eigenschaften der DCOM-Anwendung „CertSrv Request“:
Ä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 übermitteln Sie eine Zertifikatanforderung. Wenn Sie
netstat –a –n –b ausführen, sollten Sie sehen, dass certsvr jetzt auf Port 900 lauscht:
Es ist nicht erforderlich, den FAS-Server (oder andere Maschinen, die die Zertifizierungsstelle verwenden) zu konfigurieren, da DCOM eine Aushandlungsphase ü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 den FAS-Server anweist, wie er sich verbinden soll.
Benutzerzertifikate vorab generieren
Die Anmeldezeit für Benutzer wird erheblich verbessert, wenn Benutzerzertifikate auf dem FAS-Server vorab generiert werden. Die folgenden Abschnitte beschreiben, wie dies für einzelne oder mehrere FAS-Server erfolgen kann.
Liste der Active Directory-Benutzer abrufen
Sie können die Zertifikatgenerierung verbessern, indem Sie das AD abfragen und die Benutzerliste 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
}
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 „enabled“ aufzulisten.
Das Argument SearchBase schränkt den Teil des AD ein, in dem nach Benutzern gesucht 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 etwa so aus:
FAS-Server
Das folgende PowerShell-Skript übernimmt 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
}
}
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 (zum Beispiel 'hello'), ändern Sie einfach die Variable $rule im Skript.
Registrierungsstellenzertifikate 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 FAS auch über die GUI erneut autorisieren:
Führen Sie die folgende Sequenz aus:
-
Erstellen Sie ein neues Autorisierungszertifikat:
New-FasAuthorizationCertificate -
Notieren Sie die GUID des neuen Autorisierungszertifikats, wie zurückgegeben von:
Get-FasAuthorizationCertificate -
Versetzen Sie den FAS-Server in den Wartungsmodus:
Set-FasServer –Address <FAS server> -MaintenanceMode $true -
Tauschen Sie das neue Autorisierungszertifikat aus:
Set-FasCertificateDefinition –AuthorizationCertificate <GUID> -
Nehmen Sie den FAS-Server aus dem Wartungsmodus:
Set-FasServer –Address <FAS server> -MaintenanceMode $false -
Löschen Sie das alte Autorisierungszertifikat:
Remove-FasAuthorizationCertificate
Zugehörige Informationen
-
Der Artikel Install and configure ist die primäre Referenz für die FAS-Installation und -Konfiguration.
-
Die gängigen Bereitstellungen des Federated Authentication Service werden im Artikel Deployment architectures zusammengefasst.
-
Weitere „How-to“-Artikel werden im Artikel Advanced configuration vorgestellt.
