SCEPmanClient

SCEPmanClient ist ein PowerShell-Modul, das zur Interaktion mit SCEPmans REST-API gedacht ist. Da es plattformunabhängig ist und mit Windows PowerShell v5 kompatibel ist, können Sie dieses Modul verwenden, um Zertifikate für alle Anwendungsfälle anzufordern, für die die REST-API verwendet werden kann:

  • Automatische Ausstellung von Serverzertifikaten

  • Clientzertifikate für nicht verwaltete Geräte

  • Bereitstellung von Zertifikaten für Linux-Geräte

Installation

Das SCEPmanClient-Modul ist im PowerShell Gallery verfügbar und kann mit folgendem Befehl installiert werden:

Install-Module -Name SCEPmanClient
circle-info

Befolgen Sie Microsofts Anleitung, wie PowerShell auf Linuxarrow-up-right oder MacOSarrow-up-right.

Voraussetzungen

Damit das Modul wie erwartet funktioniert, müssen Sie eine kleine Änderung an Ihrer SCEPman-Bereitstellung vornehmen:

1

Startseiten-URL hinzufügen

Fügen Sie SCEPmans App-Service-URL hinzu: Navigieren Sie zu den Branding & Eigenschaften Abschnitt der App-Registrierung. Fügen Sie SCEPmans App-Service-URL in das Feld Startseiten-URL ein:

Dies ist erforderlich, damit das Modul automatisch die Client-ID der App-Registrierung nachschlagen kann, die für das Abrufen des Zugriffstokens benötigt wird.

2

Azure PowerShell erlauben, mit der App-Registrierung zu interagieren

Navigieren Sie in der App-Registrierung zu Eine API freigeben und erstellen Sie einen benutzerdefinierten Bereich (Scope), der zur Autorisierung der Client-ID verwendet werden kann 1950a258-227b-4e31-a9cf-717495945fc2 (Microsoft Azure PowerShell)

Beispielinformationen für einen benutzerdefinierten API-Bereich

Nachdem ein API-Bereich erstellt wurde, kann die Azure PowerShell-Anwendung autorisiert werden:

Autorisierte Microsoft Azure PowerShell-Anwendung
3

EST-Endpunkt aktivieren

Berechtigungen

SCEPman hat verschiedene Rollen, die das Einschreiben unterschiedlicher Arten von Zertifikaten erlauben. Sie können diese in der SCEPman-api (Standardname) Enterprise-Anwendung:

CSR DB-Anforderer

Diese Rolle ist standardmäßig nur Dienstprinzipalen (z. B. App-Registrierungen) zuweisbar und erlaubt das Anfordern von Zertifikaten mit beliebigen Subject- und Verwendungsangaben.

API-Registrierungchevron-right

CSR Selbstbedienung

Diese Rolle kann Benutzern zugewiesen werden und erlaubt das Einschreiben von Zertifikaten mit folgenden Einschränkungen:

  • Nur ClientAuth EKU

  • Benutzerzertifikate müssen die UPN des Benutzers entweder im Subject oder im UPN Subject Alternative Name enthalten

  • Gerätezertifikate müssen ein Subject oder SAN haben, das SCEPman auf ein Geräteobjekt abbilden kann, das dem authentifizierten Benutzer gehört

Self-Service-Registrierungchevron-right

Beispielverwendungen

Azure-Authentifizierung verwenden

Interaktive Authentifizierung

Wenn ein neues Zertifikat angefordert wird, ohne den Authentifizierungsmechanismus anzugeben, wird der Benutzer standardmäßig interaktiv authentifiziert. Durch die Verwendung des -SubjectFromUserContext Parameters werden das Subject des Zertifikats und der UPN SAN automatisch basierend auf dem Kontext des angemeldeten Benutzers ausgefüllt:

Geräte-Anmeldung

Wenn Sie ein neues Zertifikat auf einem System ohne Desktopumgebung anfordern möchten, können Sie den -DeviceCode Parameter verwenden, um die eigentliche Authentifizierung in einer anderen Sitzung durchzuführen:

Authentifizierung mit Dienstprinzipal

In vollständig automatisierten Szenarien kann eine App-Registrierung zur Authentifizierung verwendet werden. Das Ableiten des Subjects aus dem authentifizierten Kontext ist in diesem Fall nicht möglich.

Parameter-Splatting macht die Ausführung außerdem lesbarer:

Authentifizieren mit Zertifikaten

Sobald ein Zertifikat unter Verwendung eines authentifizierten Kontexts ausgestellt wurde, können wir es zur Erneuerung verwenden, ohne erneut einen Kontext anzugeben.

CertificateBySubject

Die Interaktion mit Keystores ist nur unter Windows möglich

Wenn der CertificateBySubject Parameter angegeben wird, versucht das Modul automatisch, ein geeignetes Zertifikat zur Erneuerung in den CurrentUser und LocalMachine Keystores zu finden.

Der eingegebene Wert wird per Regex mit den Subjects aller verfügbaren Zertifikate abgeglichen.

Ein bestimmtes Zertifikat angeben

CertificateFromFile

Auf Linux-Systemen kann eine Zertifikatserneuerung durchgeführt werden, indem die Pfade zu einem vorhandenen Zertifikat und dessen privatem Schlüssel übergeben werden.

Bei Verwendung eines verschlüsselten privaten Schlüssels werden Sie nach dem Passwort gefragt. Sie können das Passwort des Schlüssels auch direkt mit dem PlainTextPassword Parameter übergeben.

Verwendung von SCEPman mit einer Azure Web Application Firewall

Bei aktivierten SSL-Profilen terminiert die WAF die TLS-Verbindungen. Dies unterbricht wiederum Zertifikatserneuerungen mit EST, da das Verfahren für die Authentifizierung auf mTLS basiert. In diesem Fall kann der UseSCEPRenewal Parameter verwendet werden, um stattdessen eine Zertifikatserneuerung gemäß dem SCEP-Protokoll durchzuführen.

Bitte beachten Sie, dass dies zusätzliche SCEPman-Konfiguration bezüglich des statischen SCEP-Endpunkts erfordert:

  • AppConfig:StaticValidation:Enabled : true

  • AppConfig:StaticValidation:AllowRenewals : true

  • AppConfig:StaticValidation:ReenrollmentAllowedCertificateTypes: Statisch (Je nach den für die Erneuerung vorgesehenen Typen)

Zuletzt aktualisiert

War das hilfreich?