> 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/azure-konfiguration/split-tenancy.md).

# Split-Tenancy

{% hint style="warning" %}
Nur SCEPman Enterprise Edition
{% endhint %}

## Überblick <a href="#overview" id="overview"></a>

SCEPman kann so eingerichtet werden, dass es in einem von dem Azure/Intune-Tenant getrennten Azure-Tenant betrieben wird, für den es Zertifikate an Benutzer und/oder Geräte ausstellt. Diese Konfiguration, bekannt als Split-Tenancy, ist besonders **hilfreich für MSPs** die die Azure-Infrastrukturkosten über ihre Kunden hinweg bündeln möchten, während sie ein dediziertes Backend und eine eindeutige CA für jeden dieser Kunden beibehalten.

Split-Tenancy bringt einen **großen Nachteil**: [Managed Identities](/de/scepman-bereitstellung/permissions/post-installation-config.md) können nicht mehr verwendet werden. Das bedeutet, dass die Authentifizierung gegen die Graph API (Azure AD und Intune) mithilfe einer App-Registrierung und eines Client-Geheimnisses erfolgt, das vom MSP verwaltet werden muss, da es abläuft.

Im Folgenden bezeichnen wir den Hosting-Tenant als **Home-Tenant,** während wir den Kunden-Tenant als **Target-Tenant**. SCEPman-Ressourcen werden sich im **Home-Tenant**befinden, und die verwalteten Geräte im **Target-Tenant** wie in der folgenden Grafik:

<figure><img src="https://2075553437-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LoGejQeUQcw7lqnQ3WX%2Fuploads%2Ft8uOQQC6iNXE2XeveTgY%2Fscepman-split-graphic.png?alt=media&amp;token=edb7ed01-20e3-4a88-9927-01275e510d01" alt=""><figcaption></figcaption></figure>

## Konfigurationsschritte

1. Im **Home-Tenant**führen Sie eine Standardbereitstellung von SCEPman/Certificate Master wie in unserem [Erste-Schritte-Leitfaden](/de/scepman-bereitstellung/deployment-guides.md).

### In SCEPman (Home-Tenant)

2. Navigieren Sie zu SCEPman **App Service** und dann zu „Einstellungen“ --> „Umgebungsvariablen“. Suchen Sie die folgenden Parameter und **löschen** sie:

| Umgebungsvariablen                                              |
| --------------------------------------------------------------- |
| `AppConfig:AuthConfig:ManagedIdentityEnabledForWebsiteHostname` |
| `AppConfig:AuthConfig:ManagedIdentityEnabledOnUnixTime`         |
| `AppConfig:AuthConfig:ManagedIdentityPermissionLevel`           |

3. **Umbenennen** die folgenden Einstellungen (**ändern Sie ihre Werte nicht**):

<table><thead><tr><th width="384">Ursprünglicher Name</th><th>Neuer Name</th></tr></thead><tbody><tr><td><code>AppConfig:AuthConfig:ApplicationId</code></td><td><code>AppConfig:AuthConfig:HomeApplicationId</code></td></tr><tr><td><code>AppConfig:AuthConfig:TenantId</code></td><td><code>AppConfig:AuthConfig:HomeTenantId</code></td></tr></tbody></table>

4. Erstellen Sie eine **App-Registrierung** im **Target-Tenant** wie hier beschrieben: [Azure App-Registrierung](/de/scepman-bereitstellung/permissions/azure-app-registration.md). Dies **App-Registrierung** ermöglicht SCEPman den Zugriff auf die Azure AD- und Intune-Verzeichnisse im **Target-Tenant**.

{% hint style="warning" %}
Das **Client-Geheimnis** das im Rahmen dieser **App-Registrierung** hat ein Ablaufdatum und muss vor seinem Ablauf erneuert werden. Bitte setzen Sie eine Erinnerung für die Erneuerung.
{% endhint %}

**Erstellen Sie eine** die folgenden neuen Umgebungsvariablen, falls Sie dies nicht bereits während der Erstellung der App-Registrierung getan haben:

