コンテンツにスキップ

Access Control Reference

Capgo を使用します。 ロールベースのアクセス制御 (RBAC) を使用して、各チームメンバーが実行できることを管理します。ロールはスコープによって組織化されます。 スコープ スコープ スコープ

スコープ スコープ.


スコープ

スコープ

スコープ

スコープスコープ使用例
組織組織全体とそのすべてのアプリ共同創業者はSuper Admin、会計士はBilling Manager
アプリアプリとそのチャンネル1つのアプリに従事している契約者はApp Developer
チャンネルアプリ内の一つのチャンネルQAエンジニアは staging チャンネル
パッケージバンドルバージョン特定のリリースに読み取り権限があるレビュアーが必要

メンバーは 1つのスコープターゲットごとに — たとえば、1つの組織ロール、App Aのロール、App Bの異なるロール。


メンバーを招待する際に割り当てられるロールです。組織全体にアクセスを許可します。

ロール内部名説明
スーパーアドミンorg_super_adminオーナー相当。組織を削除することや請求管理、アプリの移行を含む完全なコントロール。組織の作成者に自動的に付与される。
管理者org_admin全体管理 — メンバー、 アプリ、 チャンネルを管理。組織を削除、請求管理を更新、 アプリを移行、 ユーザーをスーパーアドミンに昇格することはできない。
請求管理者org_billing_admin請求管理のみアクセス:請求情報、請求書、請求アクセスログを表示および更新。アプリやメンバーにはアクセスできない。
メンバーorg_member組織とそのすべてのアプリへの読み取り専用アクセス。
権限説明スーパーアドミン管理者請求管理者メンバー
org.read組織を表示
org.update_settings組織名、ロゴ、管理メールを編集
org.delete組織を永久に削除
org.read_membersメンバーの一覧を表示
org.invite_user新しいメンバーを招待
org.update_user_rolesメンバーの役割を変更 (管理者はスーパーアドミンに昇格できません — ロール階層によりブロックされます)
org.read_billing請求情報と現在のプランを表示
org.update_billing支払い方法とプランを更新
org.read_invoices請求書を表示
org.read_audit組織活動ログを表示
org.read_billing_audit請求関連の監査ログを表示

アプリロール

アプリロール

1つのアプリにスコープされている。チームメンバーが1つのアプリのみで作業する場合に使用します。

ロール内部名説明
アプリ管理者app_admin1つのアプリの全権限 — チャネル、デバイス、ユーザーロールのアプリ。アプリの削除または移行は組織レベルでの操作です。
アプリ開発者app_developerバンドルアップロード、デバイス管理、ネイティブビルドトリガー、チャネル設定の更新。削除、設定変更、チャネル作成は行えません。
アプリアップローダーapp_uploader読み取り権限 + 新バンドルバージョンのアップロード
アプリリーダーapp_reader読み取り専用 — 統計、バンドル、チャネル、ログ、デバイス。
アプリ プレビューapp_preview組織とアプリに紐づくプレビュー CI ライフサイクル: バンドルをアップロードし、プレビュー チャネルを作成します。チャネルを作成すると、そのライフサイクル権限のみが自動的に付与されます。

アプリ許可マトリックス

アプリ許可マトリックス
許可説明アプリ管理者アプリ開発者アプリアップローダーアプリ閲覧者
app.readアプリの詳細、統計、メタデータを表示
app.update_settingsアプリ設定を編集する
app.read_bundlesアップロードしたバンドルのリストを表示する
app.upload_bundle新しいバンドルのバージョンをアップロードする
app.create_channel新しいチャンネルを作成する
app.read_channelsチャンネルを表示する
app.read_logsアップデート配信ログを表示する
app.manage_devicesデバイスを割り当てる、上書きする、またはリンクを切断する
app.read_devicesデバイスのリストを表示する
app.build_nativeネイティブクラウドビルドをトリガーする
app.read_auditアプリレベルアクティビティログを表示する
app.update_user_rolesアプリスコープロール割り当てを管理する
bundle.deleteバンドルを削除する

