Verwaltete Identitäten

circle-info

Dieses Feature erfordert Version 2.0 oder höher.

SCEPman muss mit Ihrem Entra-Verzeichnis und den Intune-Endpunkten interagieren, um die Zertifikats- und OCSP-Validierung von Benutzern und Geräten bereitzustellen. Nach der Bereitstellung hat SCEPman noch nicht die erforderlichen Berechtigungen für den Zugriff auf diese Dienste. Das in diesem Artikel beschriebene PowerShell-Modul fügt der verwalteten Identität des SCEPman App Service die notwendigen Berechtigungen hinzu und schließt die Installation ab.

Zusätzlich fügt das PowerShell-Modul die erforderliche Hintergrundverkabelung für die mit SCEPman 2.0 eingeführte SCEPman Certificate Master-Komponente hinzu. Falls Sie von SCEPman 1.x auf SCEPman 2.x aktualisiert haben, fügt das PowerShell-Modul sogar zwei neue Azure-Ressourcen für die SCEPman Certificate Master-Komponente hinzu.

SCEPman-Installations-PowerShell-Modul herunterladen und ausführen

Egal, ob Sie gerade eine frische SCEPman 2.x-Installation vorgenommen oder gerade von SCEPman 1.x auf SCEPman 2.x aktualisiert haben, und in einigen Fällen nach Änderungen an der Bereitstellungsarchitektur sind die Installationsschritte identisch. Sie laden das SCEPman PowerShell-Modul herunter und führen es aus; es erkennt, was getan werden muss, und schließt die Installation ab. Sie können das SCEPman-Modul so oft ausführen, wie Sie möchten; es fügt nur das hinzu, was noch fehlt.

Voraussetzungen

  • Ein Globaler Administrator Konto für den Mandanten, in dem Sie SCEPman installieren möchten (oder eine andere AAD-Rolle wie Privilegierter Rollenadministrator und Schreibberechtigungen für die Azure-Subscription). Es gibt eine Option, ein Konto zu verwenden, das nur die Anwendungsadministratorrolle hat und die Befehle, die globale Administratorrechte erfordern, später manuell auszuführen.

  • Azure CLIarrow-up-right (auch bekannt als az) installiert. Azure CLI ist in der Azure Cloud Shellarrow-up-rightvorausinstalliert, die bevorzugte Methode, um das Modul auszuführen.

Ausführen des SCEPman-Installations-CMDlets

Aktivierte Homepage

Sobald die Voraussetzungen erfüllt sind, können Sie das SCEPman-Installationsmodul aus der PowerShell-Gallery installieren und dann das CMDlet ausführen, um die SCEPman- und Certificate Master-Installation abzuschließen.

  1. Zuerst müssen Sie zum SCEPman App Service navigieren und auf Standarddomäne klicken (siehe Screenshot unten). Dadurch gelangen Sie zur SCEPman-Homepage.

  1. Führen Sie den auf der Homepage Ihrer SCEPman-Instanz angezeigten PowerShell-Befehl in Ihrer PowerShell oder Azure Cloud Shell aus (siehe Screenshot unten). Dieser enthält einen Parameter zur Identifizierung Ihrer SCEPman-Instanz, sodass der Code idealerweise ohne Benutzerinteraktion ausgeführt werden kann.

circle-exclamation

Deaktivierte Homepage

Wenn Sie die SCEPman-Homepage deaktiviert haben oder das CMDlet erneut ausführen müssen, gehen Sie wie folgt vor:

  1. Fügen Sie den untenstehenden Code in Ihre PowerShell oder Azure Cloud Shell ein:

  1. Beantworten Sie die Eingabeaufforderungen für:

  • Welche Azure-Subscription SCEPman ausführt (falls Sie Zugriff auf mehr als eine haben)

  • Den Namen des SCEPman App Service (nicht erforderlich, wenn Sie den Code von der SCEPman-Homepage verwendet haben)

  1. (Nur bei SCEPman-Upgrades) Sie benötigen zwei zusätzliche Bestätigungen:

  • Den Namen des neuen SCEPman Certificate Master App Service (Sie können den Vorschlag bestätigen, indem Sie Enter drücken oder einen neuen Namen für die Ressource eingeben)

  • Den Namen des neuen Storage-Account-Ressource (auch hier können Sie den Vorschlag bestätigen, indem Sie Enter drücken oder einen neuen Namen für die Ressource eingeben)

Ausführen des SCEPman-Installations-CMDlets ohne globale Administratorrolle

Verwenden Sie das -SkipAppRoleAssignments Flag von Complete-SCEPmanInstallation, um das CMDlet ohne globale Administratorberechtigungen auszuführen. Dadurch wird die Zuordnung der erforderlichen App-Rollen zu den verwalteten Identitäten der SCEPman- und Certificate Master-App Services übersprungen. Sie können die App-Rollen dann später manuell als Globaler Administrator zuweisen. Das CMDlet gibt die erforderlichen Befehle in der Konsole aus.

