Crea regola di federazione
Richiede un token di accesso OAuth con lo scope org:admin, ottenuto da ant auth login --scope org:admin o da una regola di workload identity federation; le chiavi Admin API non sono accettate. Consulta Gestire WIF con l'Admin API.
Crea una regola di federazione di proprietà della tua organizzazione.
L'emittente a cui si fa riferimento e l'account di servizio di destinazione devono già esistere nella stessa organizzazione; i riferimenti non validi vengono rifiutati con un errore 400. Il riferimento al workspace viene convalidato. L'appartenenza non viene verificata alla creazione della regola: lo scambio di token risolve un singolo workspace abilitato per chiamata e viene rifiutato a meno che l'account di servizio di destinazione non sia membro di quel workspace (è implicitamente membro del workspace predefinito). Le regole su emittenti condivisi noti (GitHub Actions, GitLab, Buildkite, Terraform Cloud, Google) devono vincolare l'identità del tenant tramite un claim che identifica l'identità, un prefisso del subject che fissa il tenant (come repo:YOUR_ORG/...) o una condizione CEL che fa riferimento a uno di tali claim di identità (ad es. claims.repository_owner). I chiamanti OAuth possono gestire solo regole il cui oauth_scope è workspace:developer o workspace:inference; gli altri scope richiedono una sessione della Console.
Parameters
Returns
import os
from anthropic import Anthropic
client = Anthropic(
api_key=os.environ.get(
"ANTHROPIC_API_KEY"
), # This is the default and can be omitted
)
federation_rule = client.organization.federation.rules.create(
issuer_id="issuer_id",
match={},
name="x",
oauth_scope="x",
target={
"service_account_id": "svac_01SDCCSbTxrXDpWc1phhtcfK",
"type": "service_account",
},
)
print(federation_rule.id){
"id": "fdrl_01SDCCSbTxrXDpWc1phhtcfK",
"applies_to_all_workspaces": true,
"archived_at": "2019-12-27T18:11:19.117Z",
"archived_by_actor_id": "archived_by_actor_id",
"attributes": {
"foo": "string"
},
"created_at": "2024-10-30T23:58:27.427722Z",
"created_by_actor_id": "created_by_actor_id",
"description": "description",
"issuer_id": "issuer_id",
"issuer_name": "issuer_name",
"match": {
"audience": "audience",
"claims": {
"foo": "string"
},
"condition": "condition",
"subject_prefix": "subject_prefix"
},
"name": "prod-deploy-pipeline",
"oauth_scope": "oauth_scope",
"target": {
"service_account_id": "svac_01SDCCSbTxrXDpWc1phhtcfK",
"type": "service_account",
"service_account_name": "service_account_name"
},
"token_lifetime_seconds": 0,
"type": "federation_rule",
"updated_at": "2024-10-30T23:58:27.427722Z",
"updated_by_actor_id": "updated_by_actor_id",
"workspace_id": "workspace_id",
"workspace_ids": [
"string"
]
}Returns Examples
{
"id": "fdrl_01SDCCSbTxrXDpWc1phhtcfK",
"applies_to_all_workspaces": true,
"archived_at": "2019-12-27T18:11:19.117Z",
"archived_by_actor_id": "archived_by_actor_id",
"attributes": {
"foo": "string"
},
"created_at": "2024-10-30T23:58:27.427722Z",
"created_by_actor_id": "created_by_actor_id",
"description": "description",
"issuer_id": "issuer_id",
"issuer_name": "issuer_name",
"match": {
"audience": "audience",
"claims": {
"foo": "string"
},
"condition": "condition",
"subject_prefix": "subject_prefix"
},
"name": "prod-deploy-pipeline",
"oauth_scope": "oauth_scope",
"target": {
"service_account_id": "svac_01SDCCSbTxrXDpWc1phhtcfK",
"type": "service_account",
"service_account_name": "service_account_name"
},
"token_lifetime_seconds": 0,
"type": "federation_rule",
"updated_at": "2024-10-30T23:58:27.427722Z",
"updated_by_actor_id": "updated_by_actor_id",
"workspace_id": "workspace_id",
"workspace_ids": [
"string"
]
}