> 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/fr/deploiement/architecture-overview.md).

# Présentation de l’architecture

RealmJoin est un SaaS cloud-native, multi-tenant et le **compagnon de gestion du cycle de vie des applications pour Microsoft Intune**. Il gère le déploiement d’applications, la gestion des utilisateurs/groupes/appareils et l’automatisation des processus dans votre tenant Entra ID — **sans serveurs sur site ni infrastructure locale**. Tous les services backend sont opérés par glueckkanja dans **Microsoft Azure, hébergé en Europe**.

RealmJoin couvre trois domaines :

* **Gestion des applications** – packaging, déploiement, un catalogue en libre-service et des rapports logiciels.
* **Gestion des utilisateurs, groupes et appareils** – une vue unique et unifiée qui combine les données d’Intune, d’Entra ID, de Microsoft Defender, de Windows Autopilot et des journaux de connexion.
* **Automatisation des processus** – des runbooks qui s’exécutent dans *votre propre* compte Azure Automation.

## Vue d’ensemble

```mermaid
%%{init: {"flowchart": {"htmlLabels": false, "nodeSpacing": 55, "rankSpacing": 90}} }%%
flowchart LR
    Admin["Administrateurs"]
    Integr["Vos intégrations"]
    Device["Appareils gérés<br/>(Agent RealmJoin)"]

    subgraph RJ["Back-end RealmJoin - Azure (Europe)"]
        direction TB
        Portal["RealmJoin Portal"]
        CustApi["Customer-API"]
        ClientApi["Client-API"]
        FD{{"Azure Front Door"}}
        CDN["CDN et Package Server"]
        Core[("Services backend<br/>et bases de données")]
    end

    subgraph Tenant["Votre tenant Microsoft"]
        direction TB
        Graph["Entra ID / Intune / Defender<br/>(via Microsoft Graph)"]
        subgraph AzureRes["Vos ressources Azure"]
            direction TB
            KV["Key Vault<br/>(mots de passe LAPS)"]
            Autom["Azure Automation<br/>(Runbooks)"]
            LA["Log Analytics<br/>(Journaux)"]
        end
    end

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

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

    Core -->|accès avec privilèges minimaux| Graph
    Core --> KV
    Core --> Autom
    Core --> LA
```

RealmJoin se connecte à votre tenant via **des applications Entra ID à privilèges minimaux** auxquelles vous consentez lors de l’onboarding. Chaque action effectuée par le backend est filtrée par le **modèle interne de Role-Based Access Control (RBAC)** de RealmJoin, qui évalue l’appartenance aux groupes et rôles Entra.

## Composants du backend

Le backend est un ensemble de services déployés indépendamment et exécutés dans Microsoft Azure :

| Composant                  | Objectif                                                                                                                                         | Qui s'y connecte                                                                                  |
| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------- |
| **RealmJoin Portal**       | L’interface web que les administrateurs utilisent pour gérer les applications, les appareils, les utilisateurs, les groupes et l’automatisation. | Administrateurs, via une connexion Entra ID (OAuth 2.0 / OpenID Connect).                         |
| **Client-API**             | Le point de terminaison auquel l’agent RealmJoin facultatif sur chaque appareil se connecte.                                                     | Appareils gérés, authentifiés par l’identité de l’appareil (jeton Entra + certificat d’appareil). |
| **Customer-API**           | Une API programmatique pour vos propres intégrations et automatisations.                                                                         | Vos systèmes et outils, en utilisant une clé API par client.                                      |
| **CDN and Package Server** | Distribue les paquets d’application et le contenu aux appareils.                                                                                 | Appareils gérés.                                                                                  |

Derrière cela, RealmJoin exécute des services de traitement en arrière-plan et stocke les données dans des bases de données et du stockage Azure gérés. Les services internes (comme la facturation et les tâches en arrière-plan) ne sont pas accessibles depuis Internet.

## L’agent RealmJoin

L’agent RealmJoin est un **composant Windows** optionnel. Lorsqu’il est installé, il :

