コンテンツに進む

API キー

APIキーは、Capgo APIへのリクエストを認証するために使用されます。キーは組織固有であり、RBACロールを割り当てることで細かいアクセス制御が可能です。各キーには期限切れ日付がオプションで設定でき、セキュアキー(ハッシュ化されたキー)として作成することもできます。ハッシュ化されたキーでは、平文値は一度だけ表示されます。

APIキーを使用する

APIキーを使用する

APIキーを使用する場合、ドキュメントされている認証ヘッダーを使用してください。APIキー要求の場合、 authorization 受け入れられるのは次のようになります:

ターミナル画面
curl -H "authorization: YOUR_API_KEY" https://api.capgo.app/...

チャンネル__CAPGO_KEEP_0__ APIキーは、__CAPGO_KEEP_1__ __CAPGO_KEEP_2__へのリクエストを認証するために使用されます。キーは組織固有であり、RBACロールを割り当てることで細かいアクセス制御が可能です。各キーには期限切れ日付がオプションで設定でき、セキュアキー(ハッシュ化されたキー)として作成することもできます。ハッシュ化されたキーでは、平文値は一度だけ表示されます。 受け入れます authorization または capgkeyHTMLテキストのセグメントを使用してください。

ロールベースのアクセス制御 (RBAC) のシステムを使用します。

「RBAC 権限」

API keys use the same role-based access control (RBAC) system as user accounts. When creating or managing keys through the web app or API, you assign roles at two levels:

  • 組織全体の基準の許可を定義します。 アプリロール org_admin または org_member).
  • アプリごとの許可を定義します。 __CAPGO_KEEP_1__ app_admin, app_developer, app_uploader, app_reader, or app_preview).

API キーが明示的なロールのバインドを持つ場合 明示的なロールのバインドのみが許可チェックの評価対象となります。 キー所有者の個人的な許可はキーに継承されません。

プレビュー チャンネル自動化

「プレビュー チャンネル自動化」

バインド app_preview CI が作成する一時的な非公開プレビュー チャンネル、バンドルをアップロードし、プロモートし、両方を削除するアプリのプレビュー用にのみバインドします。

{
"name": "PR preview key",
"hashed": true,
"bindings": [
{
"role_name": "app_preview",
"scope_type": "app",
"org_id": "<OWNING_ORG_UUID>",
"app_id": "<APP_UUID>"
}
]
}