<table><thead><tr><th width="395">Name</th><th>Wert</th></tr></thead><tbody><tr><td><code>AppConfig:AuthConfig:ApplicationId</code></td><td>GUID des <strong>App-Registrierung</strong> das zuvor erstellt wurde <strong>(Ziel-Tenant).</strong></td></tr><tr><td><code>AppConfig:AuthConfig:TenantId</code></td><td>Tenant-ID des <strong>Target-Tenant</strong>.</td></tr><tr><td><code>AppConfig:AuthConfig:ApplicationKey</code></td><td><strong>Wert</strong> des <strong>Client-Geheimnisses</strong> das im Rahmen der <strong>App-Registrierung</strong> im <strong>Target-Tenant</strong>.</td></tr></tbody></table>

5. Übernehmen Sie die Änderungen.
6. Starten Sie den SCEPman **App Service**.

### Certificate Master

7. Navigieren Sie zum Certificate Master **App Service** und dann zu „Einstellungen“ > „Umgebungsvariablen“.
8. Jetzt haben Sie zwei Optionen:
   1. Wenn Sie möchten, dass Benutzer aus Ihrem **Home-Tenant** sich beim Certificate Master anmelden und Zertifikate ausstellen, was Gastbenutzer in Ihrem Home-Tenant einschließt, z. B. aus Ihrem Target-Tenant.

<figure><img src="https://2075553437-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LoGejQeUQcw7lqnQ3WX%2Fuploads%2FXqlVQSz8vRMLpm9ijTb3%2Fscepman-split-graphic2.png?alt=media&amp;token=18945a73-dc3b-416e-85da-a4f8cf267c61" alt=""><figcaption><p>Option 1: Benutzer aus dem Home-Tenant melden sich beim Certificate Master an</p></figcaption></figure>

Wenn das der Fall ist, **benennen Sie um** die folgenden Einstellungen (**ändern Sie ihre Werte nicht**):

<table><thead><tr><th width="385">Ursprünglicher Name</th><th>Neuer Name</th></tr></thead><tbody><tr><td><code>AppConfig:AuthConfig:TenantId</code></td><td><code>AppConfig:AuthConfig:HomeTenantId</code></td></tr><tr><td><code>AppConfig:AuthConfig:ApplicationId</code></td><td><code>AppConfig:AuthConfig:HomeApplicationId</code></td></tr></tbody></table>

b. Sie möchten, dass Benutzer aus Ihrem **Target-Tenant** sich beim Certificate Master anmelden und Zertifikate ausstellen, was Gastbenutzer in Ihrem Target-Tenant einschließt, z. B. aus Ihrem Home-Tenant.

<figure><img src="https://2075553437-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LoGejQeUQcw7lqnQ3WX%2Fuploads%2FOKLaoNuGHkWV7zvScKvi%2Fscepman-split-graphic3.png?alt=media&amp;token=ed862008-d054-4a16-8912-07d578bc582c" alt=""><figcaption><p>Option 2: Benutzer aus dem Target-Tenant melden sich beim Certificate Master an</p></figcaption></figure>

Wenn das der Fall ist, gehen Sie wie folgt vor:

* Öffnen Sie eine **PowerShell** oder **Azure Cloud Shell** in Ihrem **Target-Tenant** und führen Sie die folgenden Befehle aus:

```
Install-Module SCEPman -Scope CurrentUser -Force
Register-SCEPmanCertMaster -CertMasterBaseURL <url>
```

Ersetzen Sie `<url>` durch Ihre Certificate Master-URL

* Das **CMDlet** gibt eine **Anwendungs-ID** und eine **Tenant-ID** (die des **Target-Tenant**). Geben Sie diese beiden Werte als
  * `AppConfig:AuthConfig:HomeApplicationId` und
  * `AppConfig:AuthConfig:HomeTenantId` in Ihren Certificate-Master-Einstellungen ein.
* Jetzt **erstellen Sie** die folgenden neuen Anwendungseinstellungen, wobei Sie möglicherweise die vorhandenen mit denselben Werten wie in SCEPman überschreiben:

