Crear regla de federación
Requiere un token de acceso OAuth con el alcance org:admin, obtenido de ant auth login --scope org:admin o de una regla de federación de identidades de carga de trabajo; no se aceptan claves de Admin API. Consulta Administrar WIF con la Admin API.
Crea una regla de federación propiedad de tu organización.
El emisor referenciado y la cuenta de servicio de destino ya deben existir
en la misma organización; las referencias no válidas se rechazan con un error
400. Se valida la referencia al espacio de trabajo. La membresía no se comprueba
al crear la regla: el intercambio de tokens resuelve un único espacio de trabajo habilitado por
llamada y se rechaza a menos que la cuenta de servicio de destino sea miembro de
ese espacio de trabajo (es miembro implícito del espacio de trabajo predeterminado).
Las reglas sobre emisores compartidos conocidos (GitHub Actions, GitLab, Buildkite,
Terraform Cloud, Google) deben restringir la identidad del tenant mediante un
claim que contenga identidad, un prefijo de subject que fije el tenant (como
repo:YOUR_ORG/...) o una condición CEL que haga referencia a uno de esos
claims de identidad (p. ej., claims.repository_owner). Los llamadores OAuth solo pueden
administrar reglas cuyo oauth_scope sea workspace:developer o
workspace:inference; otros alcances requieren una sesión de 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
)
beta_federation_rule = client.beta.organization.federation.rules.create(
issuer_id="issuer_id",
match={},
name="x",
oauth_scope="x",
target={
"service_account_id": "svac_01SDCCSbTxrXDpWc1phhtcfK",
"type": "service_account",
},
)
print(beta_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"
]
}