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

# Architekturübersicht

RealmJoin ist ein cloud-natives, Multi-Tenant-SaaS und das **Begleiter für den Anwendungslebenszyklus und die Verwaltung zu Microsoft Intune**. Es verwaltet Anwendungsbereitstellung, Benutzer-/Gruppen-/Geräteverwaltung und Prozessautomatisierung in Ihrem Entra ID Tenant — **ohne On-Premises-Server oder lokale Infrastruktur**. Alle Backend-Dienste werden von glueckkanja in **Microsoft Azure, gehostet in Europa**.

RealmJoin deckt drei Bereiche ab:

* **Anwendungsverwaltung** – Paketierung, Bereitstellung, ein Self-Service-Katalog und Softwareberichte.
* **Benutzer-, Gruppen- und Geräteverwaltung** – eine einzige, einheitliche Ansicht, die Daten aus Intune, Entra ID, Microsoft Defender, Windows Autopilot und Anmeldelogs zusammenführt.
* **Prozessautomatisierung** – Runbooks, die in *Ihrem eigenen* Azure Automation-Konto ausgeführt werden.

## Das große Ganze

```mermaid
%%{init: {"flowchart": {"htmlLabels": false, "nodeSpacing": 55, "rankSpacing": 90}} }%%
flowchart LR
    Admin["Administratoren"]
    Integr["Ihre Integrationen"]
    Device["Verwaltete Geräte<br/>(RealmJoin Agent)"]

    subgraph RJ["RealmJoin Backend - Azure (Europa)"]
        direction TB
        Portal["RealmJoin Portal"]
        CustApi["Customer-API"]
        ClientApi["Client-API"]
        FD{{"Azure Front Door"}}
        CDN["CDN- und Package-Server"]
        Core[("Backend-Services<br/>und Datenbanken")]
    end

    subgraph Tenant["Ihr Microsoft Tenant"]
        direction TB
        Graph["Entra ID / Intune / Defender<br/>(über Microsoft Graph)"]
        subgraph AzureRes["Ihre Azure-Ressourcen"]
            direction TB
            KV["Key Vault<br/>(LAPS-Passwörter)"]
            Autom["Azure Automation<br/>(Runbooks)"]
            LA["Log Analytics<br/>(Protokolle)"]
        end
    end

    Admin --> Portal
    Integr --> CustApi
    Device --> ClientApi
    Device --> FD
    FD --> CDN

    Portal --> Core
    ClientApi --> Core
    CustApi --> Core

    Core -->|least-privilege access| Graph
    Core --> KV
    Core --> Autom
    Core --> LA
```

RealmJoin verbindet sich über **Entra ID-Anwendungen mit minimalen Rechten** mit Ihrem Tenant, denen Sie während des Onboardings zustimmen. Jede Aktion, die das Backend ausführt, wird durch RealmJoins **internes RBAC-Zugriffssteuerungsmodell** Modell, das Entra-Gruppen- und Rollenmitgliedschaften auswertet.

## Backend-Komponenten

Das Backend ist eine Reihe unabhängig bereitgestellter Dienste, die in Microsoft Azure ausgeführt werden:

| Komponente                 | Zweck                                                                                                                         | Wer sich damit verbindet                                                                         |
| -------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------ |
| **RealmJoin Portal**       | Die Weboberfläche, die Administratoren verwenden, um Anwendungen, Geräte, Benutzer, Gruppen und Automatisierung zu verwalten. | Administratorinnen und Administratoren über die Entra ID-Anmeldung (OAuth 2.0 / OpenID Connect). |
| **Client-API**             | Der Endpunkt, mit dem der optionale RealmJoin Agent auf jedem Gerät kommuniziert.                                             | Verwaltete Geräte, authentifiziert durch Geräteidentität (Entra-Token + Gerätezertifikat).       |
| **Customer-API**           | Eine programmgesteuerte API für Ihre eigenen Integrationen und Automatisierungen.                                             | Ihre Systeme und Tools, unter Verwendung eines kundenspezifischen API-Schlüssels.                |
| **CDN and Package Server** | Stellt Anwendungs-Pakete und Inhalte für Geräte bereit.                                                                       | Verwaltete Geräte.                                                                               |

Hinter diesen betreibt RealmJoin Hintergrundverarbeitungsdienste und speichert Daten in verwalteten Azure-Datenbanken und -Speichern. Nach außen gerichtete interne Dienste (wie Abrechnung und Hintergrundjobs) sind über das Internet nicht erreichbar.

## Der RealmJoin Agent

Der RealmJoin Agent ist eine **optionale** Windows-Komponente. Wenn er installiert ist, dann:

* meldet er den Gerätestatus regelmäßig an die Client-API,
* ruft eine **signierte** Gerätekonfiguration (Software- und Richtlinienzuweisungen) ab,
* führt vor der Anwendung obligatorischer Apps eine lokale **Sicherheitsbewertung** (Verschlüsselung, Patchstand, Firewall, Antivirenprogramm) aus, bevor er obligatorische Apps anwendet,
* liefert Anwendungen effizient mithilfe einer erweiterten Chocolatey-Engine sowie **BranchCache** Peer-to-Peer-Verteilung,
* unterstützt **LAPS** (lokales Administratorkennwort) — Kennwörter werden auf dem Gerät generiert und in **Ihrem eigenen Azure Key Vault**.

