> 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/es/implementacion/architecture-overview.md).

# Resumen de la arquitectura

RealmJoin es un SaaS multicliente, nativo de la nube, y el **el complemento de ciclo de vida y gestión de aplicaciones para Microsoft Intune**. Gestiona la implementación de aplicaciones, la administración de usuarios/grupos/dispositivos y la automatización de procesos en todo tu tenant de Entra ID — **sin servidores locales ni infraestructura local**. Todos los servicios de backend son operados por glueckkanja en **Microsoft Azure, alojado en Europa**.

RealmJoin cubre tres áreas:

* **Gestión de aplicaciones** – empaquetado, implementación, un catálogo de autoservicio e informes de software.
* **Gestión de usuarios, grupos y dispositivos** – una vista única y unificada que combina datos de Intune, Entra ID, Microsoft Defender, Windows Autopilot y registros de inicio de sesión.
* **Automatización de procesos** – runbooks que se ejecutan en *tu propia* cuenta de Azure Automation.

## La visión general

```mermaid
%%{init: {"flowchart": {"htmlLabels": false, "nodeSpacing": 55, "rankSpacing": 90}} }%%
flowchart LR
    Admin["Administradores"]
    Integr["Tus integraciones"]
    Device["Dispositivos administrados<br/>(Agente RealmJoin)"]

    subgraph RJ["Backend de RealmJoin - Azure (Europa)"]
        direction TB
        Portal["Portal de RealmJoin"]
        CustApi["API del cliente"]
        ClientApi["API de cliente"]
        FD{{"Azure Front Door"}}
        CDN["CDN y servidor de paquetes"]
        Core[("Servicios de backend<br/>y bases de datos")]
    end

    subgraph Tenant["Tu tenant de Microsoft"]
        direction TB
        Graph["Entra ID / Intune / Defender<br/>(a través de Microsoft Graph)"]
        subgraph AzureRes["Tus recursos de Azure"]
            direction TB
            KV["Key Vault<br/>(contraseñas LAPS)"]
            Autom["Azure Automation<br/>(runbooks)"]
            LA["Log Analytics<br/>(registros)"]
        end
    end

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

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

    Core -->|acceso de mínimo privilegio| Graph
    Core --> KV
    Core --> Autom
    Core --> LA
```

RealmJoin se conecta a tu tenant a través de **aplicaciones de Entra ID de mínimo privilegio** a las que concedas tu consentimiento durante la incorporación. Cada acción que realiza el backend se filtra a través del **modelo interno de control de acceso basado en roles (RBAC)** de RealmJoin, que evalúa la pertenencia a grupos y roles de Entra.

## Componentes del backend

El backend es un conjunto de servicios implementados de forma independiente que se ejecutan en Microsoft Azure:

| Componente                     | Propósito                                                                                                                  | Quién se conecta a él                                                                                                     |
| ------------------------------ | -------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- |
| **Portal de RealmJoin**        | La interfaz web que usan los administradores para gestionar aplicaciones, dispositivos, usuarios, grupos y automatización. | Administradores, mediante inicio de sesión con Entra ID (OAuth 2.0 / OpenID Connect).                                     |
| **Client-API**                 | El punto de conexión al que se comunica el Agente RealmJoin opcional en cada dispositivo.                                  | Dispositivos administrados, autenticados por la identidad del dispositivo (token de Entra + certificado del dispositivo). |
| **Customer-API**               | Una API programática para tus propias integraciones y automatización.                                                      | Tus sistemas y herramientas, usando una clave de API por cliente.                                                         |
| **CDN y servidor de paquetes** | Entrega paquetes de aplicaciones y contenido a los dispositivos.                                                           | Dispositivos administrados.                                                                                               |

Detrás de esto, RealmJoin ejecuta servicios de procesamiento en segundo plano y almacena datos en bases de datos y almacenamiento administrados de Azure. Los servicios internos (como facturación y trabajos en segundo plano) no son accesibles desde Internet.

## El Agente RealmJoin

El Agente RealmJoin es un **opcional** componente de Windows. Cuando se instala,

* informa del estado del dispositivo a la Client-API de forma periódica,
* recupera una **firmada** configuración del dispositivo (asignaciones de software y directivas),
* ejecuta una **evaluación de seguridad** (cifrado, nivel de parches, firewall, antivirus) antes de aplicar aplicaciones obligatorias,
* entrega aplicaciones de forma eficiente usando un motor mejorado de Chocolatey más **BranchCache** distribución entre pares,
* admite **LAPS** (contraseña de administrador local) — las contraseñas se generan en el dispositivo y se almacenan en **tu propio Azure Key Vault**.