Überlegungen bei der Verwendung von Deployment Slots

Das SCEPman-Modul aktualisiert die Konfiguration in allen Deployment Slots, sofern Sie ihm nicht mit dem Parameter sagen, nur einen bestimmten Deployment Slot zu verwenden, -DeploymentSlotName (der nicht der Hauptslot sein kann, da dieser technisch gesehen kein Deployment Slot ist). Das Konfigurationsupdate ändert die SCEPman-Einstellungen zu verwenden Managed Identity-Authentifizierung statt Enterprise App-Authentifizierung.

SCEPman 1.x unterstützt keine Managed Identity-Authentifizierung und macht daher Deployment Slots unbrauchbar, die noch eine 1.x-Version ausführen. Wenn Sie also mehrere Deployment Slots haben und nicht alle auf einmal aktualisieren möchten, sollten Sie den Produktionsslot zuletzt aktualisieren -- dessen Upgrade betrifft auch alle anderen Deployment Slots.

Für andere Deployment Slots verwenden Sie den -DeploymentSlotName Parameter, um nur diese einzelnen Deployment Slots anzusprechen. Das sind die PowerShell-Befehle, die auf der Homepage des Deployment Slots angezeigt werden, sodass Sie die Befehle einfach kopieren können.

Sobald alle Ihre Deployment Slots auf 2.x laufen, führen Sie das Complete-SCEPmanInstallation-CMDlet einfach noch einmal aus, und dann verwenden alle Managed Identities.

triangle-exclamation

Überlegungen bei mehrfacher Installation von SCEPman in einem Mandanten

Das CMDlet Complete-SCEPmanInstallation erstellt zwei App-Registrierungen: SCEPman-api und SCEPman-CertMaster. Der Abschnitt „Wie das CMDlet SCEPman Certificate Master konfiguriert"erklärt, was diese App-Registrierungen tun. Das CMDlet verlangt, dass ihre Namen eindeutig sind. Wenn Sie also mehrere SCEPman-Installationen in einem Mandanten haben, teilen sie standardmäßig diese App-Registrierungen. Das bedeutet, dass Benutzer in allen Certificate Mastern dieselben Rollen haben und dass technisch jede Certificate Master-Instanz Zertifikatsanforderungen an jeden SCEPman senden kann (obwohl das nicht passiert, es sei denn, Sie konfigurieren SCEPman Certificate Master entsprechend).

Wenn Sie dieses Verhalten nicht wünschen, beispielsweise weil die SCEPman-Installationen zu unterschiedlichen Teilen Ihrer Organisation gehören, eine SCEPman-Installation eine Vorproduktionsumgebung ist oder Sie eine mehrstufige PKI mit einer SCEPman Root CA und einer SCEPman Issuing CA wünschen, müssen Sie den SCEPman-Instanzen mitteilen, andere App-Registrierungen zu verwenden.

Zu diesem Zweck bietet das Complete-SCEPmanInstallation-CMDlet die beiden Parameter -AzureADAppNameForSCEPman und -AzureADAppNameForCertMaster. Diese Parameter ermöglichen es Ihnen, unterschiedliche Namen für Ihre App-Registrierungen festzulegen. Zum Beispiel könnten Sie das CMDlet für Ihre Root CA so aufrufen: Complete-SCEPmanInstallation -SCEPmanAppServiceName app-scepmanroot -SearchAllSubscriptions -AzureAdAppNameForSCEPman SCEPman-api-root -AzureAdAppNameForCertMaster -SCEPman-CertMaster-root 6>&1

Und dann rufen Sie es ein weiteres Mal für Ihre untergeordnete CA so auf:

Complete-SCEPmanInstallation -SCEPmanAppServiceName app-scepmansub -SearchAllSubscriptions -AzureAdAppNameForSCEPman SCEPman-api-sub -AzureAdAppNameForCertMaster -SCEPman-CertMaster-sub 6>&1

Hintergrunddetails des SCEPman-PowerShell-Moduls

Dieser Abschnitt beschreibt die Funktionsweise des PowerShell-Moduls. Das kann hilfreich sein, wenn Sie eine spezielle Konfiguration haben, die eine Änderung des Skripts erfordert, wenn Sie eine spezielle Berechtigung erteilen müssen, wenn Sie Probleme mit einer SCEPman-Installation beheben oder wenn Sie die inneren Abläufe verstehen möchten, um ein eigenes Installationsskript zu schreiben. Beachten Sie, dass das PowerShell-Modul Open-Source-Software ist. Sie können den Quellcode in seinem GitHub-Repositoryarrow-up-righteinsehen. Pull Requests sind willkommen!

Wir empfehlen, das Cmdlet mit 6>&1auszuführen, das den Informationsstream umleitet und ihn auf dem Bildschirm ausgibt; das gibt mehr Informationen über den Zustand des Programms, als wenn Sie die Umleitung weglassen. Wenn Sie -Verbosehinzufügen, gibt es noch mehr Informationen darüber, was das Skript tut.

