Admin APIを使用すると、Workload Identity Federationのリソース(サービスアカウント、フェデレーションイシュアー、フェデレーションルール)をプログラムで作成・管理できます。Claude Consoleをクリックして操作する代わりに、フェデレーション設定をインフラストラクチャ・アズ・コードとして保持し、CIからプロビジョニングし、組織間で再現するために使用してください。これらのエンドポイントは、Admin APIの他の部分と同じ/v1/organizationsパスプレフィックスを共有します。
このページのすべてのリクエストは、org:adminスコープを持つOAuthベアラートークンで認証します。このスコープは、管理者、オーナー、またはプライマリオーナーのロールを持つ組織メンバーにのみ付与され、組織全体へのアクセスを許可します。ワークスペースのバインディングは無視されます。トークンを取得する方法は2つあり、それぞれ異なる権限を持ちます。自分のログインから取得したトークンはユーザーとして動作しますが、フェデレーテッドトークンはサービスアカウントとして動作し、このページのすべての操作を実行できるわけではありません。
専用のプロファイルでant CLIを使用してログインし、org:adminスコープをリクエストして(管理者アクセスを参照)、ベアラートークンをエクスポートします。
ant auth login --profile admin --scope "org:admin"
export ANTHROPIC_OAUTH_TOKEN=$(ant auth print-credentials --profile admin --access-token)インタラクティブトークンは短命です。リクエストが401を返し始めた場合は、エクスポートコマンドを再実行してください(トークンは自動的に更新されます)。
organization_roleがadminであるサービスアカウントをターゲットとする、oauth_scope: org:adminのフェデレーションルールを作成します。このルール自体はClaude Consoleで作成する必要があります。ワークロードに組織管理者アクセスを付与することは、自動化が自身でブートストラップできるものではなく、人間による意図的な操作です。次のセクションでは、この組織ごとに1回のセットアップを順を追って説明します。
Consoleで作成した1つのルールがあれば、残りのフェデレーション設定をインフラストラクチャ・アズ・コードの管理下に置くことができます。信頼できる単一のワークロードにorg:adminスコープを付与し、そのワークロードにこのAPIを通じてフェデレーションイシュアーとすべてのワークスペーススコープのフェデレーションルールを管理させます。
Consoleでorg:adminルールを作成する
Claude Consoleで、Settings → Workload identityに移動し、Connect workloadを選択して、自動化ワークロード(たとえば、インフラストラクチャリポジトリのGitHub Actionsワークフロー)用のフェデレーションルールを1つ作成します。Advanced rule optionsで、ルールのOAuthスコープをorg:adminに設定します。ウィザードは、Admin組織ロールを持つ新しいサービスアカウントを作成します(または、ターゲットとして既存の管理者サービスアカウントを選択するよう求めます)。
ルールは、広範なパターンではなく、1つの正確なワークロードアイデンティティに一致させてください。subject_prefixは、末尾が*でない限り完全一致です。GitHub Actionsの場合、repo:my-org/my-repo:ref:refs/heads/mainのように、サブジェクトを保護されたブランチに固定してください。repo:my-org/my-repo:*のような末尾のワイルドカードは、フォークからトリガーされた実行を含むpull_requestの実行にも一致するため、リポジトリに対してプルリクエストを開くことができる誰もがorg:adminトークンを発行できてしまいます。認証できるワークフローを制限するを参照してください。
ワークロードのアイデンティティトークンを交換する
実行時に、ワークロードは他のフェデレーテッドワークロードと同じトークン交換を使用して、アイデンティティプロバイダーからのJWTを短命のorg:adminベアラートークンと交換します。
APIを通じてイシュアーとワークスペーススコープのルールを管理する
発行されたトークンをANTHROPIC_OAUTH_TOKENに設定した状態で、ワークロードはこのページのエンドポイントを使用してフェデレーション設定を作成・管理します。
ワークロードが発行したトークンで実行できる操作とできない操作については、権限と制約を参照してください。すでにConnect workloadウィザードでイシュアー、サービスアカウント、またはルールを作成している場合は、以下のエンドポイントでそれらを一覧表示し、再作成する代わりにインフラストラクチャ・アズ・コードの状態にインポートしてください。
すべてのエンドポイントはhttps://api.anthropic.com/v1/organizations/の下にあります。フェデレーションおよびサービスアカウントのエンドポイントへのすべてのリクエストには、APIバージョンヘッダーとベアラートークンが必要です。
curl --fail-with-body -sS "https://api.anthropic.com/v1/organizations/service_accounts" \
-H "anthropic-version: 2023-06-01" \
-H "authorization: Bearer $ANTHROPIC_OAUTH_TOKEN"これらのエンドポイントではAdmin APIキーは受け付けられません。Admin APIページのx-api-keyの例はここでは適用されません。
サービスアカウント(svac_...)は、フェデレーテッドトークンが動作する際の非人間アイデンティティです。organization_roleをdeveloperに設定してください。
# サービスアカウントを作成する
curl --fail-with-body -sS "https://api.anthropic.com/v1/organizations/service_accounts" \
-H "anthropic-version: 2023-06-01" \
-H "authorization: Bearer $ANTHROPIC_OAUTH_TOKEN" \
-H "content-type: application/json" \
-d '{
"name": "inference-worker",
"organization_role": "developer"
}'
# サービスアカウントを一覧表示する
curl --fail-with-body -sS "https://api.anthropic.com/v1/organizations/service_accounts?limit=20" \
-H "anthropic-version: 2023-06-01" \
-H "authorization: Bearer $ANTHROPIC_OAUTH_TOKEN"
# サービスアカウントをアーカイブする
curl --fail-with-body -sS -X POST "https://api.anthropic.com/v1/organizations/service_accounts/svac_.../archive" \
-H "anthropic-version: 2023-06-01" \
-H "authorization: Bearer $ANTHROPIC_OAUTH_TOKEN"作成エンドポイントは新しいサービスアカウントを返します。
{
"id": "svac_...",
"name": "inference-worker",
"organization_role": "developer",
"created_at": "...",
"type": "service_account",
"...": "..."
}単一のサービスアカウントを読み取りまたは更新するには、/v1/organizations/service_accounts/{service_account_id}に対してGETとPOSTを使用します。フェデレーテッドトークンがワークスペース内で動作するには、サービスアカウントがそのワークスペースのメンバーである必要があります。すべてのサービスアカウントは、組織のデフォルトワークスペースに暗黙的なメンバーシップを持っています。他のワークスペースへの明示的なメンバーシップは、/v1/organizations/service_accounts/{service_account_id}/workspacesに対するGET、POST、DELETEで追加します。DELETEは.../workspaces/{workspace_id}をターゲットとします。
完全なパラメータの詳細とレスポンススキーマについては、サービスアカウントAPIリファレンスを参照してください。
フェデレーションイシュアー(fdis_...)は、OIDCアイデンティティプロバイダーを組織に登録します。jwksフィールドは、Anthropicがプロバイダーの署名鍵を取得する方法を制御する判別共用体です。
jwksの値 | 使用する場面 |
|---|---|
{"type": "discovery"} | プロバイダーがイシュアーURLで/.well-known/openid-configurationを提供している場合。 |
{"type": "explicit_url", "url": "..."} | JWKSエンドポイントを直接指定する場合。 |
{"type": "inline", "keys": [...]} | パブリックインターネットから到達できないプロバイダーのために鍵セットをアップロードする場合。 |
# 発行者を登録する(GitHub Actions、JWKS検出を使用)
curl --fail-with-body -sS "https://api.anthropic.com/v1/organizations/federation_issuers" \
-H "anthropic-version: 2023-06-01" \
-H "authorization: Bearer $ANTHROPIC_OAUTH_TOKEN" \
-H "content-type: application/json" \
-d '{
"name": "github-actions",
"issuer_url": "https://token.actions.githubusercontent.com",
"jwks": {"type": "discovery"}
}'
# 発行者を一覧表示する
curl --fail-with-body -sS "https://api.anthropic.com/v1/organizations/federation_issuers?limit=20" \
-H "anthropic-version: 2023-06-01" \
-H "authorization: Bearer $ANTHROPIC_OAUTH_TOKEN"
# 発行者をアーカイブする
curl --fail-with-body -sS -X POST "https://api.anthropic.com/v1/organizations/federation_issuers/fdis_.../archive" \
-H "anthropic-version: 2023-06-01" \
-H "authorization: Bearer $ANTHROPIC_OAUTH_TOKEN"単一のイシュアーを読み取りまたは更新するには、/v1/organizations/federation_issuers/{issuer_id}に対してGETとPOSTを使用します。OAuth呼び出し元は、oauth_scopeがworkspace:developerまたはworkspace:inference以外のルールを支えるイシュアーを更新できません。権限と制約を参照してください。
完全なパラメータの詳細とレスポンススキーマについては、フェデレーションイシュアーAPIリファレンスを参照してください。
フェデレーションルール(fdrl_...)は、イシュアーをサービスアカウントにバインドします。ルールの一致条件を満たすイシュアーからのJWTは、ルールのターゲットとして動作するトークンを発行できます。作成リクエストのworkspace_idは、作成時にそのワークスペースでルールを有効にします。後から/federation_rules/{rule_id}/workspacesサブリソースを通じてワークスペースを追加できます。作成時にはworkspace_idまたはapplies_to_all_workspaces: trueのいずれかが必須です。
# ルールを作成する(GitHub Actionsはmainブランチからデプロイします)
curl --fail-with-body -sS "https://api.anthropic.com/v1/organizations/federation_rules" \
-H "anthropic-version: 2023-06-01" \
-H "authorization: Bearer $ANTHROPIC_OAUTH_TOKEN" \
-H "content-type: application/json" \
-d '{
"name": "gha-deploy",
"issuer_id": "fdis_...",
"match": {
"subject_prefix": "repo:my-org/my-repo:ref:refs/heads/main",
"claims": {"repository_owner": "my-org"}
},
"target": {
"type": "service_account",
"service_account_id": "svac_..."
},
"workspace_id": "wrkspc_...",
"oauth_scope": "workspace:developer",
"token_lifetime_seconds": 600
}'
# ルールを一覧表示する(発行者でのフィルタリングも可能)
curl --fail-with-body -sS "https://api.anthropic.com/v1/organizations/federation_rules?issuer_id=fdis_..." \
-H "anthropic-version: 2023-06-01" \
-H "authorization: Bearer $ANTHROPIC_OAUTH_TOKEN"
# ルールをアーカイブする
curl --fail-with-body -sS -X POST "https://api.anthropic.com/v1/organizations/federation_rules/fdrl_.../archive" \
-H "anthropic-version: 2023-06-01" \
-H "authorization: Bearer $ANTHROPIC_OAUTH_TOKEN"リストエンドポイントは、ルールのページと次のページのカーソルを返します。
{
"data": [{ "id": "fdrl_...", "name": "gha-deploy", "...": "..." }],
"next_page": "..."
}単一のルールを読み取りまたは更新するには、/v1/organizations/federation_rules/{rule_id}に対してGETとPOSTを使用します。ルールがトークンを発行できるワークスペースを管理するには、/v1/organizations/federation_rules/{rule_id}/workspacesに対してGETとPOSTを、/v1/organizations/federation_rules/{rule_id}/workspaces/{workspace_id}に対してDELETEを使用します。
完全なパラメータの詳細とレスポンススキーマについては、フェデレーションルールAPIリファレンスを参照してください。
oauth_scopeがworkspace:developerまたはworkspace:inferenceであるルールのみを作成または変更できます。それ以外のスコープ(org:adminやworkspace:manage_tunnelsなど)を持つルールを作成または変更するには、Consoleを使用してください。oauth_scopeがworkspace:developerまたはworkspace:inference以外(org:adminやworkspace:manage_tunnelsなど)のルールを支えるフェデレーションイシュアーを更新できません。ワークスペーススコープのルールを支えるイシュアーをAPI経由で更新可能な状態に保つために、ブートストラップルール用に専用のイシュアーを登録することを検討してください。org:adminのOAuthトークンを使用してください。oauth_scope: org:adminを持つルールは、organization_roleがadminであるサービスアカウントをターゲットにする必要があります。リソース名は^[a-z0-9-]+$に一致し、1〜255文字で、各リソースタイプについて組織内で一意である必要があります。フィールドレベルの制約の全体については、検証ルールを参照してください。
サービスアカウント、フェデレーションイシュアー、フェデレーションルールのリストエンドポイントは、limit(1〜100、デフォルト20)と、前のレスポンスから取得したpageカーソルを受け付けます。レスポンスのnext_pageの値を、次のリクエストのpageクエリパラメータとして渡してください。ルールワークスペースのサブリソースリストは、ページネーションなしで全セットを返します。アーカイブされたリソースはデフォルトでリストから非表示になります。含めるにはinclude_archived=trueを渡してください。
アーカイブはソフトデリートであり、冪等です。すでにアーカイブされたリソースをアーカイブしても成功します。有効なフェデレーションルールがまだ参照しているイシュアーまたはサービスアカウントをアーカイブすると400が返されます。先にルールをアーカイブしてください。
Was this page helpful?