アプリプレビュー許可セット

アプリプレビュー許可セット

使用 アプリプレビュー (app_preview組織とアプリに紐づいたCIキーを使用して、PRプレビューライフサイクルを管理します。アプリまたは組織全体に広範なアクセスは必要ありません。

The app_preview binding grants only these app-level permissions:

PermissionAllows
app.readRead the selected app
app.read_bundlesRead uploaded bundles
app.upload_bundleUpload a bundle
app.create_channelCreate a channel

When an App Preview key creates a channel, Capgo automatically gives that key a child channel_preview binding for the new channel only:

PermissionAllows
channel.readチャンネルを作成するためのキーを読みます。
channel.promote_bundleキー自身がアップロードしたバンドルをそのチャンネルに設定します。
channel.deleteそのチャンネルを削除します。

なぜなら app_preview 保存している app.read、キーは選択したアプリでチャンネルメタデータを列挙できます。自動的の子孫バインディングは、キーが作成しなかったチャンネルに対してライフサイクル変化を許可しない管理境界です。 管理 __CAPGO_KEEP_0__は、各チャンネルを作成し、各バンドルをアップロードしたプレビュー キーを記録します。したがって、App プレビュー キーは、必要なすべての非公開プレビュー チャンネルを作成し、自身のバンドルをプロモートし、チャンネルとバンドルを原子的に削除できます。ただし、既存のデフォルト/メイン チャンネル、他のプレビュー キーのチャンネル、または他のキーのバンドルに対してはそれを行うことはできません。

Capgo records the preview key that created each channel and uploaded each bundle. Therefore an App Preview key can create each non-public preview channel it needs, promote its own bundle, and atomically delete that channel and bundle with channel delete --delete-bundle、デバイスまたはロールの管理

It does not include app.update_settings, device or role management, channel.update_settings, channel.rollback_bundle, 強制デバイス管理、または汎用 bundle.delete.


チャンネル ロール

「チャンネル ロール」

チャンネルに特化。特定のリリース チャンネルへのターゲット アクセスを与えるのに役立ちます。

ロール内部名説明
チャンネル管理者channel_admin1 つのチャンネルの完全な管理権限: 設定、バンドルをプロモート/ロールバック、強制デバイスの管理。
チャンネルビューアchannel_reader読み取り専用 — 現在のバンドル、履歴、強制デバイス、監査ログ。
チャンネルプレビューchannel_previewシステムが割り当てられた App Preview キーがチャンネルを作成したときに割り当てられます: 読み取り、自身のバンドルをプロモート、チャンネルを削除できます。

チャンネル権限マトリックス

チャンネル権限マトリックスのセクション
権限説明チャンネル管理者チャンネルビューアチャンネルプレビュー
channel.readチャンネルとその現在のバンドルを表示
channel.update_settingsチャンネルの設定を編集 (プラットフォームのスイッチ、更新ポリシー…)
channel.deleteチャンネルを削除
channel.read_historyバンドル割り当ての履歴を表示
channel.promote_bundleチャンネルに現在のバンドルを設定
channel.rollback_bundle前のバンドルに戻す
channel.manage_forced_devices特定のデバイスにこのチャンネルを強制する
channel.read_forced_devices強制されたデバイスの一覧を表示する
channel.read_auditチャンネル活動ログを表示する

バンドルロールを設定する

バンドルロールの設定

バンドルバージョンにスコープされたもの。ほとんどのチームはアプリレベルロールを使用するので、まれに必要になります。

役割内部名説明
バンドル管理者bundle_admin特定のバンドルを読み、更新、削除できます。
バンドルビューアbundle_reader特定のバンドルへの読み取り専用アクセス

チャンネル権限オーバーライド(ダッシュボード)

「チャンネル権限オーバーライド(ダッシュボード)」のセクション

デフォルトでは、ダッシュボードでチャンネルへのアクセスはユーザーのアプリロールによって決定されます。より細かい制御が必要な場合は、 ユーザーまたはグループごとに特定のチャンネル権限をオーバーライドできます。 __CAPGO_KEEP_0__

上書きは、アプリの アクセス タブから、ユーザーの隣にあるチャンネル許可ボタン(盾のアイコン)をクリックして設定します。 詳細は「 組織 — チャンネル許可の上書き

」を参照してください。

上書き可能な権限
「上書き可能な権限」権限説明
標準動作読み取りアプリロールから継承
履歴チャンネルでのバンドル割り当ての履歴を表示アプリロールから継承
バンドルを関連付けチャンネルに有効なバンドルを設定または変更アプリロールから継承

各権限を次のように設定できます

  • デフォルト — アプリロールから継承 (デフォルト)
  • 許可 — アプリロールを無視して明示的に許可
  • 許可しない — 明示的にブロックする、どのアプリロールに関係なく

これにより、たとえば、App Reader に Bundle を関連付ける権限を与え、App Developer に昇格しないようにすることができます。 staging 役割階層


セクションのタイトル “役割階層”

役割は階層を形成します。親ロールは

すべての権限を継承します の権限をすべて持つことができます。これは、 の権限をすべて持つことができます。これは、 org_admin の権限をすべて持つことができます。 app_admin 階層 channel_admin セクションのタイトル “階層”

Super Admin (org_super_admin)
└── Admin (org_admin)
└── App Admin (app_admin)
├── App Developer (app_developer)
│ └── App Uploader (app_uploader)
│ └── App Reader (app_reader)
├── Bundle Admin (bundle_admin)
│ └── Bundle Viewer (bundle_reader)
└── Channel Admin (channel_admin)
└── Channel Viewer (channel_reader)

実際の動作について:

  • 1 組織レベルでの管理者 組織レベルでの管理者は、組織内のすべてのアプリで、アプリ管理者ができることをすべて実行できます。 2 アプリ管理者
  • アプリ管理者は、指定されたアプリ内のすべてのチャネルで、チャネル管理者ができることをすべて実行できます。 チャネル管理者 チャネル管理者は、指定されたアプリ内のすべてのチャネルで、チャネル管理者ができることをすべて実行できます。 __CAPGO_KEEP_0__ __CAPGO_KEEP_1__
  • An アプリ開発者 can do everything an アプリアップローダ can, plus more.

The hierarchy only flows downward — a channel_admin never gains org-level permissions, even if they also hold an app-level role.


Instead of assigning roles to each user individually, you can create グループ グループに役割を割り当てます。グループのすべてのメンバーは、自動的にそのグループに割り当てられた役割を継承します。

グループのしくみ

「グループのしくみ」
  • グループは 1 つの組織に属します — 1 つの組織を超えては存在できません。
  • グループは 任意のスコープ: 組織、 アプリ、 チャンネル、 チャンネル管理者 アプリケーション B の staging チャンネルの
  • ユーザーのパーミッションが評価される際、すべてのグループのメンバーシップが透過的に解決されます。必要なパーミッションを与えるグループが存在する場合、許可が与えられます。
  • ユーザーは 複数のグループに所属することができます、すべてのグループからのパーミッションは加算されます。
  • グループベースのパーミッションは ユーザープリンシパル API キーはグループロールを継承しません。

グループの使用時期

グループの使用時期
シナリオグループなしグループあり
5人のQAエンジニアが3つのアプリに開発者アクセス権を必要とする15個の個別ロールバインディング1つのグループ + 3つのロールバインディング
QAチームに誰かが参加する3つのロールバインディングを手動で追加するグループに追加する
QAチームから誰かが退会する3つのロールバインディングを手動で削除するグループから削除する

すべてのグループエンドポイントは、認証が必要であり、 /private/groups.

グループの一覧

ターミナル画面
コピー
curl -X GET "https://api.capgo.app/private/groups/<ORG_ID>" \
-H "authorization: <API_KEY>"

許可が必要です。 org.read_members グループの作成

ターミナル画面

グループの管理
すべてのグループエンドポイントは、認証が必要であり、
curl -X POST "https://api.capgo.app/private/groups/<ORG_ID>" \
-H "authorization: <API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"name": "QA Team",
"description": "Quality assurance engineers"
}'

