View a markdown version of this page

On-behalf-of pertukaran token dengan AgentCore Identitas - Batuan Dasar Amazon AgentCore

On-behalf-of pertukaran token dengan AgentCore Identitas

Amazon Bedrock AgentCore Identity mendukung pertukaran token On-Behalf-Of (OBO), memungkinkan agen dan beban kerja lainnya—seperti server MCP—untuk menukar token akses pengguna masuk dengan token akses cakupan baru yang menargetkan server sumber daya hilir. Saat pertukaran mengubah token yang dikeluarkan untuk satu audiens langsung menjadi token untuk audiens hilir yang berbeda, agen Anda dapat mengakses sumber daya yang dilindungi atas nama pengguna yang diautentikasi tanpa memicu aliran persetujuan tambahan. Token yang dipertukarkan membawa identitas agen itu sendiri dan identitas penelepon asli, memberikan server sumber daya sinyal yang mereka butuhkan untuk menegakkan otorisasi tanpa kepercayaan yang halus di setiap lompatan.

Cara kerja pertukaran token on-behalf-of

On-behalf-of pertukaran token dibangun ke dalam Penyedia Kredenal OAuth yang ada. Ketika agen meminta token hilir, AgentCore Identity secara otomatis mengambil token akses masuk — mewakili pemanggil upstream — bersama dengan kredensi klien yang sudah disimpan di penyedia kredensi, dan menengahi permintaan pertukaran token dengan server otorisasi IDP atau OAuth pelanggan. Ini mengirimkan permintaan, mem-parsing respons, dan mengembalikannya ke agen. Pengembang agen tidak perlu menangani token masuk atau mengelola rahasia klien secara langsung. Server otorisasi membuat keputusan otorisasi akhir, termasuk apakah akan memberikan cakupan yang diminta dan apakah akan mengizinkan delegasi.

AgentCore Identity mendukung penyedia identitas yang menerapkan pertukaran token on-behalf-of melalui salah satu dari dua standar yang ditetapkan. Di bawah RFC 8693 (OAuth 2.0 Token Exchange), penyedia kredensi mengikuti jenis hibah pertukaran token standar, mengirimkan token masuk sebagai subject_token bersama kredensi klien agen. Beberapa penyedia identitas malah menerapkan on-behalf-of melalui RFC 7523 §2.1 (Profil JWT untuk Hibah Otorisasi OAuth 2.0), di mana token masuk disajikan sebagai hibah otorisasi JWT untuk mendapatkan token akses hilir. Anda mengonfigurasi mode mana yang diharapkan penyedia identitas Anda saat menyiapkan Penyedia Kredenal OAuth; AgentCore Identity menangani perbedaan protokol dari sana.

Mengkonfigurasi pertukaran token on-behalf-of

Untuk menggunakan fitur ini, konfigurasikan mode pertukaran token on-behalf-of pada penyedia kredensi OAuth 2.0 Anda. Anda dapat menyesuaikan konfigurasi saat menggunakan penyedia kustom, atau memilih dari salah satu penyedia yang didukung.

Penyedia Kredensi OAuth2 Kustom

Untuk mengonfigurasi pertukaran token on-behalf-of untuk penyedia kustom di AWS Konsol, lihat Menambahkan klien OAuth menggunakan penyedia khusus. Anda juga dapat mengkonfigurasinya menggunakan CLI

Contoh CLI: menggunakan tipe hibah TOKEN_EXCHANGE dengan token mesin-ke-mesin sebagai token aktor

aws bedrock-agentcore-control create-oauth2-credential-provider \ --cli-input-json '{ "name": "sample-obo-custom", "credentialProviderVendor": "CustomOauth2", "oauth2ProviderConfigInput": { "customOauth2ProviderConfig": { "oauthDiscovery": { "discoveryUrl": "https://my.idp.com/.well-known/openid-configuration" }, "clientId": "your-client-id", "clientSecret": "your-client-secret", "clientAuthenticationMethod": "CLIENT_SECRET_BASIC", "onBehalfOfTokenExchangeConfig": { "grantType": "TOKEN_EXCHANGE", "tokenExchangeGrantTypeConfig": { "actorTokenContent": "M2M", "actorTokenScopes": ["scope1", "scope2"] } } } } }'

Contoh CLI: menggunakan jenis hibah JWT_AUTHORIZATION_GRANT

aws bedrock-agentcore-control create-oauth2-credential-provider \ --cli-input-json '{ "name": "sample-obo-custom", "credentialProviderVendor": "CustomOauth2", "oauth2ProviderConfigInput": { "customOauth2ProviderConfig": { "oauthDiscovery": { "discoveryUrl": "https://my.idp.com/.well-known/openid-configuration" }, "clientId": "your-client-id", "clientSecret": "your-client-secret", "clientAuthenticationMethod": "CLIENT_SECRET_BASIC", "onBehalfOfTokenExchangeConfig": { "grantType": "JWT_AUTHORIZATION_GRANT" } } } }'

Konfigurasi pertukaran token on-behalf-of khusus penyedia