* rapporte l’état de l’appareil au Client-API selon un calendrier régulier,
* récupère une **signée** configuration de l’appareil (affectations de logiciels et de stratégies),
* exécute une **évaluation de sécurité** (chiffrement, niveau de correctifs, pare-feu, antivirus) avant d’appliquer les applications obligatoires,
* distribue efficacement les applications à l’aide d’un moteur Chocolatey amélioré plus **BranchCache** distribution pair à pair,
* prend en charge **LAPS** (mot de passe administrateur local) — les mots de passe sont générés sur l’appareil et stockés dans **votre propre Azure Key Vault**.

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

    Device->>API: Rapporter l’état et demander la configuration
    API-->>Device: Configuration signée (applications et stratégies)
    Device->>Device: Évaluation de sécurité
    Device->>CDN: Télécharger les paquets attribués
    Note sur Device: partage de paquets de pair à pair via BranchCache
```

Pour plus de détails sur la distribution des paquets et BranchCache, voir [Considérations relatives à l’infrastructure](/fr/deploiement/infrastructure.md).

## Automatisation des processus (runbooks)

Les runbooks s’exécutent dans **votre propre compte Azure Automation** — et non dans le backend de RealmJoin. RealmJoin synchronise votre bibliothèque de runbooks avec un dépôt GitHub ouvert et sélectionné, et gère et surveille l’exécution des tâches depuis le Portal. Les runbooks agissent via l’identité gérée du compte Automation, de sorte que les autorisations qu’ils utilisent restent entièrement sous votre contrôle. **identité gérée**.

Voir [Connexion à Azure Automation](/fr/automatisation/connecting-azure-automation.md) et [Runbooks](/fr/automatisation/runbooks.md) pour en savoir plus.

## Distribution des applications

Les paquets sont produits par le pipeline de packaging de RealmJoin et distribués aux appareils via le **CDN** et **Package Server**RealmJoin, avec un stockage géo-répliqué et BranchCache pour une distribution efficace sur le réseau. Les applications peuvent être distribuées soit via **RealmJoin Deployment** (via l’Agent) soit en tant que **Intune Deployment** (un package intunewin poussé vers votre tenant).

## Ressources dans votre propre environnement

Plusieurs fonctionnalités utilisent des ressources dans **votre tenant Microsoft et votre abonnement Azure**, afin que les données sensibles restent sous votre contrôle :

* **Azure Key Vault** – stocke les mots de passe d’administrateur local LAPS générés sur vos appareils.
* **Azure Automation** – exécute vos runbooks sous une identité gérée que vous contrôlez.
* **Log Analytics** – stocke les journaux d’audit et les journaux de runbooks archivés.

RealmJoin y accède — ainsi qu’à Entra ID, Intune et Defender via Microsoft Graph — en utilisant uniquement les autorisations à privilèges minimaux que vous accordez lors de l’onboarding. Voir [Autorisations requises du Portal](/fr/deploiement/required-permissions.md) pour la liste complète.

## Sécurité, hébergement et résidence des données

* **Hébergement :** Tous les services backend s’exécutent dans **Microsoft Azure**, principalement dans la **West Europe** avec une sauvegarde en **North Europe**. **Les données client ne quittent pas l’Europe.**
* **Distribution :** Le Portal et les API sont accessibles directement via HTTPS. Les paquets d’application et le contenu sont distribués via le RealmJoin **CDN**, exposé par **Azure Front Door** pour une distribution équilibrée à l’échelle mondiale.
* **Chiffrement en transit :** Toutes les connexions utilisent HTTPS/TLS.
* **Identité :** L’accès administrateur utilise Entra ID (OAuth 2.0 / OpenID Connect) ; les appareils s’authentifient avec leur identité d’appareil Entra et un certificat d’appareil ; les API programmatiques utilisent des clés par client.
* **Isolation du Tenant :** Les données de chaque client sont séparées, et tous les parcours de code backend s’exécutent dans un contexte par tenant.
* **Moindre privilège :** Les applications Entra de RealmJoin ne demandent que les autorisations nécessaires aux fonctionnalités que vous activez, et toutes les actions sont régies par le modèle interne RBAC de RealmJoin.
* **Résilience :** Infrastructure redondante avec basculement automatisé et restauration de la base de données à un point dans le temps ; l’infrastructure est entièrement définie comme code (Terraform).

{% hint style="info" %}
Les points de terminaison accessibles de l’extérieur sont le **Portal, Client-API, Customer-API, CDN et Package Server**. Pour la liste complète des hôtes à autoriser dans votre pare-feu, voir [Considérations relatives à l’infrastructure](/fr/deploiement/infrastructure.md). Pour plus de détails sur la gestion des données et la séparation par tenant, voir [Sécurité et confidentialité](/fr/securite-et-confidentialite/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/fr/deploiement/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.
