Clientzertifikat
Die Client-Zertifikat-Authentifizierung stellt sicher, dass Client-Rechner beim Verbinden mit PowerShell Universal ein bestimmtes Zertifikat besitzen. Die Zertifikatsprüfung erfolgt während der HTTP-Verhandlung, weshalb sie den gesamten Webserver betrifft und nicht pro Route konfiguriert werden kann.
Ausführliche Informationen zur Client-Zertifikat-Authentifizierung in ASP.NET Core 5.0 finden Sie in der Microsoft-Dokumentation hier.
Client-Zertifikat-Authentifizierung aktivieren
Sie müssen HTTPS-Hosting aktivieren und die Client-Zertifikat-Authentifizierung einschalten. Stellen Sie zunächst sicher, dass Sie ein HTTP-Zertifikat ausgewählt und den ClientCertificateMode auf RequireCertificate gesetzt haben. Diese Einstellungen können in der Datei appsettings.json festgelegt werden.
"Kestrel": {
"Endpoints": {
"HTTPS": {
"Url": "https://*:5000",
"ClientCertificateMode": "RequireCertificate",
"Certificate": {
"Subject": "localhost",
"Store": "My",
"Location": "LocalMachine",
"AllowInvalid": "true"
}
}
},
"RedirectToHttps": "false"
},Als Nächstes müssen Sie die Client-Zertifikat-Authentifizierung aktivieren.
Autorisierung
Sie können die Datei roles.ps1 verwenden, um das vom Client bereitgestellte Zertifikat auszuwerten. Damit kann bestimmt werden, welche Rollen der Benutzer beim Verbinden mit PSU erhält.
Um die während der Autorisierung verfügbaren Eigenschaften auszuwerten, können Sie die an die Rollenrichtlinien-Funktionen übergebene Variable $user serialisieren.
Sie erhalten Informationen über das Zertifikat innerhalb des Benutzerobjekts, ähnlich wie unten dargestellt.
Sie können die Ansprüche mit der Methode HasClaim auswerten. Nachfolgend ein Beispiel für die Prüfung des Fingerabdrucks des Zertifikats.
Zuletzt aktualisiert
War das hilfreich?