> For the complete documentation index, see [llms.txt](https://docs.scepman.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.scepman.com/de/scepman-bereitstellung/permissions/post-installation-config.md).

# Managed Identities

{% hint style="info" %}
Diese Funktion erfordert Version **2.0** oder höher.
{% endhint %}

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

Zusätzlich fügt das PowerShell-Modul die erforderliche Hintergrundkonfiguration 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 abrufen und ausführen

Ganz gleich, ob Sie gerade eine neue SCEPman-2.x-Installation vorgenommen haben oder von SCEPman 1.x auf SCEPman 2.x aktualisiert haben, und in manchen Fällen nach Änderungen an der Bereitstellungsarchitektur, die Installationsschritte sind dieselben. 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

* A **Global Admin** Konto für den Tenant, in dem Sie SCEPman installieren möchten (oder eine andere AAD-Rolle wie *Administrator privilegierter Rollen* und Schreibberechtigungen für das Azure-Abonnement). Es gibt die Option, ein Konto nur mit der *Anwendungsadministrator* Rolle zu verwenden und die Befehle, für die später manuell Global-Administrator-Berechtigungen erforderlich sind, auszuführen.
* [Azure CLI](https://docs.microsoft.com/en-us/cli/azure/install-azure-cli) (auch bekannt als *az*) installiert. Azure CLI ist vorinstalliert in der [Azure Cloud Shell](https://docs.microsoft.com/en-us/azure/cloud-shell/overview), die bevorzugte Methode, das Modul auszuführen.

### Ausführen des SCEPman-Installations-Cmdlets

#### Aktivierte Startseite

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 Installation von SCEPman und Certificate Master abzuschließen.

1. Navigieren Sie zuerst zum SCEPman-App-Service und klicken Sie auf die Standarddomäne (siehe Screenshot unten). Dadurch gelangen Sie zur SCEPman-Startseite.

<figure><img src="https://2075553437-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LoGejQeUQcw7lqnQ3WX%2Fuploads%2FOpFw5ty3cTxb27sfldRx%2F2024-04-17%2016_16_16.png?alt=media&amp;token=ee0ac055-4107-494d-9990-8a610fbec7f7" alt=""><figcaption></figcaption></figure>

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

![](https://2075553437-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LoGejQeUQcw7lqnQ3WX%2Fuploads%2Fgit-blob-9189fc6b1b39a7ba68b3add0dfe55427083ef43e%2F2022-04-07SCEPmanV2.0AfterNewInstallation.png?alt=media)

{% hint style="warning" %}
Nach Ausführung des Cmdlets kann es auf der SCEPman-Startseite zu "Service not available" oder "502 Server Error" kommen. Bitte warten Sie 2-3 Minuten und aktualisieren Sie die Seite dann erneut.
{% endhint %}

#### Deaktivierte Startseite

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

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

```
Install-Module SCEPman -Scope CurrentUser -Force
Complete-SCEPmanInstallation 6>&1
```

2. Füllen Sie die Eingabeaufforderungen für Folgendes aus:

* Welches Azure-Abonnement SCEPman ausführt (falls Sie Zugriff auf mehr als eines haben)
* Der Name des SCEPman-App-Services (nicht erforderlich, wenn Sie den Code von der SCEPman-Startseite verwendet haben)

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

* Der Name des neuen SCEPman Certificate Master App Service (Sie können den Vorschlag mit Enter bestätigen oder einen neuen Namen für die Ressource eingeben)
* Der Name der neuen Storage Account-Ressource (auch hier können Sie den Vorschlag mit Enter bestätigen oder einen neuen Namen für die Ressource eingeben)

### Ausführen des SCEPman-Installations-Cmdlets ohne Global-Admin-Rolle

Verwenden Sie die *-SkipAppRoleAssignments* Option von Complete-SCEPmanInstallation, um das Cmdlet ohne Global-Admin-Berechtigungen auszuführen. Dadurch wird die Zuweisung der erforderlichen App-Rollen an die verwalteten Identitäten des SCEPman- und des Certificate Master-App-Services übersprungen. Sie können die App-Rollen dann manuell als Global Administrator zuweisen. Das Cmdlet gibt die erforderlichen Befehle in der Konsole aus.

### Überlegungen bei der Verwendung von Bereitstellungs-Slots

Das SCEPman-Modul aktualisiert die Konfiguration in allen Bereitstellungs-Slots, sofern Sie ihm nicht mit dem Parameter `-DeploymentSlotName` (der nicht der Hauptslot sein kann, weil er technisch gesehen kein Bereitstellungs-Slot ist) anweisen, nur einen bestimmten Bereitstellungs-Slot zu verwenden. Das Konfigurationsupdate ändert die SCEPman-Einstellungen auf **verwenden** **Authentifizierung über die verwaltete Identität anstelle der Enterprise-App-Authentifizierung**.

SCEPman 1.x **unterstützt nicht** die Authentifizierung über verwaltete Identität und macht daher die Bereitstellungs-Slots unbrauchbar, die noch eine 1.x-Version ausführen. Wenn Sie also mehrere Bereitstellungs-Slots haben und nicht alle gleichzeitig aktualisieren möchten, sollten Sie den Produktions-Slot zuletzt aktualisieren -- **sein Upgrade wirkt sich auch auf alle anderen Bereitstellungs-Slots aus**.

Für andere Bereitstellungs-Slots verwenden Sie den `-DeploymentSlotName` Parameter, um nur diese einzelnen Bereitstellungs-Slots anzusteuern. Genau dies zeigen die PowerShell-Befehle auf der SCEPman-Startseite des jeweiligen Bereitstellungs-Slots an, sodass Sie die Befehle einfach kopieren können.

Sobald alle Ihre Bereitstellungs-Slots auf 2.x laufen, führen Sie das Cmdlet Complete-SCEPmanInstallation einfach noch einmal aus, und dann verwenden alle verwaltete Identitäten.

{% hint style="danger" %}
Wenn Sie versehentlich einen Bereitstellungs-Slot auf die Authentifizierung über verwaltete Identität aktualisiert haben, der noch SCEPman 1.x ausführt, sehen Sie sich bitte die [Downgrade-Anleitung](https://docs.scepman.com/de/scepman-bereitstellung/permissions/pages/1929588f904471beb3bff59227281768ed2b072e#downgrade-from-2.x-to-1.x) an, um es wieder funktionsfähig zu machen.
{% endhint %}

### Überlegungen bei der mehrfachen Installation von SCEPman in einem Tenant

Das Cmdlet Complete-SCEPmanInstallation erstellt zwei App-Registrierungen: `SCEPman-api` und `SCEPman-CertMaster`. [Abschnitt "Wie das Cmdlet SCEPman Certificate Master konfiguriert](#how-the-cmdlet-configures-scepman-certificate-master)" erläutert, wofür diese App-Registrierungen dienen. Das Cmdlet setzt voraus, dass ihre Namen eindeutig sind. Wenn Sie also mehrere SCEPman-Installationen in einem Tenant haben, teilen sie diese App-Registrierungen standardmäßig. Das bedeutet, dass Benutzer auf allen Certificate Masters dieselben Rollen haben und dass technisch gesehen jede Certificate-Master-Instanz Zertifikatanfragen an beliebige SCEPman-Instanzen senden kann (obwohl das nicht geschieht, sofern Sie SCEPman Certificate Master nicht entsprechend konfigurieren).

Wenn Sie dieses Verhalten nicht möchten, etwa weil die SCEPman-Installationen zu verschiedenen Teilen Ihrer Organisation gehören, oder weil eine SCEPman-Installation eine Vorproduktionsumgebung ist, oder weil 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 Cmdlet Complete-SCEPmanInstallation die beiden Parameter `-AzureADAppNameForSCEPman` und `-AzureADAppNameForCertMaster`. Diese Parameter ermöglichen es Ihnen, unterschiedliche Namen für Ihre App-Registrierungen festzulegen. Beispielsweise könnten Sie das Cmdlet für Ihre Root CA wie folgt 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 Subordinate CA wie folgt 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 interne Funktionsweise des PowerShell-Moduls. Das kann hilfreich sein, wenn Sie eine spezielle Konfiguration haben, die Änderungen am Skript erfordert, wenn Sie eine besondere Berechtigung gewähren müssen, wenn Sie Probleme mit einer SCEPman-Installation beheben oder wenn Sie die interne Funktionsweise verstehen möchten, um ein Installationsskript für Ihr eigenes Projekt zu schreiben. Beachten Sie, dass das PowerShell-Modul Open-Source-Software ist. Sie können den Quellcode in seinem [GitHub-Repository](https://github.com/scepman/scepman-psmodule). Pull Requests sind willkommen!

Wir empfehlen, das Cmdlet mit `6>&1`, das den Informationsstream umleitet und ihn auf dem Bildschirm ausgibt, wodurch Sie mehr Informationen über den Programmstatus erhalten, als wenn Sie die Umleitung weglassen. Wenn Sie `-Verbose`hinzufügen, erhalten Sie 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 systemseitig zugewiesene verwaltete Identität, die in einer regulären Installation bereits Zugriffsrechte für den Azure Key Vault von SCEPman hat. Das Cmdlet fügt Berechtigungen für den Zugriff auf Microsoft Graph hinzu, um nach Benutzern und Geräten in AAD und Intune für eingehende OCSP-Anfragen zu suchen, sowie auf Intune selbst, um eingehende SCEP-Anfragen zu überprüfen.

### Wie das Cmdlet Aktualisierungen von SCEPman 1.x behandelt

Zusätzlich zur Gewährung der Rechte an SCEPman fügt das Modul bei einem Upgrade zwei neue Azure-Ressourcen hinzu:

* Der SCEPman Certificate Master App Service
* Der von SCEPman und SCEPman Certificate Master gemeinsam genutzte Storage Account für manuell erstellte Zertifikate

Auch für die Community Edition, die die SCEPman-Certificate-Master-Komponente nicht verwendet, werden die beiden neuen Ressourcen hinzugefügt. Dadurch kann bei Bedarf einfacher auf die Enterprise Edition umgestellt werden, und es entstehen keine zusätzlichen Kosten -- der Storage Account bleibt leer und Microsoft berechnet dies nach der Menge des Speichers, und der Certificate Master App Service teilt sich einen App Service Plan mit SCEPman, was ebenfalls keine zusätzlichen Kosten verursacht.

SCEPman 1.x verwendete eine App-Registrierung zur Authentifizierung bei Microsoft Graph und Intune, während SCEPman 2.x seine verwaltete Identität verwenden kann. Das Cmdlet wechselt zur verwalteten Identität, indem es diese Einstellungen ändert:

* [AppConfig:AuthConfig:ApplicationId](/de/scepman-konfiguration/application-settings/dependencies-azure-services/azure-ad.md#appconfigauthconfigapplicationid) ist auf eine neu erstellte App-Registrierung ohne Berechtigungen gesetzt. Sie wird zur Authentifizierung verwendet *bei* SCEPman, nicht damit sich SCEPman irgendwo anders authentifiziert. Der alte Wert wird gesichert als `Backup:AppConfig:AuthConfig:ApplicationId`.
* [AppConfig:AuthConfig:ApplicationKey](/de/scepman-konfiguration/application-settings/dependencies-azure-services/azure-ad.md#appconfigauthconfigapplicationkey) wird gelöscht, der alte Wert wird gesichert als `Backup:AppConfig:AuthConfig:ApplicationKey`Sie wird nicht mehr benötigt, weil SCEPman sich nicht als die Anwendung authentifiziert.
* [AppConfig:AuthConfig:ManagedIdentityEnabledOnUnixTime](/de/scepman-konfiguration/application-settings/dependencies-azure-services/azure-ad.md#appconfigauthconfigmanagedidentityenabledonunixtime) enthält den Zeitpunkt, zu dem das Cmdlet ausgeführt wurde. SCEPman bezieht erst nach einer kurzen Verzögerung nach Ausführung des Cmdlets ein Token unter Verwendung der verwalteten Identität, 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 Startseite, da dort nur nicht sensible Informationen zum Lesen angezeigt werden. Im Gegensatz dazu erlaubt die SCEPman Certificate Master-Komponente Benutzern, Zertifikate auszustellen. 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, sowie mit der richtigen Konfiguration der Anmelde-URL. Das Modul registriert diese App-Registrierung in Ihrem Azure Tenant als `SCEPman-CertMaster` in Ihrem Azure Tenant.

Zusätzlich benötigt der SCEPman Certificate Master App Service die Berechtigung, Certificate Signing Requests (CSRs) an den zentralen SCEPman-App-Service zu senden, um Zertifikate auszustellen. Der Authentifizierungsmechanismus dahinter basiert auf einer weiteren App-Registrierung: `SCEPman-api`. SCEPman verwendet *SCEPman-api* zur Verwaltung der Berechtigungen für die CSR-Übermittlung. Das Skript registriert SCEPman-api und fügt die Übermittlungsberechtigung für die verwaltete Identität des SCEPman Certificate Master hinzu.

{% hint style="info" %}
Falls Sie SCEPman von 1.x auf 2.x aktualisieren und nachdem Sie das PS-Skript erfolgreich ausgeführt haben, 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"
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.scepman.com/de/scepman-bereitstellung/permissions/post-installation-config.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
