ロールとアクセス制御

TrustMintは**ヘッドレスバックエンドサービス**です — 独自のUIを持ちません。複数のフロントエンドアプリと外部パートナーシステムが利用するREST API(api.flexgalaxy.com/licensing/v1/...)を提供します。起動時に、Keycloak Admin API(スコープとOIDCクライアントの作成)およびDotID Authorization Service API(アクション名前空間とマネージドポリシーの登録)を呼び出してDotIDに自己登録します。

このドキュメントでは、ロールモデル、権限バウンダリー、承認ワークフローの委任、およびTrustMint APIを利用するフロントエンドアプリについて説明します。

ロール

ロール

責任

アクセス方法

**デバイスメーカー**

デバイスのプロビジョニング、プラットフォームへの登録、デバイスインベントリの管理

ThingHub (console.flexgalaxy.com/thinghub/) + API

**ライセンスマネージャー**(オプション)

承認ワークフローをインターセプトしてOFFICIALライセンスリクエストのレビューと承認を行います

パートナーが構築した外部アプリ、FlexGalaxy APIを利用

**ライセンス発行者**

オンデマンドでソフトウェアライセンスを発行し、プラットフォームレベルでデバイス登録を管理します

FlexGalaxy.AIプラットフォーム(TrustMintサービス自体)

単一のアカウントがデバイスメーカーとライセンスマネージャーの**両方のロールを保持できます**

ライセンスマネージャーロールは**オプション**です — TrustMintのWebhookをサブスクライブし、承認ワークフローに介入する外部パートナー(例: WHITE)です。ライセンスマネージャーがいない場合、プラットフォームが承認を直接処理します(下記の 承認ワークフローの委任 を参照)。

権限バウンダリーモデル

TrustMintは自動プロビジョニングされた権限バウンダリーを使用します。アカウントがTrustMintにサブスクライブしてロールを宣言すると、プラットフォームが自動的に適切な権限バウンダリーを割り当てます — 一般的なケースでは手動セットアップは不要です。

Account subscribes to TrustMint
     │
     ├── Declares role: Device Manufacturer
     │     └── Auto-assign: devices.read, devices.write, events.read, certificates.read
     │
     ├── Declares role: License Manager
     │     └── Auto-assign: approvals.read, approvals.write, devices.read, licenses.read
     │
     └── Declares both roles
           └── Auto-assign: union of both permission sets

権限バウンダリーはDotIDのポリシーベースアクセス制御モデルにマッピングされます — 各ロール宣言が対応するマネージドポリシーセットの割り当てをトリガーします。RBACエンティティは不要です。「ロール」はどのポリシーが適用されるかを決定するラベルにすぎません。

プラットフォーム管理者はエッジケースに対してSuperCrew (stargate.flexgalaxy.com/supercrew) を通じて権限バウンダリーを手動でオーバーライドできます。

IAMの分離

TrustMintはIDおよびアクセス管理を処理**しません**:

  • アクセスキーとシークレットキー**はユーザーが**AdminCenter (console.flexgalaxy.com/admincenter/) のサービスユーザーページを通じてセルフサービスで作成・管理します。

  • **認証**はKeycloak(DotID)が処理します — TrustMintは純粋なOAuth2 Resource Serverです。

  • Authorization policies are managed centrally by the platform IAM service.

この分離により、IAMの関心事はDotIDに集約され、TrustMintはライセンスライフサイクル管理のみに集中できます。

承認ワークフローの委任

ライセンス承認ワークフローは**設定可能な委任**をサポートしています。ライセンスマネージャーロールはオプションの仲介者です — プラットフォームはライセンスマネージャーの有無に関わらず動作します。

シナリオ

TRIALライセンス

OFFICIALライセンス

**ライセンスマネージャー未設定**

自動承認(プラットフォームが自動発行)

自動承認またはプラットフォーム管理者がBoardingPassでレビュー

**ライセンスマネージャー登録済み**(例: WHITE)

自動承認(プラットフォームが自動発行)

Webhook → パートナーの外部アプリ → APIによる決定コールバック

ライセンスマネージャーパートナーがアカウントにWebhookサブスクライバーを登録すると、license_upgrade.requested イベントを**インターセプト**し、決定をコールバックします。これは承認権限の委任です — パートナーはFlexGalaxy APIを使用して独自の承認UIを構築します。

