コンテンツにジャンプする

Access Control Reference

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

組織 ロールスコープ.


スコープ

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

メンバーは保持できます 1つのスコープごとに 1 つの役割 — 例えば、組織ロールが 1 つ、App A のロールが 1 つ、そして 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アプリプレビューを使用します。

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 — チャンネルパーミッションのオーバーライド

視覚的なウォークスルーを参照してください。

オーバーライド可能なパーミッション
セクションパーミッション説明
デフォルトの動作Readアプリロールから継承
履歴チャンネルでのバンドルの割り当て履歴を表示アプリロールから継承
バンドルを関連付けチャンネルに表示されているバンドルを設定または変更アプリロールから継承

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

  • デフォルト — アプリロールから継承 (デフォルト)
  • 許可 — アプリロールのロールとは無関係に明示的に許可
  • 許可 — 例外的にブロックする、どのアプリロールにもかかわらず

これにより、たとえば、App Reader に bundle を関連付ける権限を与えることができます。 staging チャンネル


しかし、App Developer に昇格することはできません。

役割階層

セクションのタイトル “役割階層” 役割は階層を形成します。親ロールは すべての権限を継承します 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 組織レベルでの管理者 組織レベルでの管理者は、組織内のすべてのアプリで、アプリ管理者ができることをすべて実行できます。 1 アプリ管理者
  • アプリ管理者は、指定されたアプリ内のすべてのチャンネルで、チャンネル管理者ができることをすべて実行できます。 2 アプリ管理者 アプリ管理者は、指定されたアプリ内のすべてのチャンネルで、チャンネル管理者ができることをすべて実行できます。 2
  • An App Developer アプリケーション開発者 can do everything an アプリケーションアップローダー

can, plus more. The hierarchy only flows downward channel_admin — a


never gains org-level permissions, even if they also hold an app-level role.

グループ

グループのセクション "Groups" です。 グループ グループに役割を割り当てることができます。グループのメンバー全員が自動的にその役割を継承します。

グループのしくみ

「グループのしくみ」
  • グループは 1 つの組織に属します 組織をまたいだグループは作成できません。
  • グループは 任意のスコープで役割のバインディングを保持できます組織、またはアプリ、チャンネル、またはバンドル 例えば、グループはアプリ A に "アプリ開発者" の役割を割り当てることができます。 アプリ A に "アプリ開発者" の役割を割り当てることができます。 チャンネル管理者 アプリケーション B の staging チャンネルの
  • 権限の評価の際、ユーザーのグループのメンバーシップは透明に解決されます。グループのいずれかが必要な権限を付与している場合、許可が与えられます。
  • ユーザーは 複数のグループに属することができます、そして、すべてのグループから付与された権限は加算されます。
  • グループベースの権限は ユーザープリンシパル — API keys do not inherit group roles.

__CAPGO_KEEP_0__ キーはグループロールを継承しません。

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

すべてのグループエンドポイントは認証が必要であり、以下のURLで提供されます。 /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>"

グループのUUID

メンバーの一覧
ターミナル画面
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を使用している場合 Access Control Reference ダッシュボードとAPIの運用計画に利用している場合、API Overviewと接続してください API Overview API Overviewの実装詳細について 導入 導入の実装詳細について API Keys API キーの実装詳細について デバイス __CAPGO_KEEP_0__ キー、デバイス、および バンドル __CAPGO_KEEP_0__ キーの実装詳細についてバンドル。