• Pesan
  • Managed Agents
  • Admin
Search...
⌘K
Organisasi
Admin APIWorkspace
Autentikasi
IkhtisarWorkload Identity FederationReferensi WIF
AWSGoogle CloudMicrosoft AzureGitHub ActionsKubernetesSPIFFEOkta
Pemantauan
Usage and Cost APIRate Limits APIClaude Code Analytics API
Data & kepatuhan
Residensi dataAPI dan retensi data
Compliance API
IkhtisarDapatkan aksesFeed AktivitasObrolan, file, dan proyekOrganisasi, pengguna, peran, dan grupRancang integrasi AndaKesalahanFAQ
Log in
Okta
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...

Solutions

  • AI agents
  • Code modernization
  • Coding
  • Customer support
  • Education
  • Financial services
  • Government
  • Life sciences

Partners

  • Amazon Bedrock
  • Google Cloud's Vertex AI

Learn

  • Blog
  • Courses
  • Use cases
  • Connectors
  • Customer stories
  • Engineering at Anthropic
  • Events
  • Powered by Claude
  • Service partners
  • Startups program

Company

  • Anthropic
  • Careers
  • Economic Futures
  • Research
  • News
  • Responsible Scaling Policy
  • Security and compliance
  • Transparency

Learn

  • Blog
  • Courses
  • Use cases
  • Connectors
  • Customer stories
  • Engineering at Anthropic
  • Events
  • Powered by Claude
  • Service partners
  • Startups program

Help and security

  • Availability
  • Status
  • Support
  • Discord

Terms and policies

  • Privacy policy
  • Responsible disclosure policy
  • Terms of service: Commercial
  • Terms of service: Consumer
  • Usage policy
Admin/Penyedia identitas

Menggunakan WIF dengan Okta

Federasikan identitas aplikasi layanan Okta ke Claude API dengan Workload Identity Federation.

Okta dapat bertindak sebagai penyedia identitas workload dengan menerbitkan token akses OIDC ke sebuah service application (aplikasi layanan) melalui grant OAuth 2.0 client_credentials. Workload Anda melakukan autentikasi ke Okta (biasanya dengan private_key_jwt, sehingga tidak ada rahasia bersama yang disimpan), menerima JSON Web Token (JWT) yang ditandatangani, dan menukarkan JWT tersebut dengan Anthropic untuk mendapatkan token akses berumur pendek.

URL issuer dari authorization server Okta memiliki bentuk https://<your-domain>.okta.com/oauth2/<auth-server-id>. Jika Anda menggunakan server default bawaan, path-nya adalah /oauth2/default.

Anda harus menggunakan custom authorization server Okta (termasuk yang default). Token yang diterbitkan langsung oleh Okta org authorization server (endpoint /oauth2/v1/token tanpa ID authorization server di path) tidak dapat divalidasi oleh pihak eksternal karena Okta tidak memublikasikan kunci penandatanganan untuk token tersebut.

Ada banyak cara untuk mengonfigurasi dan melakukan autentikasi ke Okta yang berada di luar cakupan dokumentasi ini. Pastikan konfigurasi dan mekanisme autentikasi Anda mengikuti panduan dan praktik keamanan perusahaan Anda.

Prasyarat

  • Pemahaman tentang konsep WIF: service account, federation issuer, dan federation rule.
  • Organisasi Okta dengan API Access Management yang diaktifkan (diperlukan untuk custom authorization server).
  • Izin untuk membuat service account, federation issuer, dan federation rule di Claude Console untuk organisasi Anthropic Anda.
  • Workload yang dapat meminta token dari endpoint /v1/token Okta dan menjangkau api.anthropic.com.

Mengonfigurasi Okta

Secara garis besar, Anda perlu:

  1. Membuat aplikasi layanan Okta.
  2. Mengonfigurasi authorization server default Anda (atau membuat custom authorization server baru) dengan audience, scope, access policy, dan custom claim apa pun yang ingin Anda cocokkan.

