Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Membangun integrasi Anda
Memahami Siklus Hidup Permintaan
Sebelum membangun integrasi, penting untuk memahami bagaimana proses permintaan delegasi mulai dari pembuatan hingga penyelesaian.
Negara Permintaan
Permintaan delegasi berlangsung melalui status berikut:
| Status | Deskripsi |
|---|---|
| Tidak ditugaskan | Permintaan dibuat tetapi belum dikaitkan dengan akun pelanggan dan prinsipal IAM. Permintaan mungkin dibuat tanpa menentukan akun target, atau dengan ID akun target tetapi belum diklaim oleh pemilik akun. |
| Ditugaskan | Permintaan terkait dengan akun pelanggan dan menunggu peninjauan |
| Menunggu Persetujuan | Pelanggan telah meneruskan permintaan ke administrator untuk persetujuan |
| Diterima | Permintaan disetujui oleh pelanggan tetapi token pertukaran belum dirilis |
| Selesai | Token pertukaran dirilis ke penyedia produk. Periode delegasi (validitas token pertukaran) dimulai ketika permintaan mencapai status Selesai |
| Ditolak | Permintaan ditolak oleh pelanggan |
| Kedaluwarsa | Permintaan kedaluwarsa karena tidak aktif atau batas waktu |
Transisi Negara
Aliran Normal (Jalur Persetujuan)
Tidak ditugaskan → Ditugaskan: Pelanggan mengaitkan permintaan dengan akun mereka
Ditugaskan → Diterima ATAU Ditugaskan → Persetujuan Tertunda: Pelanggan menyetujui permintaan secara langsung ATAU meneruskan ke administrator untuk ditinjau
Persetujuan Tertunda → Diterima: Administrator menyetujui permintaan
Diterima → Selesai: Pelanggan merilis token pertukaran
Jalur Penolakan
Ditugaskan → Ditolak: Pelanggan menolak permintaan
Persetujuan Tertunda → Ditolak: Administrator menolak permintaan
Diterima → Ditolak: Pelanggan mencabut persetujuan sebelum melepaskan token
Jalur Kedaluwarsa
Permintaan secara otomatis kedaluwarsa jika tidak ada tindakan yang diambil dalam jangka waktu yang ditentukan:
Tidak Ditugaskan → Kedaluwarsa (1 hari)
Ditugaskan → Kedaluwarsa (7 hari)
Menunggu Persetujuan → Kedaluwarsa (7 hari)
Diterima → Kedaluwarsa (7 hari)
Ditolak → Kedaluwarsa (7 hari)
Selesai → Kedaluwarsa (7 hari)
Negara Terminal
Status berikut adalah terminal (tidak ada transisi lebih lanjut):
Selesai: Token Exchange dikirim
Ditolak: Permintaan ditolak
Kedaluwarsa: Waktu permintaan habis atau periode delegasi berakhir
Permintaan kedaluwarsa akhirnya dihapus dari sistem setelah periode retensi.
Mengelola status permintaan delegasi dalam aplikasi Anda
Sebagai mitra, Anda harus melacak status permintaan delegasi di sistem Anda dan menampilkannya kepada pelanggan Anda. Saat Anda menerima pemberitahuan SNS tentang perubahan status, simpan pembaruan ini di backend Anda dan sertakan di UI yang menghadap pelanggan Anda. Berikan perhatian khusus pada status Persetujuan Tertunde—ketika pelanggan meneruskan permintaan ke administrator untuk ditinjau, AWS mengirimkan pemberitahuan Persetujuan Tertunda kepada Anda. Permintaan dapat tetap dalam status ini hingga 7 hari sambil menunggu tindakan administrator. Selama waktu ini, tunjukkan kepada pelanggan bahwa permintaan mereka sedang menunggu persetujuan administrator dalam aplikasi Anda. Pertimbangkan untuk menyediakan tautan mendalam ke Kon AWS sol tempat pelanggan dapat memeriksa status permintaan atau menindaklanjuti dengan administrator mereka. Menangani mesin status dengan benar di backend Anda dan menampilkan informasi status yang benar kepada pelanggan di setiap tahap penting untuk pengalaman integrasi yang baik.
Mengkonfigurasi Pemberitahuan
IAM menggunakan Amazon Simple Notification Service (SNS) untuk mengkomunikasikan perubahan status permintaan delegasi kepada Anda. Saat membuat permintaan delegasi, Anda harus memberikan topik SNS ARN dari AWS akun terdaftar Anda. IAM akan menerbitkan pesan ke topik ini untuk acara penting, termasuk ketika pelanggan menyetujui atau menolak permintaan dan ketika token pertukaran siap.
catatan
Topik SNS tidak boleh ada di Wilayah pilihan. AWS Topik SNS Anda harus berada di Wil AWS ayah yang diaktifkan secara default. Untuk daftar Wilayah pilihan, lihat Mengelola Wil AWS ayah di panduan Manajemen AWS Akun.
Konfigurasi Topik SNS
Untuk menerima pemberitahuan permintaan delegasi, Anda harus mengonfigurasi topik SNS untuk memberikan izin IAM untuk menerbitkan pesan ke topik tersebut. Tambahkan pernyataan kebijakan berikut ke kebijakan topik SNS Anda:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowIAMServiceToPublish", "Effect": "Allow", "Principal": { "Service": "iam.amazonaws.com" }, "Action": "SNS:Publish", "Resource": "arn:aws:sns:REGION:ACCOUNT-ID:TOPIC-NAME" } ] }
penting
Topik SNS harus ada di salah satu AWS akun terdaftar Anda. IAM tidak akan menerima topik SNS dari akun lain. Jika kebijakan topik tidak dikonfigurasi dengan benar, Anda tidak akan menerima pemberitahuan perubahan status atau token pertukaran.
Jenis Pemberitahuan
IAM mengirimkan dua jenis notifikasi:
StateChange Pemberitahuan
Dikirim saat permintaan delegasi beralih ke status baru (Ditugaskan, Menunggu Persetujuan, Diterima, Selesai, Ditolak, Kedaluwarsa).
ExchangeToken Pemberitahuan
Dikirim saat pelanggan melepaskan token delegasi (status Finalized). Pemberitahuan ini menyertakan token pertukaran yang Anda butuhkan untuk mendapatkan kredenSIAL.
Negara Pemberitahuan
Anda akan menerima pemberitahuan untuk status permintaan delegasi berikut:
| Status | Jenis Pemberitahuan | Deskripsi |
|---|---|---|
| DITUGASKAN | StateChange | Permintaan telah dikaitkan dengan akun pelanggan |
| MENUNGGU PERSETUJUAN | StateChange | Pelanggan telah meneruskan permintaan ke administrator untuk persetujuan |
| DITERIMA | StateChange | Pelanggan telah menyetujui permintaan tetapi belum merilis token |
| DISELESAIKAN | StateChange | Pelanggan telah merilis token pertukaran |
| DISELESAIKAN | ExchangeToken | Pemberitahuan ini berisi Token Exchange |
| DITOLAK | StateChange | Pelanggan telah menolak permintaan |
| KEDALUWARSA | StateChange | Permintaan kedaluwarsa sebelum selesai |
Format Pesan Pemberitahuan
IAM menerbitkan pemberitahuan SNS standar. Informasi permintaan delegasi terkandung dalam bidang Pesan sebagai string JSON.
Bidang Umum (Semua Pemberitahuan)
| Bidang | Tipe | Deskripsi |
|---|---|---|
| Tipe | String | Entah "StateChange" atau "ExchangeToken” |
| RequestId | String | ID permintaan delegasi IAM |
| RequestorWorkflowId | String | ID alur kerja yang Anda berikan saat membuat permintaan |
| Status | String | Status permintaan saat ini |
| OwnerAccountId | String | ID AWS akun nasabah |
| UpdatedAt | String | Stempel waktu saat keadaan berubah (format ISO 8601) |
Bidang Tambahan (ExchangeToken Hanya Pemberitahuan)
| Bidang | Tipe | Deskripsi |
|---|---|---|
| ExchangeToken | String | Token untuk ditukar dengan kredenSIAL menggunakan AWS STS GetDelegatedAccessToken API |
| ExpiresAt | String | Ketika akses yang didelegasikan kedaluwarsa (format ISO 8601) |
Contoh Pemberitahuan
StateChange Pemberitahuan
{ "Type": "Notification", "MessageId": "61ee8ad4-6eec-56b5-8f3d-eba57556aa13", "TopicArn": "arn:aws:sns:us-east-1:123456789012:partner-notifications", "Message": "{\"RequestorWorkflowId\":\"workflow-12345\",\"Type\":\"StateChange\",\"RequestId\":\"dr-abc123\",\"State\":\"ACCEPTED\",\"OwnerAccountId\":\"111122223333\",\"UpdatedAt\":\"2025-01-15T10:30:00.123Z\"}", "Timestamp": "2025-01-15T10:30:00.456Z", "SignatureVersion": "1", "Signature": "...", "SigningCertURL": "...", "UnsubscribeURL": "..." }
ExchangeToken Pemberitahuan
{ "Type": "Notification", "MessageId": "e44e5435-c72c-5333-aba3-354406782f5b", "TopicArn": "arn:aws:sns:us-east-1:123456789012:partner-notifications", "Message": "{\"RequestId\":\"dr-abc123\",\"RequestorWorkflowId\":\"workflow-12345\",\"State\":\"FINALIZED\",\"OwnerAccountId\":\"111122223333\",\"ExchangeToken\":\"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\",\"ExpiresAt\":\"2025-01-15T18:30:00.123Z\",\"UpdatedAt\":\"2025-01-15T10:30:00.456Z\",\"Type\":\"ExchangeToken\"}", "Timestamp": "2025-01-15T10:30:00.789Z", "SignatureVersion": "1", "Signature": "...", "SigningCertURL": "...", "UnsubscribeURL": "..." }
Tukarkan Token
Token pertukaran atau token perdagangan dikeluarkan oleh IAM ketika pelanggan menerima dan menyelesaikan permintaan delegasi. Penyedia produk menggunakan pertukaran atau token perdagangan ini untuk memanggil AWS STS GetDelegatedAccessToken API untuk mendapatkan AWS kredenSIAL sementara dengan izin yang disetujui pelanggan. Token pertukaran itu sendiri tidak memberikan akses ke AWS sumber daya Anda; itu harus ditukar dengan kredenSIAL aktual melalui AWS STS.
Token pertukaran hanya dapat ditukarkan oleh akun penyedia produk yang membuat permintaan delegasi. Akun yang diminta disematkan dalam token, memastikan bahwa hanya penyedia produk resmi yang dapat memperoleh kredenSIAL untuk mengakses akun pelanggan.
Durasi Akses
Periode delegasi dimulai saat pelanggan melepaskan token pertukaran, bukan saat penyedia produk menebusnya. Setelah pelanggan melepaskan token:
Penyedia produk menerima token melalui notifikasi SNS
Mereka dapat segera menukarnya dengan kredenSIAL
Kredensi kedaluwarsa pada: waktu rilis+durasi yang disetujui
Penyedia produk dapat menukar token beberapa kali sebelum kedaluwarsa untuk mendapatkan kredenSIAL baru jika diperlukan
Penukaran Ganda
Penyedia produk dapat menukar token beberapa kali selama masa berlaku untuk mendapatkan kredenSIAL baru. Namun, semua kredenSIAL yang diperoleh dari token pertukaran yang sama kedaluwarsa pada saat yang sama, berdasarkan kapan Anda merilis token.
Contoh: Jika Anda menyetujui permintaan delegasi selama 2 jam dan melepaskan token pada pukul 10:00 pagi:
| Waktu Pelepasan Token | Waktu Pertukaran Token | Kedaluwarsa Kredensi | Waktu yang Dapat Digunakan |
|---|---|---|---|
| 10:00 pagi | 10:00 pagi | 12:00 sore | 2 jam |
| 10:00 pagi | 10:20 pagi | 12:00 sore | 1 jam 40 menit |
| 10:00 pagi | 11:40 pagi | 12:00 sore | 20 menit |
| 10:00 pagi | 12:10 sore | Gagal (token kedaluwarsa) | 0 menit |
Seperti yang ditunjukkan pada tabel, menukar token nanti dalam periode validitas menghasilkan waktu yang kurang dapat digunakan untuk penyedia produk.