Webhookサブスクライバーが登録されていない場合、プラットフォームが直接処理します:

  • TRIALリクエストは常に自動承認されます

  • OFFICIALリクエストは自動承認(アプレットトリアージカテゴリに基づく)されるか、BoardingPassでプラットフォーム管理者のレビュー待ちとなります

OFFICIAL license request arrives
     │
     ├── Webhook subscriber registered?
     │     │
     │     ├── YES → Send license_upgrade.requested webhook
     │     │         Partner reviews in their own app
     │     │         Partner calls POST /.../decision
     │     │
     │     └── NO  → Queue for platform admin
     │               Admin reviews in BoardingPass
     │               Admin approves/refuses
     │
     └── Decision received
           ├── APPROVE → Issue certificate + JWT, update subscription
           └── REFUSE  → Mark as refused

テナントおよびプラットフォームツール

ThingHub

URL:

console.flexgalaxy.com/thinghub/

KCクライアント:

thinghub

対象ユーザー:

デバイスメーカー、ライセンスマネージャー

ThingHubはデバイスライフサイクル全体 — 登録、ライセンス、ソフトウェアアップデート — のための統合テナントアプリです。これらの密結合された関心事をタブベースナビゲーションの単一アプリに統合しています。

タブ:

  • **デバイス** — 登録(単体およびバッチ)、ステータスとメタデータ付きデバイスインベントリ、登録履歴とプロビジョニングイベント。デバイスの登録によりTrustMintで自動TRIALライセンス発行がトリガーされます。

  • **ライセンス** — 発行済みのすべてのライセンス(TRIAL、OFFICIAL)のステータスと有効期限の表示、ライセンスアップグレード(TRIALからOFFICIAL)のリクエスト、承認ステータス(PENDING、APPROVED、REFUSED)の追跡、証明書とトークンの詳細。

  • アップデート(OTA) — ソフトウェアアップデート管理、ロールアウトステータス、アップデート履歴。

登録フロー:

Manufacturer enrolls device in ThingHub (Devices tab)
     │
     ├── TrustMint creates device record
     ├── Auto-issues TRIAL license (X.509 cert + JWT token)
     ├── Records issuance in license ledger
     ├── Sends device.provisioned webhook (if subscriber registered)
     │
     └── Manufacturer views license in ThingHub (Licenses tab)

BoardingPass

URL:

stargate.flexgalaxy.com/boardingpass

KCクライアント:

``boardingpass``(マスターレルム)

対象ユーザー:

プラットフォーム管理者

BoardingPassはプラットフォーム管理者のライセンスの世界への窓です。すべてのライセンス操作へのアカウント横断的な可視性を提供し、外部ライセンスマネージャーが設定されていない場合のフォールバック承認UIとして機能します。

主な機能:

  • ライセンス発行分析(タイプ別、アカウント別、時系列)

  • 全アカウントのデバイス登録統計

  • 使用傾向とキャパシティプランニング

  • OFFICIALライセンスのフォールバック承認ワークフロー(Webhookサブスクライバーがない場合)

  • プラットフォーム全体のライセンス監査証跡

BoardingPassはSuperCrewとは別です。SuperCrewはIAM管理に焦点を当て、BoardingPassはライセンス運用に焦点を当てています。

DeckLoader

URL:

stargate.flexgalaxy.com/deckloader

KCクライアント:

``deckloader``(マスターレルム)

対象ユーザー:

プラットフォーム管理者

DeckLoaderは全アカウントのデバイス管理を行うプラットフォーム管理者ツールです。ThingHubがテナントに自身のデバイスのビューを提供する一方、DeckLoaderはプラットフォーム全体の可視性と制御を提供します。

主な機能:

  • アカウント横断デバイスインベントリと検索

  • 全テナントのデバイスステータスモニタリング

  • プラットフォーム全体の登録統計

  • デバイスライフサイクル管理(一時停止、取り消し、移管)

ツールサマリー

ツール

ゲートウェイ

対象ユーザー

責任

ThingHub

Console

テナント

デバイスライフサイクル: 登録、ライセンス、OTAアップデート

AdminCenter

Console

テナント

IAMセルフサービス: ユーザー、グループ、ポリシー、アクセスキー

DeckLoader

StarGate

プラットフォーム管理者

全アカウントのプラットフォーム全体のデバイス管理

BoardingPass

StarGate

プラットフォーム管理者

ライセンス分析、フォールバック承認、監査

SuperCrew

StarGate

プラットフォーム管理者

IAMプラットフォーム管理、権限バウンダリーのオーバーライド