> 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/ja/zhan-kai/architecture-overview.md).

# アーキテクチャの概要

RealmJoin はクラウドネイティブなマルチテナント SaaS であり、 **Microsoft Intune のアプリケーション ライフサイクルと管理のコンパニオンです**。Entra ID テナント全体でアプリケーションの展開、ユーザー/グループ/デバイス管理、プロセス自動化を管理します — **オンプレミス サーバーやローカル インフラストラクチャは不要です**。すべてのバックエンド サービスは glueckkanja により **Microsoft Azure 上で運用され、ヨーロッパにホストされています**.

RealmJoin は 3 つの領域をカバーします:

* **アプリケーション管理** — パッケージング、展開、セルフサービス カタログ、ソフトウェア レポート。
* **ユーザー、グループ、デバイス管理** — Intune、Entra ID、Microsoft Defender、Windows Autopilot、サインイン ログのデータを組み合わせた、単一の統合ビュー。
* **プロセス自動化** — 実行される runbook *お客様自身の* Azure Automation アカウント内。

## 全体像

```mermaid
%%{init: {"flowchart": {"htmlLabels": false, "nodeSpacing": 55, "rankSpacing": 90}} }%%
flowchart LR
    Admin["管理者"]
    Integr["お使いの連携"]
    Device["管理対象デバイス<br/>(RealmJoin Agent)"]

    subgraph RJ["RealmJoin バックエンド - Azure (Europe)"]
        direction TB
        Portal["RealmJoin Portal"]
        CustApi["Customer-API"]
        ClientApi["Client-API"]
        FD{{"Azure Front Door"}}
        CDN["CDN と Package Server"]
        Core[("バックエンド サービス<br/>とデータベース")]
    end

    subgraph Tenant["お使いの Microsoft tenant"]
        direction TB
        Graph["Entra ID / Intune / Defender<br/>(Microsoft Graph 経由)"]
        subgraph AzureRes["お使いの Azure リソース"]
            direction TB
            KV["Key Vault<br/>(LAPS パスワード)"]
            Autom["Azure Automation<br/>(Runbooks)"]
            LA["Log Analytics<br/>(ログ)"]
        end
    end

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

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

    Core -->|最小権限アクセス| Graph
    Core --> KV
    Core --> Autom
    Core --> LA
```

RealmJoin は、お使いのテナントに次を通じて接続します。 **最小権限の Entra ID アプリケーション** を通じてお使いのテナントに接続します。バックエンドが実行する各アクションは RealmJoin の **内部 Role-Based Access Control (RBAC)** モデルによってフィルタリングされ、Entra のグループおよびロールのメンバーシップを評価します。

## バックエンド コンポーネント

バックエンドは、Microsoft Azure 上で動作する個別にデプロイされたサービスのセットです:

| コンポーネント                    | 目的                                                        | 接続する対象                                              |
| -------------------------- | --------------------------------------------------------- | --------------------------------------------------- |
| **RealmJoin Portal**       | 管理者がアプリケーション、デバイス、ユーザー、グループ、自動化を管理するために使用する Web インターフェース。 | 管理者、Entra ID サインイン経由 (OAuth 2.0 / OpenID Connect)。  |
| **Client-API**             | 各デバイス上のオプションの RealmJoin Agent が通信するエンドポイント。               | 管理対象デバイス。デバイス ID (Entra トークン + デバイス証明書) によって認証されます。 |
| **Customer-API**           | お客様自身の連携および自動化のためのプログラマティック API。                          | お客様のシステムとツール。顧客ごとの API キーを使用します。                    |
| **CDN および Package Server** | アプリケーション パッケージとコンテンツをデバイスに配信します。                          | 管理対象デバイス。                                           |

これらの裏側で、RealmJoin はバックグラウンド処理サービスを実行し、管理された Azure データベースとストレージにデータを保存します。内部向けサービス（請求やバックグラウンド ジョブなど）はインターネットから到達できません。

## RealmJoin Agent

RealmJoin Agent は **オプションの** Windows コンポーネントです。インストールすると、