Navigasi persisnya bergantung pada konfigurasi org Okta dan versi admin console Anda. Langkah-langkah bernomor di bawah ini memandu Anda melalui salah satu jalur yang umum:

  1. Buat integrasi aplikasi layanan. Di Okta Admin Console, buat integrasi aplikasi baru dengan tipe API Services (OIDC, machine-to-machine). Catat Client ID yang dihasilkan.
  2. Konfigurasikan autentikasi klien. Untuk penyiapan tanpa kunci, pilih Public key / Private key (private_key_jwt) dan daftarkan JWK publik workload Anda. Sebagai alternatif, gunakan client secret jika lingkungan Anda dapat menyimpannya dengan aman. Untuk contoh berikut, Anda mungkin perlu menonaktifkan persyaratan DPoP pada aplikasi; pastikan penyiapan produksi Anda mematuhi persyaratan keamanan organisasi Anda.
  3. Atur audience. Pada custom authorization server Anda, atur audience ke https://api.anthropic.com sehingga token akses yang diterbitkan membawa klaim aud tersebut. Anthropic memvalidasi aud terhadap nilai tetap ini.
  4. Berikan scope. Pada custom authorization server Anda, pastikan setidaknya ada satu scope yang diizinkan untuk diminta oleh aplikasi layanan (misalnya, anthropic.access). Okta menolak permintaan client_credentials yang tidak menyertakan scope yang diberikan.
  5. Buat access policy. Pada custom authorization server Anda, buat access policy dengan setidaknya satu aturan yang mengizinkan aplikasi layanan Anda meminta scope yang Anda berikan di langkah 4.
  6. (Opsional) Tambahkan custom claim. Jika Anda ingin mencocokkan berdasarkan sesuatu selain client ID, tambahkan klaim ke token akses di tab Claims pada authorization server Anda.

Untuk aplikasi layanan yang menggunakan client_credentials, Okta mengatur klaim sub dari token akses yang diterbitkan ke Client ID aplikasi, dan iss ke URL issuer authorization server.

Mengonfigurasi Anthropic

Ikuti panduan penyiapan untuk mendaftarkan federation issuer, membuat service account Anthropic, dan membuat federation rule di Claude Console. Gunakan nilai-nilai khusus Okta berikut.

Federation issuer: Gunakan URL custom authorization server Okta Anda dan mode discovery. Anthropic membaca dokumen discovery .well-known/openid-configuration milik Okta dan mengambil JWKS dari jwks_uri yang diiklankan di dalamnya.

{
  "name": "okta-prod",
  "issuer_url": "https://acme.okta.com/oauth2/aus1a2b3c4d5e6f7g8h9",
  "jwks_source": "discovery"
}

Federation rule: Cocokkan pada klaim sub Okta, yang merupakan Client ID aplikasi layanan. Jika Anda mendefinisikan custom claim di Okta, Anda dapat mencocokkan berdasarkan klaim tersebut sebagai gantinya dengan map claims atau condition CEL.

{
  "name": "okta-pipeline",
  "issuer_id": "fdis_...",
  "match": {
    "subject_prefix": "0oa1b2c3d4e5f6g7h8i9",
    "audience": "https://api.anthropic.com"
  },
  "target": { "type": "service_account", "service_account_id": "svac_..." },
  "workspace_id": "wrkspc_...",
  "oauth_scope": "workspace:developer",
  "token_lifetime_seconds": 600
}

Memperoleh token dan memanggil Claude API

Tidak seperti penyedia native platform (AWS, Google Cloud, Kubernetes), yang menyediakan token di dalam runtime workload (melalui file yang diproyeksikan atau endpoint metadata lokal), Okta tidak melakukannya. Workload Anda harus memanggil endpoint token Okta untuk memperoleh JWT, lalu meneruskan JWT tersebut ke SDK Anthropic sebagai identity token.

import os
import httpx
import anthropic
from anthropic import WorkloadIdentityCredentials