<table><thead><tr><th width="393">Name</th><th>Wert</th></tr></thead><tbody><tr><td><code>AppConfig:AuthConfig:ApplicationId</code></td><td>GUID des <strong>App-Registrierung</strong> das zuvor erstellt wurde.</td></tr><tr><td><code>AppConfig:AuthConfig:TenantId</code></td><td>Tenant-ID des <strong>Target-Tenant</strong>.</td></tr><tr><td><code>AppConfig:AuthConfig:ApplicationKey</code></td><td><strong>Wert</strong> des <strong>Client-Geheimnisses</strong> das im Rahmen der <strong>App-Registrierung</strong> zuvor erstellt wurde.<br>Sie können bei Bedarf ein separates neues Client-Geheimnis für Certificate Master erstellen.</td></tr></tbody></table>

9. Speichern Sie die Änderungen
10. Starten Sie den SCEPman Certificate Master neu **App Service**.
11. Erteilen Sie die Berechtigungen zum Anfordern von Zertifikaten über die **Certificate Master** Web-App, siehe [hier](/de/scepman-bereitstellung/permissions/post-installation-config.md#granting-the-rights-to-request-certificates-via-the-certificate-master-website).

Zur Übersicht hier die Konten, die von **Certificate Master** verwendet werden und wofür sie verwendet werden:

| Konto                                                | Wofür wird es verwendet?                                                                                                                                                                                                             | Hinweise                                                                                    |
| ---------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------- |
| Verwaltete Identität                                 | <ul><li>CSRs, die an SCEPman übermittelt werden, autorisieren</li><li>Zugriff auf den Storage Account</li></ul>                                                                                                                      | k. A.                                                                                       |
| App-Registrierung mit App-ID aus `ApplicationId`     | Certificate Master greift in diesem Kontext auf Microsoft Graph zu, um zu sehen, welche Zertifikate über Intune bereitgestellt wurden                                                                                                | Wenn `ApplicationKey` nicht vorhanden ist, wird stattdessen die Managed Identity verwendet. |
| App-Registrierung mit App-ID aus `HomeApplicationId` | Benutzer authentifizieren **sich bei** dieser Anwendung. Sie sollte im Tenant liegen, in dem sich die Benutzer befinden, die auf Certificate Master zugreifen (Gastbenutzer aus anderen Tenants können ebenfalls autorisiert werden) | Wenn `HomeApplicationId` nicht vorhanden ist, `ApplicationId` wird stattdessen verwendet.   |

Nun ist die Split-Tenancy-Konfiguration abgeschlossen, Sie können fortfahren und Ihre SCEP-Profile basierend auf Ihrem MDM konfigurieren.

## Überlegungen bei mehreren Target-Tenants

Wenn Sie mehrere SCEPman-Instanzen haben möchten, die Zertifikate für verschiedene Target-Tenants ausstellen, sollten Sie zusätzliche Konfigurationsschritte durchführen, um diese Instanzen voneinander zu isolieren.

Ein mögliches Konzept könnte eine Verwaltungsressourcengruppe umfassen, die einen einzelnen App Service Plan enthält, der die Rechenressource für alle Ihre SCEPman App Services bereitstellt. Die folgenden Punkte sollten berücksichtigt werden, wenn Sie dies für mehrere Tenants tun:

* Jede Instanz sollte ihre eigene Ressourcengruppe haben, um sie zu unterscheiden
* Sie sollten für jede Instanz App-Registrierungen erstellen, um die Berechtigungen zu isolieren
* Der App Service Plan sollte in einer unabhängigen Verwaltungsressourcengruppe erstellt werden, da er mehrere Instanzen bedient

In diesem Diagramm stellen ein Verwaltungs-Tenant und seine beiden SCEPman-Instanzen Zertifikate für die Tenants von Contoso und Tailwind bereit:

```mermaid
graph LR
  subgraph t0[Verwaltungs-Tenant]
  subgraph rg0[rg-scepman-mgmt]
    asp[asp-scepman-mgmt]
  end

  subgraph rg1[rg-scepman-contoso]
    app1[app-scepman-contoso]
    appreg1[scepman-api-contoso]
  end

  subgraph rg2[rg-scepman-tailwind]
    app2[app-scepman-tailwind]
    appreg2[scepman-api-tailwind]
  end
  end

  subgraph t1[Contoso-Tenant]
    i1[Intune]
    e1[Entra ID]
  end

  subgraph t2[Tailwind-Tenant]
    i2[Intune]
    e2[Entra ID]
  end

  classDef rg stroke:#6dc3d1, fill:#d5ecf2
  classDef asp stroke:#2962FF, fill:#e0e7ff
  classDef app stroke:#fcd116, fill:#FFF8D8
  classDef appreg stroke:#6DD185, fill:#ddffd8
  classDef tenant stroke:#4d93c0, fill:#d0e2f0
  classDef entra color:#ffffff, stroke:#0b58a4, fill:#0078d6
  classDef intune stroke:#2ebddd, fill:#d9f4fa

  class rg0,rg1,rg2 rg
  class asp asp
  class app1,app2 app
  class appreg1,appreg2 appreg
  class t0,t1,t2 tenant
  class e1,e2 entra
  class i1,i2 intune

  asp --bedient--> app1
  asp --bedient--> app2

  app1 --> appreg1
  appreg1 --liest Daten--> i1
  appreg1 --liest Daten--> e1
  i1 --fordert Zertifikate an--> app1

  app2 --> appreg2
  appreg2 --liest Daten--> i2
  appreg2 --liest Daten--> e2
  i2 --fordert Zertifikate an--> app2
```

### Fügen Sie eine neue SCEPman-Instanz zu einem vorhandenen App Service Plan hinzu

Während der Bereitstellung einer neuen SCEPman-Instanz mithilfe der [Enterprise-Bereitstellungsmethode](https://docs.scepman.com/scepman-deployment/deployment-options/enterprise-deployment) wird Ihnen die Möglichkeit geboten, die Ressourcen-ID eines vorhandenen App Service Plans anzugeben, zu dem diese Instanz hinzugefügt werden soll.

<figure><img src="https://2075553437-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LoGejQeUQcw7lqnQ3WX%2Fuploads%2FxHUNSYYW9FleCHCmxiGB%2Fimage.png?alt=media&amp;token=dd7885b4-fe66-444a-b507-eaa0c2d0880d" alt=""><figcaption></figcaption></figure>

Diese Ressourcen-ID finden Sie in den Eigenschaften des vorhandenen App Service Plans:

<figure><img src="https://2075553437-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LoGejQeUQcw7lqnQ3WX%2Fuploads%2FvfeVKRZqRbm4U4BcRTCE%2Fimage.png?alt=media&amp;token=f7304314-93f5-4c50-8ae9-b8809407adeb" alt=""><figcaption></figcaption></figure>

### Kundenspezifische App-Registrierungen erstellen

Um die Berechtigungen der Apps zu isolieren, müssen Sie den Post-Deployment-Befehl anpassen, um benutzerdefinierte App-Registrierungen anzugeben:

{% code overflow="wrap" %}

```powershell
Complete-SCEPmanInstallation -SCEPmanAppServiceName "app-scepman-contoso" -AzureADAppNameForSCEPman "scepman-api-contoso" -AzureADAppNameForCertMaster "certmaster-contoso" -SearchAllSubscriptions 6>&1
```

{% endcode %}

Dieser Befehl führt zu einer vollständig konfigurierten SCEPman-Instanz, die von den vorherigen Instanzen isoliert ist. Sie können nun fortfahren, die Split-Tenancy für diese Instanz zu konfigurieren.

Der obige Abschnitt zum Certificate Master kann nun optional angewendet werden, wenn Sie möchten, dass dieser Dienst vom Kunden-Tenant aus zugänglich ist.


---

# 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/azure-konfiguration/split-tenancy.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.