* 定期的なスケジュールでデバイスの状態を Client-API に報告し、
* 取得し、 **署名付きの** デバイス構成（ソフトウェアとポリシーの割り当て）を
* ローカルの **セキュリティ評価** （暗号化、パッチ レベル、ファイアウォール、アンチウイルス）を実行してから、必須アプリを適用し、
* 拡張された Chocolatey エンジンと **BranchCache** のピアツーピア配信を使用して、アプリケーションを効率的に配信し、
* サポート **LAPS** （ローカル管理者パスワード）— パスワードはデバイス上で生成され、 **お使いの Azure Key Vault**.

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

    Device->>API: 状態を報告し、構成を要求します
    API-->>Device: 署名付き構成（アプリとポリシー）
    Device->>Device: セキュリティ評価
    Device->>CDN: 割り当てられたパッケージをダウンロード
    Note over Device: BranchCache によるピアツーピア パッケージ共有
```

パッケージ配信と BranchCache の詳細については、 [インフラに関する考慮事項](/ja/zhan-kai/infrastructure.md).

## プロセス自動化（runbooks）

Runbooks は **お使いの Azure Automation アカウントで実行されます** — RealmJoin のバックエンドではありません。RealmJoin は、厳選されたオープンな GitHub リポジトリと runbook ライブラリを同期し、Portal からジョブ実行を管理および監視します。runbooks は Automation アカウントの **マネージド ID**を介して動作するため、使用する権限は完全にお客様の管理下にあります。

参照してください [Azure Automation への接続](/ja/zi-dong-hua/connecting-azure-automation.md) と [Runbooks](/ja/zi-dong-hua/runbooks.md) をご覧ください。

## アプリケーション配信

パッケージは RealmJoin のパッケージング パイプラインで生成され、RealmJoin **CDN** と **Package Server**を通じてデバイスに配信され、地理的に複製されたストレージと BranchCache によってネットワーク内で効率的に配信されます。アプリケーションは **RealmJoin Deployment** （Agent 経由）として、または **Intune Deployment** （お使いのテナントにプッシュされる intunewin パッケージ）として配信できます。

## お使いの環境内のリソース

いくつかの機能は **お使いの Microsoft tenant と Azure サブスクリプション**内のリソースを使用するため、機密データはお客様の管理下に留まります:

* **Azure Key Vault** — デバイス上で生成された LAPS ローカル管理者パスワードを保存します。
* **Azure Automation** — お客様が管理するマネージド ID の下で runbooks を実行します。
* **Log Analytics** — 監査ログとアーカイブされた runbook ログを保存します。

RealmJoin は、オンボーディング中に付与する最小権限の権限のみを使用して、これらおよび Microsoft Graph 経由の Entra ID、Intune、Defender にアクセスします。 [Portal の必要権限](/ja/zhan-kai/required-permissions.md) 完全な一覧をご覧ください。

## セキュリティ、ホスティング、データ所在

* **ホスティング:** すべてのバックエンド サービスは **Microsoft Azure**上で、主に **West Europe** リージョンで稼働し、バックアップは **North Europe**. **顧客データはヨーロッパを離れません。**
* **配信:** Portal と API は HTTPS で直接アクセスされます。アプリケーション パッケージとコンテンツは RealmJoin **CDN**、 **Azure Front Door** を前段に置いて、グローバルに負荷分散された配信として提供されます。
* **転送中の暗号化:** すべての接続は HTTPS/TLS を使用します。
* **ID:** 管理者アクセスは Entra ID (OAuth 2.0 / OpenID Connect) を使用します。デバイスは Entra デバイス ID とデバイス証明書で認証し、プログラマティック API は顧客ごとのキーを使用します。
* **テナント分離:** 各顧客のデータは分離され、すべてのバックエンド コード パスはテナントごとのコンテキスト内で動作します。
* **最小権限:** RealmJoin の Entra アプリケーションは、有効にした機能に必要な権限のみを要求し、すべてのアクションは RealmJoin の内部 RBAC モデルによって管理されます。
* **レジリエンス:** 自動フェイルオーバーとポイントインタイムのデータベース復旧を備えた冗長インフラ。インフラは完全にコード（Terraform）として定義されています。

{% hint style="info" %}
外部から到達可能なエンドポイントは **Portal、Client-API、Customer-API、CDN および Package Server**です。ファイアウォールで許可するホストの完全な一覧については、 [インフラに関する考慮事項](/ja/zhan-kai/infrastructure.md)データ処理とテナント分離の詳細については、 [セキュリティとプライバシー](/ja/sekyurititopuraibash/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/ja/zhan-kai/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.