AgentCore Identitas mencakup dukungan pertukaran token on-behalf-of out-of-the-box untuk penyedia yang dipilih, yang telah dikonfigurasi sesuai dengan dokumentasi publik masing-masing penyedia. Untuk menyesuaikan pengaturan tingkat protokol di luar default ini, siapkan penyedia kustom untuk kontrol penuh atas konfigurasi exchange.

Nama Penyedia Mode Jenis Hibah Catatan Dokumentasi Terkait

MicrosoftOauth2

JWT_AUTHORIZATION_GRANT

* On-Behalf-Of Aliran Microsoft adalah pola delegasi eksklusif yang dibangun di atas standar RFC 7523, menggunakan jenis JWT-bearer hibah untuk memfasilitasi pertukaran token aman antara layanan berjenjang.

requested_token_use=on_behalf_ofsecara otomatis ditambahkan ke permintaan kecuali diganti.

Platform identitas Microsoft dan aliran OAuth 2.0 On-Behalf-Of

Menggunakan pertukaran token on-behalf-of

Untuk meminta token on-behalf-of saat runtime, panggil GetResourceOauth2Tokendan setel OAuth2flow ke. ON_BEHALF_OF_TOKEN_EXCHANGE Lewati token akses beban kerja yang Anda peroleh GetWorkloadAccessTokenForJWT— token ini membawa token masuk sebagai subjek, yang digunakan AgentCore Identity sebagai token subjek di bursa. Untuk referensi API selengkapnya, lihat AWS dokumentasinya.

# obtain workload access token using inbound token aws bedrock-agentcore get-workload-access-token-for-jwt --workload-name sample-workload \ --user-token "inbound-jwt-token" { "workloadAccessToken": "workload-access-token" } # perform on-behalf-of token exchange aws bedrock-agentcore get-resource-oauth2-token --resource-credential-provider-name sample-obo-provider \ --oauth2-flow ON_BEHALF_OF_TOKEN_EXCHANGE --scopes "sample-scope" \ --workload-identity-token "workload-access-token" { "accessToken": "on-behalf-of-token" }

Jenis hibah dan jenis token

grant_type = TOKEN_EXCHANGE

Dengan jenis hibah ini, AgentCore Identity mengirimkan JWT masuk sebagai token subjek untuk mendapatkan token akses. Konfigurasikan actor_token_content nilai menjadi salah satu dariM2M,AWS_IAM_ID_TOKEN_JWT, atau NONE

Parameter Nilai

grant_type

TOKEN_EXCHANGE(kami memetakannya urn:ietf:params:oauth:grant-type:token-exchange saat membuat permintaan pertukaran token)

subject_token

Kami menggunakan token JWT masuk dan memetakan jenis token subjek urn:ietf:params:oauth:token-type:jwt saat membuat permintaan pertukaran token.

Default dan dapat diganti, lihat CustomParameters

grant_type = JWT_AUTHORIZATION_GRANT

Dengan jenis hibah ini, AgentCore Identity mengirimkan JWT masuk sebagai otorisasi untuk mendapatkan token akses. Tidak diperlukan actor_token_content konfigurasi karena jenis hibah ini tidak memerlukan token aktor apa pun.

Parameter Nilai

grant_type

JWT_AUTHORIZATION_GRANT(kami memetakannya urn:ietf:params:oauth:grant-type:jwt-bearer saat membuat permintaan pertukaran token)

assertion

Token JWT masuk

actor_token_content = M2M (hanya jika grant_type = TOKEN_EXCHANGE )

AgentCore Identity pertama-tama melakukan otentikasi mesin-ke-mesin (pemberian kredensi klien OAuth 2.0) terhadap penyedia kredensi untuk mendapatkan token akses, kemudian mengirimkannya sebagai. actor_token

Parameter Nilai

actor_token_content

M2M

  • kami memetakannya urn:ietf:params:oauth:token-type:access_token saat membuat permintaan pertukaran token

  • kami mendapatkan token akses melalui client_credentials hibah

actorTokenScopesKonfigurasi opsional digunakan sebagai scope parameter untuk permintaan kredensial klien.

actor_token_content = _TOKEN_JWT (hanya jika grant_type = AWS_IAM_IDTOKEN_EXCHANGE)

AgentCore Panggilan identitas sts:GetWebIdentityTokenmenggunakan titik akhir token penyedia kredensi sebagai klaim aud, kemudian mengirimkan JWT yang dihasilkan sebagai. actor_token

Parameter Nilai

actor_token_content

AWS_IAM_ID_TOKEN_JWT

  • kami memetakannya urn:ietf:params:oauth:token-type:jwt saat membuat permintaan pertukaran token

  • kami mendapatkan JWT melalui sts:GetWebIdentityToken

Mode ini mengharuskan akun Anda diaktifkan untuk federasi identitas web keluar. Lihat iam:EnableOutboundWebIdentityFederation.

actor_token_content = NONE (hanya jika grant_type = TOKEN_EXCHANGE )

Tidak actor_token_type ada actor_token atau termasuk dalam permintaan pertukaran token. Gunakan mode ini dengan penyedia identitas yang memperoleh identitas aktor dari otentikasi klien saja.