org_id アプリの所有組織の UUID です。 app_id アプリ レコードの内部 UUID です。CLI コマンドで使用されるパブリック アプリ識別子とは異なります (例えば、 com.example.appバインドは組織全体のロールを持たないキーでも組織に依存し続けます。

アプリレベル app_preview ロールには app.read, app.read_bundles, app.upload_bundleのみ含まれます。 app.create_channelキーがチャンネルを作成すると、Capgoが自動的に追加します。 channel_preview . そのキーがチャネルを作成すると、__CAPGO_KEEP_0__は新しく作成されたチャネルに channel.read, channel.promote_bundleのみ含まれます。 channel.delete を自動的に追加します。 その子チャネルは、キーが作成したチャネルに対してのみ

app_preview を許可します。 app.read保持 , したがって、これは厳格なチャネル読み取り隔離ではありません: キーは選択したアプリのチャネルメタデータを列挙できます。 自動的に作成された子チャネルは、キーが作成したチャネルに対してのみ のライフサイクル変化を制限します。

Capgoは、各バンドルをアップロードしたApp Previewキーを記録します。 キーは、自身のバンドルを各プレビュー チャネルにのみ昇格できます。 すでに存在するデフォルト/メインチャネル、別のプレビュー キーによって作成されたチャネル、または別のキーのバンドルに対しては、チャネルライフサイクルアクセスはありません。 このワークフローでは public を省略し、使用しないでください。 --default.

使用 channel delete <preview-channel> <public-app-id> --delete-bundle キャッシュのクリア用に使用してください。 このルートは、所有権のチェックされた原子的なプレビューのクリーンアップルートです。 これは、呼び出し元のキーだけのプレビュー チャネルとリンクされたバンドルを削除します。 app_preview 一般的な権限を付与しない bundle.delete.

ダッシュボードのセットアップと完全なCLIの例については、 App プレビュー キーをプレビュー ワークフローに使用してください.

RBAC API キーの権限の動作を説明する図

組織の作成権限

「組織の作成権限」

API org.create.

組織を作成する際に使用される __CAPGO_KEEP_0__ キーは、明示的なグローバルパーミッションを使用します: POST /organization/ このパーミッションは、通常のorg/appロールバインディングとは別のものです。API キーが呼び出される時点では、まだ組織が存在していません。

  • API キーを使用して組織を作成するには: org.create in global_permissions.
  • APIキーは同じAPIキーも、現在の組織スコープで有効な必要があります。 org_admin or org_super_admin または
  • New APIキーは更新されません org.create 新しい__CAPGO_KEEP_0__ キーはデフォルトでは を受けません。__CAPGO_KEEP_0__ キーを有効にするには 組織を作成する際に許可するには、RBAC API キーをダッシュボードで作成または編集する際に「組織を作成する」を有効にします。
  • 既存の書き込み可能な組織管理者/管理者APIキーは、 org.create 既存の統合が組織を作成し続けることができるように、

APIキーが組織を作成すると、Capgoは自動的に同じAPIキーを org_super_admin 新しく作成された組織に割り当てる。このようにすると、統合は自分で作成した組織を管理することができるようになり、別の手動ロールバインディングが必要なくなる。

APIキーをAPI経由で作成した場合、 global_permissions 組織管理者バインディングと一緒に含める:

{
"name": "Provisioning key",
"hashed": true,
"bindings": [
{
"role_name": "org_admin",
"scope_type": "org",
"org_id": "00000000-0000-0000-0000-000000000000"
}
],
"global_permissions": ["org.create"]
}

org.create context org_super_admin.

Page/area: Capgo marketing website. Role: UI label. Seen in: page agents/[slug].astro. Message key `agents_page_copy_label` (Agents Page Copy Label).

組織を作成する場合にのみ適用される。組織を削除するには、通常はターゲット組織に対して削除権限が必要であり、

セキュア (ハッシュ) キー

  • context 取得できません。 作成後。
  • 再生成は、新しいテキストキー (一度表示) と、保存されたハッシュを更新します。
  • プロダクション用にはハッシュ化されたキーが推奨されます。

組織ポリシーでハッシュ化されたキーを強制する組織もあります。 enforce_hashed_api_keys 期限切れ

組織ポリシーで強制することができます:

期限切れを必須にする

  • すべての新しいキーには期限切れを設定する必要があります。 (require_apikey_expiration—
  • 最大有効期限 (max_apikey_expiration_days)— 有効期限は今からN日以内にしか設定できません。

セキュリティのベストプラクティス

セクション「セキュリティのベストプラクティス」
  1. 最小権限の原則: 最も制限が厳しいロールを割り当て、機能するようにすることができる限り
  2. 定期的なローテーション: API キーを定期的に再生成機能を使用してローテーションする
  3. 安全なストレージ: API キーを安全に保存し、バージョン管理にコミットしないようにする
  4. ハッシュ化されたキーを使用する: 生産環境の統合用に安全な(ハッシュ化された)キーを作成する
  5. 期限設定: 一時またはCI/CDアクセス用のキーに常に期限を設定する
  6. スコープ制限: 最小必要ロールを持つ特定のアプリにキーを制限する

一般的な使用例

: 「一般的な使用例」
  1. CI/CD統合: 特定のアプリにスコープを設定し、期限を設定する app_uploader または app_developer : 特定のアプリにスコープを設定し、期限を設定する
  2. ロール、そして期限を設定するプレビュー チャンネル app_preview CIのビルド時にアップロードするバンドルを作成し、臨時チャネルを作成し、自身のチャネルとバンドルを原子的に削除する場合にのみ、プレビューアプリまたはアプリにのみ適用される。
  3. デプロイメントオートメーション: 自動デプロイスクリプトで使用するキーのみ。 app_developer 監視ツール
  4. : 外部監視統合用にキーのみを作成する。管理者アクセス app_reader 管理ツールにのみ使用するため、管理者アクセスを慎重に使用する。
  5. サードパーティ統合: 自動デプロイスクリプトで使用するキーのみ。 org_admin : 最小限の権限で特定のアプリに制限されたキーのみを作成する。
  6. Deployment AutomationMonitoring Tools
  7. 組織プロビジョニング: Capgoの org_admin または org_super_admin RBACキーは、信頼できる自動化にのみ使用する必要があります。組織を作成する org.create __CAPGO_KEEP_0__ キーから続けてください

API キーから続けてください

API キーの継続

__CAPGO_KEEP_0__/__CAPGO_KEEP_1__-social-loginの実装詳細については、@__CAPGO_KEEP_0__/__CAPGO_KEEP_1__-social-loginを参照してください API キー 認証とアカウントのフローを計画するには capgo キーを使用して、認証とアカウントフローの計画を行っている場合、@capgo/capacitor-social-loginに接続してください capgo/capacitor-social-loginの実装詳細については、@capgo/capacitor-social-loginを参照してください @capgo/capacitor-パスキー @capgo/capacitor-passkey @capgo/capacitor-native-biometric @capgo/capacitor-native-biometric 2要素認証 2要素認証の実装詳細については SSO (Enterprise) SSO (Enterprise)の実装詳細については