ソリューション

ツールのためのAPI。AIのためのMCPサーバー。

Customer APIは、デバイス、ローカル管理者、Runbook、アプリストア、テナントのセットアップをカバーし、ブラウザーでそのまま試せるOpenAPIドキュメントが付きます。MCPサーバーは、AIアシスタントに自社のデバイス群への読み取り専用アクセスを与えます。そしてPowerShellモジュールが、オンボーディングをスクリプト化します。

  • 対話的なドキュメント付きのOpenAPI
  • 6つのツールを備えたMCPサーバー
  • PowerShellモジュール
  • オープンソースのRunbook
customer-api.realmjoin.com
# Device state, Intune part onlycurl -u "t-<tenant-id>:<api-secret>" \  "https://customer-api.realmjoin.com/device/<device-id>/state?path=Intune"# Request a support account for helpdeskcurl -u "t-<tenant-id>:<api-secret>" -X POST \  "https://customer-api.realmjoin.com/laps/request"

Customer API

テナントごとのREST APIで、テナントIDとAPIシークレットで認証します。領域ごとに個別に有効化するため、ヘルプデスク連携にはLAPSだけを渡すといったことができます。

  • OpenAPIとScalar

    仕様は/openapi/v1.json、対話的なリファレンスは/scalar/v1にあります。

  • テナントごとのスコープ

    8つのAPI領域とMCPサーバーを、それぞれ個別に有効化します。

  • レート制限

    テナントごとに、デバイス関連のエンドポイントは毎分30リクエスト、MCPは毎分60リクエストです。

  • 監査

    何かを変更する呼び出しは、ポータルでの操作と同じように自社のワークスペースに記録されます。ドキュメントを読む · APIリファレンスを開く

エンドポイント

顧客向けのルートを領域ごとにまとめています。フィルターで一つの領域だけを表示できます。

ルートできること
GET/device/listプライマリユーザー、セカンダリユーザー、最終確認日時を伴うデバイスの一覧。
GET/device/{id}/stateRealmJoin、Entra、IntuneのIDによるデバイスの完全な状態、または指定したパスだけ。
POST/laps/requestサポート用アカウントを要求します。デバイスの次のチェックインまでの時間を返します。
POST/laps/retrieveエスクローされたサポート用アカウントのパスワードを取得します。
POST/runbook/{runbookName}/runRunbookを実行して結果を待ちます。1時間までのジョブ向けです。
POST/runbook/{runbookName}/startRunbookをバックグラウンドで開始し、ジョブIDを受け取ります。
GET/runbook/jobs/{jobID}/statusジョブの状態。
GET/runbook/jobs/{jobID}/output/textテキストとしての出力。
GET/runbook/jobs/{jobID}/output/streamsすべての出力ストリーム。
GET/runbook/jobs/{jobID}/exception/text失敗したジョブの例外テキスト。
GET/store/appsPackage Storeの検索とページ送り。
GET/store/apps/{id}1つのパッケージとその詳細。
GET/store/subscribed購読中のパッケージ。
POST/store/subscribedIntuneまたはRealmJoin経由でパッケージを購読します。自動化、延期、夜間ウィンドウ、タイムゾーンを指定できます。
GET/store/subscribed/{id}1つのサブスクリプション。
GET/store/subscribed/status/{id}購読処理の進捗。
POST/tenant/connectワンタイムトークンによるスクリプト化されたオンボーディング。
POST/tenant/logingestion-config自社のLog Analyticsワークスペースを接続します。
POST/tenant/runbooks-config自社のAzure Automationアカウントを接続します。
GET/tenant/stats稼働中および総数のデバイス、ユーザー、パッケージ。

パートナー向けと表示用の連携には、さらにいくつかのルートがあります。APIリファレンスを参照してください。

自社のデバイス群に尋ねる

組み込みのMCPサーバーを使うと、Model Context Protocolを話すAIアシスタントがRealmJoinの情報を調べられます。デバイスの状態、名前によるマシンの特定、デバイス群全体でのパッケージの分布などです。トークンには名前が付き、有効期限があり、いつでも取り消せて、最後に使われた日時もわかります。

会話は例です。トークンは設定の「MCPアクセス」で作成します。

6つの読み取り専用ツール

ツール答えること
get_device_stateRealmJoin、Entra、IntuneのIDによる1台のデバイスの状態を、要約またはパス単位で。
get_device_by_nameホスト名によるデバイスの検索。
search_devicesマシン名の一部やIDのプレフィックス。
get_tenant_overviewテナントの概要。
get_software_report1つのパッケージのインストール数とバージョン。たとえばgeneric-7zip
list_packagesパッケージID。必要に応じてフィルターできます。

RealmJoin PowerShellモジュール

すべてのアクセス許可を手作業で付与したいテナントや、多数のテナントをオンボーディングするパートナー向けに、PowerShell Galleryのモジュールがセットアップを行います。ポータルで発行したトークンによるオンボーディング、Log AnalyticsとAzure Automationの接続を扱います。

Install-Module RealmJoin
Complete-RJTenantOnboarding -Token <token>
Set-RJLogAnalyticsWorkspace
Set-RJAutomationAccount

KQLとSentinelのためのログテーブル

RealmJoinは、データ収集ルールを使ってLogs Ingestion API経由で自社のワークスペースに書き込みます。共有キーは使いません。何が起きたかは、3つのカスタムテーブルが保持します:

RJAuditLogs_CL
誰が何を変更したか
RJOperationalLogs_CL
RealmJoinが何をしたか
RJRunbookLogs_CL
すべてのRunbookジョブ

役に立つところは、オープンソースで

読みたい、拡張したい、再利用したいと思う部分はGitHubで公開しています。

RealmJoinを、ほかのスタックにつなぐ。

ITSM、SIEM、AIアシスタント。テナントとAPIシークレットがあれば始められます。