def fetch_okta_token() -> str:
    response = httpx.post(
        f"{os.environ['OKTA_ISSUER']}/v1/token",
        data={
            "grant_type": "client_credentials",
            "scope": "anthropic.access",
            "client_assertion_type": "urn:ietf:params:oauth:client-assertion-type:jwt-bearer",
            # Buat JWT client_assertion RFC 7523 yang ditandatangani dengan kunci privat aplikasi Okta Anda
            "client_assertion": build_signed_client_assertion(),
        },
    )
    response.raise_for_status()
    return response.json()["access_token"]


client = anthropic.Anthropic(
    credentials=WorkloadIdentityCredentials(
        identity_token_provider=fetch_okta_token,
        federation_rule_id=os.environ["ANTHROPIC_FEDERATION_RULE_ID"],
        organization_id=os.environ["ANTHROPIC_ORGANIZATION_ID"],
        service_account_id=os.environ["ANTHROPIC_SERVICE_ACCOUNT_ID"],
        workspace_id=os.environ.get("ANTHROPIC_WORKSPACE_ID"),
    ),
)

message = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Hello, Claude"}],
)
print(message.content[0].text)

Setiap tab SDK menunjukkan pola callable: SDK Anthropic memanggil penyedia identity token Anda lagi setiap kali token akses Anthropic mendekati masa kedaluwarsa, sehingga fetcher Okta Anda harus mengembalikan token baru pada setiap panggilan, bukan menyimpannya dalam cache tanpa batas waktu. CLI ant membaca ulang ANTHROPIC_IDENTITY_TOKEN_FILE pada setiap pertukaran, jadi perbarui file tersebut secara berkala dengan timer untuk shell yang berjalan lama.

Memverifikasi penyiapan

Pertukaran yang berhasil mengembalikan access_token yang diawali dengan sk-ant-oat01- dan nilai expires_in dalam satuan detik. Jika terjadi 400 invalid_grant, lihat Memecahkan masalah pertukaran yang gagal; penyebab paling umum dari sisi Okta adalah ketidakcocokan issuer_url (harus menyertakan path /oauth2/<auth-server-id>; Okta org authorization server tidak dapat digunakan).

Membatasi cakupan rule Anda

Beberapa aplikasi layanan di bawah authorization server Okta yang sama berbagi issuer yang sama. Rule yang menghilangkan subject_prefix akan cocok dengan setiap aplikasi layanan di server tersebut, sehingga tim mana pun yang dapat mendaftarkan aplikasi layanan dapat memperoleh token Anthropic yang difederasikan.

Kunci blok match pada rule ke cakupan tersempit yang sesuai dengan kasus penggunaan Anda:

  • Tetapkan Client ID secara persis: Atur subject_prefix ke Client ID lengkap aplikasi layanan tanpa * di akhir.
  • Tetapkan audience: Cocokkan nilai audience yang Anda konfigurasikan pada authorization server sehingga token yang dibuat untuk audience berbeda akan ditolak.
  • Cocokkan pada custom claim: Untuk pembatasan cakupan yang lebih terperinci, tambahkan klaim di tab Claims pada authorization server dan cocokkan dengan map claims pada rule atau condition CEL.
  • Gunakan satu rule per aplikasi layanan: Buat federation rule terpisah untuk setiap aplikasi layanan, bukan berbagi satu rule di antara beberapa aplikasi.

Langkah berikutnya

  • Tinjau referensi WIF untuk urutan resolusi kredensial lengkap dan konfigurasi profil.
  • Lihat referensi WIF untuk mencocokkan custom claim Okta dengan ekspresi CEL.

Was this page helpful?

  • Prasyarat
  • Mengonfigurasi Okta
  • Mengonfigurasi Anthropic
  • Memperoleh token dan memanggil Claude API
  • Memverifikasi penyiapan
  • Membatasi cakupan rule Anda
  • Langkah berikutnya