> ## Documentation Index
> Fetch the complete documentation index at: https://docs.devin.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# OIDC を使用したクラウド認証

> OpenID Connect を介して、Devin にクラウドサービスへの短期間かつキー不要のアクセスを付与します

Devin は、長期的な認証情報の代わりに、OpenID Connect (OIDC) のワークロード ID フェデレーションを使用してクラウドサービスに認証できます。各 Devin セッションには、Devin が発行する短期間有効な ID トークンが付与され、クラウドプロバイダーがそのトークンを検証して一時的な認証情報と交換します。静的な APIキーやシークレットを Devin に保存する必要はありません。

<div id="how-it-works">
  ## 仕組み
</div>

1. すべてのDevinセッションには、Devinによって署名された短期間有効な**IDトークン**が自動的に発行され、セッションの有効期間中は更新されます。
2. クラウドプロバイダーは、Devinの公開OIDC発行者に対してトークンを検証し、一時的かつスコープが限定されたアクセスを許可します。

トークンには、`org_id`、`devin_id`、`requesting_user_email`など、セッションを識別するクレームが含まれます。これにより、組織全体、特定のセッション、または特定のユーザーへのアクセスを許可する信頼ポリシーを作成できます。トークンは自動的に期限切れになるため、ローテーションや失効は必要ありません。

<div id="setup-actions">
  ## セットアップアクション
</div>

該当するアクションを[環境ブループリント](/ja/onboard-devin/environment/blueprints)の`initialize`セクションに追加します。

| アクション                                                                                   | 目的                                                             |
| --------------------------------------------------------------------------------------- | -------------------------------------------------------------- |
| [`setup-aws-oidc`](https://github.com/CognitionAI/actions/tree/main/setup-aws-oidc)     | IAM `AssumeRoleWithWebIdentity` による AWS CLI と SDK の認証          |
| [`setup-gcp-oidc`](https://github.com/CognitionAI/actions/tree/main/setup-gcp-oidc)     | Workload Identity Federation による gcloud と Google Cloud SDK の認証 |
| [`setup-vault-oidc`](https://github.com/CognitionAI/actions/tree/main/setup-vault-oidc) | JWT/OIDC 認証メソッドによる HashiCorp Vault CLI の認証                     |
| [`setup-jfrog-oidc`](https://github.com/CognitionAI/actions/tree/main/setup-jfrog-oidc) | JFrog の OIDC トークン交換による JFrog CLI の認証                           |
| [`setup-devin-oidc`](https://github.com/CognitionAI/actions/tree/main/setup-devin-oidc) | Devin を ID プロバイダーとして信頼するサービス向けの基本 `devin-oidc` CLI             |

<div id="example-aws">
  ### 例: AWS
</div>

```yaml theme={null}
initialize:
  - uses: github.com/CognitionAI/actions/setup-aws-oidc@main
    with:
      role-arn: "arn:aws:iam::123456789012:role/devin-sessions"
      region: "us-east-1"
```

これにより、Devin は認証情報を保存することなく AWS コマンドを実行できます。

```bash theme={null}
aws sts get-caller-identity
```

AWS 側で必要な前提条件と設定オプションについては、[`setup-aws-oidc` のドキュメント](https://github.com/CognitionAI/actions/tree/main/setup-aws-oidc)を参照してください。

<div id="example-custom-services">
  ### 例: カスタムサービス
</div>

独自の API や内部サービスの場合は、ベース CLI を利用して、サービスが受け入れる任意のオーディエンス向けトークンをリクエストします。

```bash theme={null}
devin-oidc token --audience my-api --subject-keys "org_id"
```

サービスでDevin の OIDC 発行者を信頼し、公開されている JWKS (`/.well-known/jwks.json`) を使用してトークンを検証するよう設定します。発行者はDevin webappのオリジンです。`https://app.devin.ai`、またはEnterpriseデプロイメントの場合は独自ドメイン (例: `https://yourdomain.devinenterprise.com`) になります。

<div id="token-claims">
  ## トークンのクレーム
</div>

トークンには以下のアイデンティティクレームが含まれます。これらは信頼ポリシーで参照でき、`subject-keys` を使用してトークンのサブジェクトを構成できます。サブジェクトは、選択したクレームの `key:value` ペアから作成されます。たとえば、`--subject-keys "org_id"` (デフォルト) を指定すると、`org_id:a67b8de8-9483-4a9c-9662-51c3d2a45e88` のようなサブジェクトが生成されます。

| クレーム                                           | 説明                                     |
| ---------------------------------------------- | -------------------------------------- |
| `org_id`                                       | セッションが開始された組織                          |
| `account_id`                                   | アカウント (Enterprise または単一組織の顧客) の識別子     |
| `devin_id`                                     | Devin セッション ID                         |
| `devin_trigger`                                | セッションの開始方法 (例: `webapp`、`slack`、`api`) |
| `requesting_user_id` / `requesting_user_email` | セッションを開始したユーザー                         |
| `service_user_id`                              | API によって開始されたセッションのサービスユーザー            |

<div id="security-properties">
  ## セキュリティ特性
</div>

* **長期的な認証情報は不要**: トークンは短期間で期限切れとなり、自動的に更新されます。セッション終了時にローテーションや失効を行う必要はありません。
* **スコープが限定されたアクセス**: オーディエンスでスコープが限定されたトークンは、リクエストされた特定のサービスに対してのみ有効です。また、信頼ポリシーにより、アクセスを許可できるIdentityを厳密に制御できます。
* **監査可能なIdentity**: トークンにはセッション、組織、リクエスト元ユーザーの情報が含まれるため、クラウド側の監査ログではすべてのアクションが特定のDevinセッションに紐付けられます。

<Note>
  カスタムドメインを使用するEnterpriseデプロイメントでは、アカウントごとに専用の署名キーが用意され、トークンの発行者はカスタムDevin URLになります。発行者URLと組織IDについては、Devin管理者またはCognitionサポートにお問い合わせください。
</Note>