Wie das CMDlet SCEPman konfiguriert

Das PowerShell-CMDlet sucht nach dem SCEPman App Service. Der App Service verwendet eine systemzugewiesene verwaltete Identität, die in einer regulären Installation bereits Zugriffsrechte auf das Azure Key Vault von SCEPman hat. Das CMDlet fügt Berechtigungen zum Zugriff auf Microsoft Graph hinzu, um Benutzer und Geräte in AAD und Intune für eingehende OCSP-Anfragen zu suchen, sowie auf Intune selbst, um eingehende SCEP-Anfragen zu verifizieren.

Wie das CMDlet Updates von SCEPman 1.x behandelt

Zusätzlich zum Erteilen der Rechte an SCEPman fügt das Modul beim Durchführen eines Upgrades zwei neue Azure-Ressourcen hinzu:

  • Der SCEPman Certificate Master App Service

  • Das von SCEPman und SCEPman Certificate Master gemeinsam genutzte Storage-Konto für manuell erstellte Zertifikate

Sogar für die Community Edition, die die SCEPman Certificate Master-Komponente nicht verwendet, werden die beiden neuen Ressourcen hinzugefügt. Dies ermöglicht einen einfacheren Wechsel zur Enterprise Edition, falls gewünscht, und verursacht keine zusätzlichen Kosten – das Storage-Konto ist leer und Microsoft berechnet nach Speicherverbrauch, und der Certificate Master App Service teilt einen App Service-Plan mit SCEPman, was ebenfalls keine zusätzlichen Kosten verursacht.

SCEPman 1.x verwendete eine App-Registrierung zur Authentifizierung gegenüber Microsoft Graph und Intune, während SCEPman 2.x seine verwaltete Identität verwenden kann. Das CMDlet stellt auf die verwaltete Identität um, indem es diese Einstellungen ändert:

  • AppConfig:AuthConfig:ApplicationId wird auf eine neu erstellte App-Registrierung ohne irgendwelche Berechtigungen gesetzt. Sie wird zur Authentifizierung verwendet gegen SCEPman, nicht dafür, dass SCEPman sich irgendwo anders authentifiziert. Der alte Wert wird als Sicherung gespeichert unter Backup:AppConfig:AuthConfig:ApplicationId.

  • AppConfig:AuthConfig:ApplicationKey wird gelöscht, der alte Wert wird als Sicherung gespeichert unter Backup:AppConfig:AuthConfig:ApplicationKey. Er wird nicht mehr benötigt, weil SCEPman sich nicht mehr als die Anwendung authentifiziert.

  • AppConfig:AuthConfig:ManagedIdentityEnabledOnUnixTime enthält die Zeit, zu der das CMDlet ausgeführt wurde. SCEPman beschafft ein Token mithilfe der verwalteten Identität erst nach einer kurzen Verzögerung nach Ausführung des CMDlets, weil erst dann die Rollen im Token die korrekten vom CMDlet hinzugefügten Berechtigungen widerspiegeln.

Wie das CMDlet SCEPman Certificate Master konfiguriert

Der SCEPman App Service erlaubt anonymen Zugriff auf seine Homepage, da sie nur nicht-empfindliche, schreibgeschützte Informationen anzeigt. Im Gegensatz dazu ermöglicht die SCEPman Certificate Master-Komponente Benutzern das Ausstellen von Zertifikaten. Daher erlaubt sie nur authentifizierten Zugriff und nur, wenn Sie die richtigen Berechtigungen haben. Dies erfordert eine Azure-App-Registrierung mit delegierten Berechtigungen, um zu sehen, wer angemeldet ist, und mit der richtigen Login-URL-Konfiguration. Das Modul registriert diese App-Registrierung als SCEPman-CertMaster in Ihrem Azure-Mandanten.

Zusätzlich benötigt der SCEPman Certificate Master App Service die Berechtigung, Certificate Signing Requests (CSRs) an den Kern-SCEPman-App Service zu übermitteln, um Zertifikate auszustellen. Der Authentifizierungsmechanismus dahinter basiert auf einer weiteren App-Registrierung: SCEPman-api. SCEPman verwendet SCEPman-api zur Verwaltung der CSR-Übermittlungsberechtigungen. Das Skript registriert SCEPman-api und fügt der verwalteten Identität von SCEPman Certificate Master die Übermittlungsberechtigung hinzu.

circle-info

Im Falle eines Upgrades von SCEPman 1.x auf 2.x und nach erfolgreichem Ausführen des PS-Skripts können Sie die App-Registrierung entfernen, die in SCEPman 1.x verwendet wurde

SCEPman V2.x verwendet zwei neue App-Registrierungen: „SCEPman-api“ und „SCEPman-CertMaster“

Zuletzt aktualisiert

War das hilfreich?