View a markdown version of this page

Membangun integrasi Anda - AWS Identity and Access Management

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.

Diagram status yang menunjukkan alur permintaan delegasi dari Status Tidak Ditugaskan melalui Ditugaskan, Menunggu Persetujuan, ke status Diterima, Ditolak, Selesai, Kedaluwarsa, atau Dihapus.

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.