サービスアカウントを使うと、従業員個人のアカウントに依存せず、ヘッドレス環境で Codex のワークフローを実行し、組織全体に展開できます。継続的インテグレーション(CI)のランナー、スケジュール実行するジョブ、共有の連携機能には、それぞれ専用の ChatGPT ワークスペース ID が割り当てられます。個人のアカウントと同様に、グループやロールを割り当て、アクセスを制御し、操作を監査できます。
サービスアカウントを作成できるのは、ワークスペースのオーナーと管理者だけです。オーナーと管理者は、他のユーザーやグループに、アカウントの管理、プラグインの設定、アクセストークンの作成を許可できます。
サービスアカウントは、個人に紐づかないワークスペース ID です。個人アクセストークンは、そのトークンを作成したワークスペースメンバーを識別します。API プラットフォームのプロジェクト用サービスアカウントと API キーには、プロジェクト単位のアクセス権と課金が別途適用されます。
サービスアカウントの作成と設定
次の対話型ガイドでは、GitHub を例に、アカウントの作成、プラグインの設定、トークンの作成、グループとロールの割り当てを順に試せます。
Interactive walkthrough
Select the plus button, name your service account, and select Create.
Service accounts
Create workspace-owned accounts for automated workflows that need their own access.
| Name | Status | Created by | Date added | Actions |
|---|---|---|---|---|
| Active | Alex Kim alex@example.com | Jul 23, 2026 | ||
| Active | Jordan Lee jordan@example.com | Jul 18, 2026 | ||
| Active | Sam Patel sam@example.com | Jul 8, 2026 |
- ワークスペース設定でサービスアカウントを開きます。
- プラス(+)ボタンを選択し、
release-automationなど、用途がわかる名前を入力します。 - 作成を選択します。
プラグインの接続
プラグインはサービスアカウントごとに設定します。作成者のプラグインや接続済みアプリは引き継がれません。
- アカウントのプラグインセクションを開き、プラグインを追加を選択します。
- プラグインを選び、設定済みまたは有効と表示されることを確認します。
プラグインを設定できるのは、設定ロールとマネージャーロールです。ユーザーロールでは設定できません。
アクセストークンの作成
サービスアカウントの詳細ページからトークンを作成します。このトークンで認証すると、作成者個人ではなく、サービスアカウントとして識別されます。
- アカウントを開き、トークンを作成を選択します。この項目はアクセストークンセクションにあります。
- トークンに名前を付け、Codex スコープを確認して、有効期限を選びます。
- 作成を選択し、トークンをシークレットマネージャーに保存します。
トークンの値がすべて表示されるのは一度だけです。選択できる有効期限はワークスペースのポリシーで決まります。
ロールとグループの割り当て
サービスアカウントにも、個人のワークスペースメンバーと同様に、ワークスペースのロールを割り当てたり、グループに追加したりできます。作成者の権限は引き継がれないため、サービスアカウントに直接アクセス権を付与します。
ユーザーやグループにアカウントの管理を許可するには、共有、ユーザーまたはグループを追加の順に選択し、次のいずれかのロールを割り当てます。
| 共有アカウントのロール | アカウントとプラグインの設定 | サービスアカウントのアクセストークンの作成 |
|---|---|---|
| ユーザー | 不可 | 可 |
| 設定 | 可 | 不可 |
| マネージャー | 可 | 可 |
これらのロールは、アカウントを管理するユーザーに適用されます。サービスアカウント自体に割り当てるワークスペースのロールやグループとは別です。
設定ロールとマネージャーロールでは、アカウントを有効化または無効化できます。アカウントを作成、削除、共有できるのは、ワークスペースのオーナーと管理者だけです。オペレーターは、自分の ChatGPT アカウントにサインインして共有アカウントを管理します。
ワークスペースの権限について詳しくは、ロールとワークスペースの権限を参照してください。
サインインなしでの Codex の実行
サービスアカウントのアクセストークンを使用するには、Codex CLI バージョン 0.142.0 以降が必要です。CODEX_ACCESS_TOKEN を設定すると、ブラウザを開かずに Codex を実行できます。
export CODEX_ACCESS_TOKEN="<service-account-access-token>"
codex exec --json "Inspect this repository and summarize its current state."
CI では、シークレットマネージャーまたはランナーのシークレットを通じてトークンを渡します。
信頼できるマシンにログイン情報を保存するには、標準入力からトークンを渡します。
printf '%s' "$CODEX_ACCESS_TOKEN" | codex login --with-access-token
codex exec "Summarize the changes in the current branch."
この操作で認証情報がローカルに保存されます。共有ランナーや一時的なランナーでは、ログイン情報を保存せずに CODEX_ACCESS_TOKEN を使用してください。
SCIM によるサービスアカウントのプロビジョニング
ワークスペースが System for Cross-domain Identity Management(SCIM)プロトコルによるサービスアカウントのプロビジョニングに対応している場合は、ID プロバイダーで userType を ServiceAccount に設定します。
{
"schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"],
"userName": "svc-codex-release@company.example",
"displayName": "Codex release automation",
"active": true,
"userType": "ServiceAccount"
}
作成した ID をワークスペースと必要なグループに割り当ててから同期します。アカウントの名前、所属グループ、ライフサイクルは ID プロバイダーで管理します。SCIM で管理しているアカウントは、ChatGPT では名前を変更したり削除したりできません。グループとプロビジョニングを参照してください。
Admin API によるサービスアカウントの管理
ワークスペースで Admin API を利用できる場合は、ChatGPT Admin API キーを使ってアカウント、トークン、共有設定を管理できます。読み取りには chatgpt.enterprise.service_account.read 権限が、変更には chatgpt.enterprise.service_account.write 権限が必要です。サービスアカウントのトークンは、Admin API リクエストの認証には使用できません。
利用できる操作と最新のリクエストパスは、Admin API リファレンスで確認してください。
アカウント
| 操作 | メソッド | 説明 |
|---|---|---|
| アカウント一覧の取得 | GET |
ワークスペースのサービスアカウント一覧を返します。 |
| アカウントの作成 | POST |
指定した名前でサービスアカウントを作成します。 |
| アカウントの取得 | GET |
サービスアカウントを 1 件返します。 |
| アカウントの有効化または無効化 | PATCH |
アカウントの enabled の値を更新します。 |
| アカウントの削除 | DELETE |
アカウントを削除し、そのトークンを失効させます。 |
アカウントの作成には POST /v1/manage/workspaces/{workspace_id}/service-accounts を使用します。アカウントの更新で変更できるのは enabled だけです。
トークン
| 操作 | メソッド | 説明 |
|---|---|---|
| トークン一覧の取得 | GET |
アカウントに属する各トークンのメタデータを返します。 |
| トークンの作成 | POST |
指定したスコープのアクセストークンを作成します。 |
| トークンの失効 | DELETE |
指定したトークンを恒久的に無効にします。 |
たとえば、30 日後に期限が切れる Codex トークンを作成するには、次の値を指定します。
{
"name": "production-release-runner",
"ttl": 2592000,
"scopes": ["chatgpt.workspace.feature.allow-codex-local-access.access"]
}
ttl はトークンの有効期間を秒単位で表します。有効期限を設ける場合は、ワークスペースの有効期限ポリシーに従い、1 年未満の期間を指定する必要があります。access_token の値がすべて返されるのは、トークンを作成したときだけです。
Admin API では、共有アカウントへのアクセス権の一覧取得、追加、更新、削除もできます。ロールに指定できる値は manager、configurer、user です。configurer は ChatGPT では設定と表示されます。
サービスアカウントのセキュリティと管理
- ロール、グループ、プラグイン、接続は、ワークフローに必要なものだけを割り当てます。
- トークンはシークレットマネージャーに保存し、信頼できるランナーを使用します。
- 認証情報をログやチャットメッセージに含めたり、バージョン管理システムに登録したりしないでください。
- トークンには有効期限を設定し、アカウントのアクセス権と利用状況を定期的に確認します。
- トークンをローテーションするには、新しいトークンを作成し、ワークフローを更新します。新しいトークンでアクセスできることを確認してから、ワークスペースまたは Admin API で古いトークンを失効させます。
- トークンが漏えいした場合は、直ちに失効させ、アカウントの最近の利用状況を調査します。
- 使用していないアカウントは、ワークスペースまたは Admin API で無効化または削除します。どちらの操作でも、有効なトークンはすべて失効します。無効化したアカウントは再び有効にして新しいトークンで使用できますが、削除は取り消せません。
各実行は、サービスアカウントによるものとして記録されます。ワークスペースで利用できる分析データや監査記録から、トークンを作成したユーザーやアカウント設定を変更したユーザーも特定できます。記録の対象となるイベントは、Admin API リファレンスで確認してください。