> 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 (ヨーロッパ)"]
        direction TB
        Portal["RealmJoin ポータル"]
        CustApi["顧客 API"]
        ClientApi["クライアント API"]
        FD{{"Azure Front Door"}}
        CDN["CDN とパッケージ サーバー"]
        Core[("バックエンド サービス<br/>とデータベース")]
    end

    subgraph Tenant["お使いの Microsoft テナント"]
        direction TB
        Graph["Entra ID / Intune / Defender<br/>(Microsoft Graph 経由)"]
        subgraph AzureRes["お使いの Azure リソース"]
            direction TB
            KV["Key Vault<br/>(LAPS パスワード)"]
            Autom["Azure Automation<br/>(Runbook)"]
            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 ポータル**       | 管理者がアプリケーション、デバイス、ユーザー、グループ、および自動化を管理するために使う 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).

## プロセス自動化 (Runbook)

Runbook は **お使いの Azure Automation アカウントで実行されます** — RealmJoin のバックエンドではありません。RealmJoin は、キュレーションされた公開 GitHub リポジトリと Runbook ライブラリを同期し、Portal からジョブ実行を管理および監視します。Runbook は Automation アカウントの **managed identity**を通じて動作するため、使用する権限は完全にお客様の管理下にあります。

詳細は [Azure Automation の接続](/ja/zi-dong-hua/connecting-azure-automation.md) および [Runbooks](/ja/zi-dong-hua/runbooks.md) をご覧ください。

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

パッケージは RealmJoin のパッケージ作成パイプラインで作成され、RealmJoin の **CDN** および **Package Server**により、geo-replicated storage と BranchCache を使ってネットワーク内で効率的に配信されます。アプリケーションは次のいずれかで配信できます: **RealmJoin Deployment** (Agent 経由) または **Intune Deployment** (tenant にプッシュされる intunewin パッケージ)。

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

いくつかの機能は **お使いの Microsoft テナントおよび Azure サブスクリプション**内のリソースを使用するため、機密データはお客様の管理下に置かれます:

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

RealmJoin は、オンボーディング中に付与された最小権限のアクセス許可のみを使用して、これらと Entra ID、Intune、Defender を Microsoft Graph 経由で利用します。詳細は [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.
