Claude Platform Docs

创建联合颁发者

organization.federation.issuers.create(**kwargs) -> FederationIssuer
POST/v1/organizations/federation_issuers

需要具有 org:admin 作用域的 OAuth 访问令牌,可通过 ant auth login --scope org:admin 或工作负载身份联合规则获取;不接受 Admin API 密钥。请参阅使用 Admin API 管理 WIF。

注册一个 OIDC 颁发者,Anthropic 将在您的组织中信任该颁发者以进行工作负载身份联合(workload identity federation)。

jwks 字段控制如何获取颁发者的签名密钥,并根据 type 采用以下三种形式之一:discovery(通过 OIDC 发现解析密钥)、explicit_url(从固定的 JWKS URL 获取密钥)或 inline(提供静态密钥集)。当 jwks.type 为 discovery 且未设置 discovery_base 时,颁发者 URL 必须可通过 HTTPS 公开访问,以便 Anthropic 获取发现文档;对于 explicit_url 和 inline 模式,颁发者 URL 仅用于匹配 JWT 的 iss 声明,不会被获取。

Parameters
issuer_url: str

The iss claim value to match against.

minLength1
name: str

Slug identifier (lowercase, digits, hyphens). Unique within the organization; a duplicate name returns 409.

minLength1
maxLength255
check_jti: Optional[bool]

Whether the jwt-bearer exchange enforces JTI single-use (replay protection) for tokens from this issuer. Defaults to true. Applies only to assertions carrying a jti claim; tokens without one are accepted without single-use enforcement.

jwks: Optional[JWKS]

How signing keys are obtained. Defaults to OIDC discovery.

One of the following:
class JWKSDiscovery: type: "discovery"; ca_cert_pem; discovery_base

JWKS via the issuer's OIDC discovery document.

type: Literal["discovery"]
ca_cert_pem: Optional[str]

Optional custom CA (PEM) for TLS verification of the JWKS fetch.

maxLength8192
discovery_base: Optional[str]

Set when the discovery URL differs from issuer_url.

class JWKSExplicitURL: type: "explicit_url"; url; ca_cert_pem

JWKS fetched from a fixed endpoint.

type: Literal["explicit_url"]
url: str

JWKS endpoint.

minLength1
ca_cert_pem: Optional[str]

Optional custom CA (PEM) for TLS verification of the JWKS fetch.

maxLength8192
class JWKSInline: type: "inline"; keys

JWKS supplied directly; no network fetch.

type: Literal["inline"]
keys: List[Dict[str, object]]

Inline JWK objects.

minItems1
max_jwt_lifetime_seconds: Optional[int]

Maximum allowed iat→exp spread for assertions from this issuer (1-176400 seconds, i.e. up to 49h). Defaults to 3600 (1h). Assertions must carry both iat and exp; a missing iat is rejected.

minimum1
maximum176400
Returns
class FederationIssuer: type: "federation_issuer"; id; archived_at; ... # 12 more

Registered external OIDC identity provider.

Records an external IdP the organization trusts for the RFC 7523 jwt-bearer grant. The issuer_url must match the JWT iss claim exactly.

创建联合颁发者
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_issuer = client.organization.federation.issuers.create(
    issuer_url="x",
    name="x",
)
print(federation_issuer.id)
Returns Examples
Response 200
{
  "id": "fdis_01SDCCSbTxrXDpWc1phhtcfK",
  "archived_at": "2019-12-27T18:11:19.117Z",
  "archived_by_actor_id": "archived_by_actor_id",
  "check_jti": true,
  "created_at": "2024-10-30T23:58:27.427722Z",
  "created_by_actor_id": "created_by_actor_id",
  "issuer_url": "https://token.actions.githubusercontent.com",
  "jwks": {
    "type": "discovery",
    "ca_cert_pem": "ca_cert_pem",
    "discovery_base": "discovery_base"
  },
  "jwks_polling_disabled_at": "2019-12-27T18:11:19.117Z",
  "max_jwt_lifetime_seconds": 0,
  "name": "github-actions",
  "poll_status": {
    "consecutive_failures": 0,
    "last_fetched_at": "2019-12-27T18:11:19.117Z",
    "next_poll_at": "2019-12-27T18:11:19.117Z"
  },
  "type": "federation_issuer",
  "updated_at": "2024-10-30T23:58:27.427722Z",
  "updated_by_actor_id": "updated_by_actor_id"
}