```mermaid
sequenceDiagram
    participant Device as RealmJoin Agent
    participant API as Client-API
    participant CDN as RealmJoin CDN

    Device->>API: Status melden & Konfiguration anfordern
    API-->>Device: Signierte Konfiguration (Apps & Richtlinien)
    Device->>Device: Sicherheitsbewertung
    Device->>CDN: Zugewiesene Pakete herunterladen
    Note over Device: Peer-to-Peer-Paketfreigabe über BranchCache
```

Weitere Informationen zur Paketbereitstellung und zu BranchCache finden Sie unter [Überlegungen zur Infrastruktur](/de/bereitstellung/infrastructure.md).

## Prozessautomatisierung (Runbooks)

Runbooks werden in **Ihrem eigenen Azure Automation-Konto ausgeführt** — nicht im Backend von RealmJoin. RealmJoin hält Ihre Runbook-Bibliothek mit einem kuratierten, offenen GitHub-Repository synchron und verwaltet sowie überwacht die Auftragsausführung über das Portal. Die Runbooks agieren über die **verwaltete Identität**des Automation-Kontos, sodass die verwendeten Berechtigungen vollständig unter Ihrer Kontrolle bleiben.

Siehe [Azure Automation verbinden](/de/automatisierung/connecting-azure-automation.md) und [Runbooks](/de/automatisierung/runbooks.md) für mehr Informationen.

## Anwendungsbereitstellung

Pakete werden von RealmJoins Packaging-Pipeline erstellt und über den RealmJoin **CDN** und **Package Server**, mit georepliziertem Speicher und BranchCache für eine effiziente Verteilung im Netzwerk. Anwendungen können entweder über **RealmJoin-Bereitstellung** (über den Agent) oder als **Intune-Bereitstellung** (ein intunewin-Paket, das an Ihren Tenant gepusht wird).

## Ressourcen in Ihrer eigenen Umgebung

Mehrere Funktionen nutzen Ressourcen in **Ihrem eigenen Microsoft Tenant und Azure-Abonnement**, sodass sensible Daten unter Ihrer Kontrolle bleiben:

* **Azure Key Vault** – speichert die auf Ihren Geräten generierten LAPS-Lokale-Administratorkennwörter.
* **Azure Automation** – führt Ihre Runbooks unter einer von Ihnen kontrollierten verwalteten Identität aus.
* **Log Analytics** – speichert Prüfprotokolle und archivierte Runbook-Protokolle.

RealmJoin greift auf diese — sowie auf Entra ID, Intune und Defender über Microsoft Graph — nur mit den Berechtigungen mit minimalen Rechten zu, die Sie während des Onboardings gewähren. Siehe [Erforderliche Portalberechtigungen](/de/bereitstellung/required-permissions.md) für die vollständige Liste.

## Sicherheit, Hosting und Datenresidenz

* **Hosting:** Alle Backend-Dienste laufen in **Microsoft Azure**, hauptsächlich in der **Region West Europe** mit Backup in **North Europe**. **Kundendaten verlassen Europa nicht.**
* **Bereitstellung:** Auf das Portal und die APIs wird direkt über HTTPS zugegriffen. Anwendungs-Pakete und Inhalte werden über den RealmJoin **CDN**, mit **Azure Front Door** für eine global lastverteilte Bereitstellung.
* **Verschlüsselung während der Übertragung:** Alle Verbindungen verwenden HTTPS/TLS.
* **Identität:** Der Administratorzugriff verwendet Entra ID (OAuth 2.0 / OpenID Connect); Geräte authentifizieren sich mit ihrer Entra-Geräteidentität und einem Gerätezertifikat; programmgesteuerte APIs verwenden kundenspezifische Schlüssel.
* **Tenant-Isolierung:** Die Daten jedes Kunden werden getrennt, und alle Backend-Codepfade arbeiten in einem Tenant-spezifischen Kontext.
* **Least privilege:** RealmJoins Entra-Anwendungen fordern nur die Berechtigungen an, die für die von Ihnen aktivierten Funktionen erforderlich sind, und alle Aktionen werden durch RealmJoins internes RBAC-Modell gesteuert.
* **Resilienz:** Redundante Infrastruktur mit automatischem Failover und punktueller Datenbankwiederherstellung; die Infrastruktur ist vollständig als Code definiert (Terraform).

{% hint style="info" %}
Extern erreichbare Endpunkte sind **Portal, Client-API, Customer-API, CDN und Package Server**. Für die vollständige Liste der Hosts, die Sie in Ihrer Firewall zulassen müssen, siehe [Überlegungen zur Infrastruktur](/de/bereitstellung/infrastructure.md). Weitere Details zur Datenverarbeitung und Tenant-Trennung finden Sie unter [Sicherheit & Datenschutz](/de/sicherheit-and-datenschutz/security-and-privacy.md).
{% 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.realmjoin.com/de/bereitstellung/architecture-overview.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.
