Skip to content

アクセス制御リファレンス

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

スコープ スコープ.


スコープ

スコープ

スコープ

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

メンバーは 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請求関連の監査ログを表示

チャネル管理者

App ロール

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アプリプレビュー

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は、チャンネルを作成し、各バンドルをアップロードしたプレビュー キーを記録します。したがって、App プレビュー キーは必要なすべての非公開プレビュー チャンネルを作成し、自身のバンドルをプロモートし、チャンネルとバンドルを原子的に削除できます。ただし、既存のデフォルト/メイン チャンネル、別のプレビュー キーのチャンネル、または別のキーのバンドルに対してはそれを行うことはできません。 channel delete --delete-bundle含まれない

、デバイスまたはロールの管理 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特定のバンドルへの読み取り専用アクセス

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

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

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

上書きは、アプリの アクセス タブから、ユーザーに隣接するチャンネル許可ボタン(盾アイコン)をクリックして設定します。 Organization — 上書きチャンネル許可 上書き可能な権限

「上書き可能な権限」

権限
説明デフォルトの動作読み取り
チャンネルとその現在のバンドルを表示します。Organization — 上書きチャンネル許可アプリロールから継承
履歴バンドルの割り当て履歴を表示アプリロールから継承
バンドルを関連付けチャンネルに表示されているアクティブなバンドルを設定または変更アプリロールから継承

各権限を次のいずれかに設定できます

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

これにより、たとえば、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)

実際の動作について:

  • 組織 組織レベルでAdmin 組織レベルでAdminと同等の権限を持つ アプリ アプリレベルでAdmin
  • アプリレベルでAdminと同等の権限を持つ アプリ チャンネル チャンネルレベルでAdmin チャンネルレベルでAdminと同等の権限を持つ
  • An アプリ開発者 can do everything an アプリアップローダ can, plus more.

The hierarchy only flows 下向き downward channel_admin


never gains org-level permissions, even if they also hold an app-level role. Groups Groups Section titled “Groups” Instead of assigning roles to each user individually, you can create グループ グループに役割を割り当てます。グループのすべてのメンバーは、自動的にそのグループに割り当てられた役割を継承します。

グループのしくみ

「グループのしくみ」
  • グループは 1 つの組織に属します — 複数の組織を跨ぐことはできません。
  • グループは 任意のスコープ: 組織、 アプリ、 チャネル、 または バンドル。たとえば、グループはアプリ A に "アプリ開発者" の役割を割り当て、 アプリ開発者 役割 チャンネル管理者 __CAPGO_KEEP_0__のチャンネル staging App Bのチャンネル
  • ユーザーの権限が評価される際、すべてのグループのメンバーシップが透過的に解決されます。グループのいずれかが必要な権限を付与している場合、許可が与えられます。
  • ユーザーは 複数のグループに属することができ、すべてのグループからの権限は加算されます。
  • グループベースの権限は ユーザープリンシパル にのみ適用されます。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 権限 (スーパーアドミン または 管理者).

グループを更新

ターミナル画面
クリップボードにコピー
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>"

__CAPGO_KEEP_0__

メンバーの一覧
ターミナル画面
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から続けてください”

Capgoを使用している場合 ダッシュボードと__CAPGO_KEEP_0__の運用計画を行うためにAccess Control Referenceを使用している場合、__CAPGO_KEEP_0__ Overviewと接続してください API Overviewの実装詳細について API Overview API Keysの実装詳細について Capgo Capacitor API Keys 実装詳細の API キーについて デバイス 実装詳細のデバイスについて、 バンドル 実装詳細のバンドルについて