```mermaid
sequenceDiagram
    participant Device as Agente RealmJoin
    participant API as Client-API
    participant CDN as CDN de RealmJoin

    Device->>API: Informar del estado y solicitar configuración
    API-->>Device: Configuración firmada (aplicaciones y directivas)
    Device->>Device: Evaluación de seguridad
    Device->>CDN: Descargar los paquetes asignados
    Note over Device: Compartición de paquetes entre pares mediante BranchCache
```

Para obtener detalles sobre la entrega de paquetes y BranchCache, consulta [Consideraciones de infraestructura](/es/implementacion/infrastructure.md).

## Automatización de procesos (runbooks)

Los runbooks se ejecutan en **tu propia cuenta de Azure Automation** — no en el backend de RealmJoin. RealmJoin mantiene sincronizada tu biblioteca de runbooks con un repositorio abierto y curado de GitHub, y gestiona y supervisa la ejecución de trabajos desde el Portal. Los runbooks actúan a través de la **identidad administrada**de la cuenta de Automation, por lo que los permisos que usan quedan totalmente bajo tu control.

Consulta [Conectando Azure Automation](/es/automatizacion/connecting-azure-automation.md) y [Runbooks](/es/automatizacion/runbooks.md) para más información.

## Entrega de aplicaciones

Los paquetes se generan mediante la canalización de empaquetado de RealmJoin y se entregan a los dispositivos a través del RealmJoin **CDN** y **servidor de paquetes**, con almacenamiento geo-replicado y BranchCache para una distribución eficiente dentro de la red. Las aplicaciones pueden entregarse ya sea mediante **Implementación de RealmJoin** (a través del Agente) o como **Implementación de Intune** (un paquete intunewin enviado a tu tenant).

## Recursos en tu propio entorno

Varias capacidades usan recursos en **tu propio tenant de Microsoft y tu suscripción de Azure**, por lo que los datos sensibles permanecen bajo tu control:

* **Azure Key Vault** – almacena las contraseñas LAPS de administrador local generadas en tus dispositivos.
* **Azure Automation** – ejecuta tus runbooks bajo una identidad administrada que controlas.
* **Log Analytics** – almacena los registros de auditoría y los registros archivados de runbooks.

RealmJoin accede a estos — y a Entra ID, Intune y Defender a través de Microsoft Graph — usando únicamente los permisos de mínimo privilegio que concedas durante la incorporación. Consulta [Permisos requeridos del Portal](/es/implementacion/required-permissions.md) para la lista completa.

## Seguridad, alojamiento y residencia de datos

* **Alojamiento:** Todos los servicios de backend se ejecutan en **Microsoft Azure**, principalmente en la **Europa Occidental** región con copia de respaldo en **Europa del Norte**. **Los datos de los clientes no salen de Europa.**
* **Entrega:** Se accede al Portal y a las API directamente mediante HTTPS. Los paquetes y el contenido de aplicaciones se entregan a través del RealmJoin **CDN**, expuesto por **Azure Front Door** para una distribución con balanceo de carga global.
* **Cifrado en tránsito:** Todas las conexiones usan HTTPS/TLS.
* **Identidad:** El acceso de administrador usa Entra ID (OAuth 2.0 / OpenID Connect); los dispositivos se autentican con su identidad de dispositivo de Entra y un certificado de dispositivo; las API programáticas usan claves por cliente.
* **Aislamiento de Tenant:** Los datos de cada cliente están separados y todas las rutas de código del backend operan dentro de un contexto por tenant.
* **Mínimo privilegio:** Las aplicaciones de Entra de RealmJoin solicitan solo los permisos necesarios para las funciones que habilites, y todas las acciones se rigen por el modelo interno RBAC de RealmJoin.
* **Resiliencia:** Infraestructura redundante con conmutación por error automatizada y recuperación de bases de datos a un punto en el tiempo; la infraestructura está completamente definida como código (Terraform).

{% hint style="info" %}
Los puntos de conexión accesibles externamente son el **Portal, API de cliente, API del cliente, CDN y servidor de paquetes**. Para ver la lista completa de hosts que debes permitir en tu firewall, consulta [Consideraciones de infraestructura](/es/implementacion/infrastructure.md). Para obtener más detalles sobre el tratamiento de datos y la separación por tenant, consulta [Seguridad y privacidad](/es/seguridad-y-privacidad/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/es/implementacion/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.