必要な権限 org.update_user_roles 権限 (スーパーアドミン または Capacitorライブアップデートの代替).

Capacitorライブアップデートの代替

Capacitorライブアップデートの代替
Capacitorライブアップデートの代替
curl -X PUT "https://api.capgo.app/private/groups/<GROUP_ID>" \
-H "authorization: <API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"name": "QA Team",
"description": "Updated description"
}'

グループを更新

グループを更新する
ターミナル画面
curl -X DELETE "https://api.capgo.app/private/groups/<GROUP_ID>" \
-H "authorization: <API_KEY>"

グループを削除すると、そのグループのロールのバインドもすべて削除されます。組織のメンバーは削除されません。

グループメンバーの一覧

グループメンバーの一覧
ターミナル画面
curl -X GET "https://api.capgo.app/private/groups/<GROUP_ID>/members" \
-H "authorization: <API_KEY>"

グループにメンバーを追加

グループメンバーを追加
ターミナル画面
curl -X POST "https://api.capgo.app/private/groups/<GROUP_ID>/members" \
-H "authorization: <API_KEY>" \
-H "Content-Type: application/json" \
-d '{ "user_id": "<USER_UUID>" }'

すでに組織のメンバーである必要があります。既存のメンバーを追加することは何も実行されません。

グループからメンバーを削除

グループからメンバーを削除
ターミナル画面
curl -X DELETE "https://api.capgo.app/private/groups/<GROUP_ID>/members/<USER_UUID>" \
-H "authorization: <API_KEY>"

グループのメンバー

メンバーの一覧
ターミナル画面
curl -X GET "https://api.capgo.app/organization/members" \
-H "authorization: <API_KEY>" \
-H "Content-Type: application/json" \
-d '{ "orgId": "<ORG_ID>" }'

応答:

[
{
"uid": "user-uuid",
"email": "alice@example.com",
"image_url": "https://...",
"role": "org_admin",
"is_tmp": false
}
]

メンバーを招待

メンバーを招待
ターミナル画面
curl -X POST "https://api.capgo.app/organization/members" \
-H "authorization: <API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"orgId": "<ORG_ID>",
"email": "bob@example.com",
"invite_type": "org_admin"
}'

許可される値 invite_type:

割り当てられた役割
org_super_admin最高管理者
org_admin管理者
org_billing_admin請求管理者
org_memberメンバー
ターミナル画面
curl -X DELETE "https://api.capgo.app/organization/members" \
-H "authorization: <API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"orgId": "<ORG_ID>",
"email": "bob@example.com"
}'

ターミナル画面
npx @capgo/cli organization list --apikey <API_KEY>
ターミナル画面
npx @capgo/cli organization members <ORG_ID> --apikey <API_KEY>

組み込みロールはほとんどのチーム構造をカバーしています。カスタムロールの作成は、開発計画に含まれています — これがチームが必要としている場合 Capgoにご連絡くださいご利用のケースは、この機能の優先順位を直接決定します。

Access Control Referenceから続けてください

タイトル:Access Control Referenceから続けてください

あなたが利用している場合 Access Control Reference ダッシュボードとAPIの運用計画を行っている場合、API Overviewと接続してください API Overview API Overviewの実装詳細 導入 導入の実装詳細 API Keys 実装詳細の API キー用 デバイス 実装詳細のデバイス、 バンドル 実装詳細のバンドル用