Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Konfigurasikan Otentikasi
AWS SDK for Go Ini menyediakan kemampuan untuk mengkonfigurasi layanan perilaku otentikasi. Dalam kebanyakan kasus, konfigurasi default sudah cukup, tetapi mengonfigurasi otentikasi kustom memungkinkan perilaku tambahan seperti bekerja dengan fitur layanan pra-rilis.
Definisi
Bagian ini memberikan deskripsi tingkat tinggi dari komponen otentikasi di. AWS SDK for Go
AuthScheme
An AuthScheme
Skema autentikasi menggunakan komponen-komponen berikut, dijelaskan secara rinci lebih lanjut di bawah ini:
-
ID unik yang mengidentifikasi skema
-
Penyelesai identitas, yang mengembalikan identitas pemanggil yang digunakan dalam proses penandatanganan (misalnya kredensyal Anda) AWS
-
Penandatangan, yang melakukan injeksi identitas pemanggil yang sebenarnya ke dalam permintaan transport operasi (misalnya header
AuthorizationHTTP)
Setiap opsi klien layanan menyertakan AuthSchemes bidang, yang secara default diisi dengan daftar skema autentikasi yang didukung oleh layanan tersebut.
AuthSchemeResolver
Setiap opsi klien layanan mencakup AuthSchemeResolver bidang. Antarmuka ini, didefinisikan per layanan, adalah API yang dipanggil oleh SDK untuk menentukan opsi otentikasi yang mungkin untuk setiap operasi.
penting
Penyelesai skema autentikasi TIDAK menentukan skema autentikasi apa yang digunakan. Ini mengembalikan daftar skema yang dapat digunakan (“opsi”), skema akhir dipilih melalui algoritma tetap yang dijelaskan di sini.
Opsi
Dikembalikan dari panggilan keResolverAuthSchemes, Option mewakili opsi
Opsi terdiri dari tiga set informasi:
-
ID yang mewakili skema yang mungkin
-
Satu set properti buram yang akan diberikan kepada penyelesai identitas skema
-
Satu set properti buram yang akan diberikan kepada penandatangan skema
Catatan tentang properti
Untuk 99% kasus penggunaan, penelepon tidak perlu peduli dengan properti buram untuk resolusi dan penandatanganan identitas. SDK akan mengeluarkan properti yang diperlukan untuk setiap skema dan meneruskannya ke antarmuka yang diketik dengan kuat yang diekspos di SDK. Misalnya, penyelesai autentikasi default untuk layanan menyandikan opsi SigV4 agar memiliki properti penandatangan untuk nama dan wilayah penandatanganan, yang nilainya diteruskan ke v4 yang dikonfigurasi klien. HTTPSigner
Identitas
Identitas
Jenis identitas yang paling umum digunakan dalam SDK adalah seperangkat. aws.Credentials Untuk sebagian besar kasus penggunaan, penelepon tidak perlu menyibukkan diri Identity sebagai abstraksi dan dapat bekerja dengan tipe konkret secara langsung.
catatan
Untuk mempertahankan kompatibilitas mundur dan mencegah kebingungan API, tipe identitas AWS khusus SDK aws.Credentials tidak secara langsung memenuhi antarmuka. Identity Pemetaan ini ditangani secara internal.
IdentityResolver
IdentityResolverIdentity diambil.
Versi konkret IdentityResolver ada di SDK dalam bentuk yang diketik dengan kuat (misalnya aws. CredentialsProvider
Penelepon hanya perlu mengimplementasikan IdentityResolver antarmuka secara langsung saat mendefinisikan skema autentikasi eksternal.
Signer
PenandatanganIdentity
Versi konkret yang Signer ada di SDK dalam bentuk yang diketik dengan kuat (misalnya v4. HTTPSigner
Penelepon hanya perlu mengimplementasikan Signer antarmuka secara langsung saat mendefinisikan skema autentikasi eksternal.
AuthResolverParameters
Setiap layanan mengambil satu set input tertentu yang diteruskan ke fungsi resolusinya, yang didefinisikan dalam setiap paket layanan sebagaiAuthResolverParameters.
Parameter resolver dasar adalah sebagai berikut:
| name | jenis | deskripsi |
|---|---|---|
Operation
|
string
|
Nama operasi yang dipanggil. |
Region
|
string
|
AWS Wilayah klien. Hanya hadir untuk layanan yang menggunakan SiGv4 [A]. |
Jika Anda menerapkan resolver Anda sendiri, Anda seharusnya tidak perlu membuat instance Anda sendiri dari parameternya. SDK akan mencari nilai per permintaan ini dan meneruskannya ke implementasi Anda.
Alur kerja resolusi skema autentikasi
Saat Anda memanggil operasi AWS layanan melalui SDK, urutan tindakan berikut akan terjadi setelah permintaan diserialisasi:
-
SDK memanggil
AuthSchemeResolver.ResolveAuthSchemes()API klien, mencari parameter input seperlunya, untuk mendapatkan daftar Opsiyang mungkin untuk operasi. -
SDK mengulangi daftar itu dan memilih skema pertama yang memenuhi kondisi berikut.
-
Skema dengan ID yang cocok hadir dalam
AuthSchemesdaftar klien sendiri -
Penyelesai identitas skema ada (tidak-
nil) pada Opsi klien (diperiksa melaluiGetIdentityResolvermetode skema, pemetaan ke jenis penyelesai identitas konkret yang dijelaskan di atas ditangani secara internal) (1)
-
-
Dengan asumsi skema yang layak dipilih, SDK memanggil
GetIdentityResolver()API-nya untuk mengambil identitas pemanggil. Misalnya, skema autentikasi SiGv4 bawaan akan dipetakan ke penyedia klien secara internal.Credentials -
SDK memanggil penyelesai identitas
GetIdentity()(misalnyaaws.CredentialProvider.Retrieve()untuk SigV4). -
SDK memanggil penyelesai titik akhir
ResolveEndpoint()untuk menemukan titik akhir permintaan. Titik akhir dapat mencakup metadata tambahan yang memengaruhi proses penandatanganan (misalnya nama penandatanganan unik untuk Objek Lambda S3). -
SDK memanggil
Signer()API skema autentikasi untuk mengambil penandatangannya, dan menggunakanSignRequest()API-nya untuk menandatangani permintaan dengan identitas pemanggil yang diambil sebelumnya.
(1) Jika SDK menemukan opsi anonim (IDsmithy.api#noAuth) dalam daftar, itu dipilih secara otomatis, karena tidak ada penyelesai identitas yang sesuai.
S yang didukung secara asli AuthScheme
Skema autentikasi berikut didukung secara native oleh. AWS SDK for Go
| Nama | ID Skema | Penyelesai identitas | Signer | Catatan |
|---|---|---|---|---|
| SiGv4 |
aws.auth#sigv4
|
aws. CredentialsProvider |
v4. HTTPSigner |
Default saat ini untuk sebagian besar operasi AWS layanan. |
| Sigv4a |
aws.auth#sigv4a
|
aws. CredentialsProvider | T/A | Penggunaan Sigv4a terbatas saat ini, implementasi penandatangan bersifat internal. Lihat pengumuman |
| SIGV4Express |
com.amazonaws.s3#sigv4express
|
s3. ExpressCredentialsProvider |
v4. HTTPSigner | Digunakan untuk Express One Zone |
| Pembawa HTTP |
smithy.api#httpBearerAuth
|
pembawa smithybearer. TokenProvider |
Smithybearer.Signer |
Digunakan oleh codecatalyst |
| Anonim |
smithy.api#noAuth
|
tidak berlaku | T/A | Tidak ada otentikasi - tidak diperlukan identitas, dan permintaan tidak ditandatangani atau diautentikasi. |
Konfigurasi identitas
Dalam AWS SDK for Go, komponen identitas skema autentikasi dikonfigurasi dalam klien SDK. Options SDK akan secara otomatis mengambil dan menggunakan nilai untuk komponen ini untuk skema yang dipilihnya saat operasi dipanggil.
catatan
Untuk alasan kompatibilitas mundur, SDK secara implisit mengizinkan penggunaan skema autentikasi anonim jika tidak ada penyelesai identitas yang dikonfigurasi. Ini dapat dicapai secara manual dengan menyetel semua penyelesai identitas pada klien Options ke nil (penyelesai identitas sigv4 juga dapat diatur ke). aws.AnonymousCredentials{}
Konfigurasi penandatangan
Di AWS SDK for Go, komponen penandatangan skema autentikasi dikonfigurasi di klien SDK. Options SDK akan secara otomatis mengambil dan menggunakan nilai untuk komponen ini untuk skema yang dipilihnya saat operasi dipanggil. Tidak diperlukan konfigurasi tambahan.
Skema autentikasi khusus
Untuk menentukan skema autentikasi khusus dan mengonfigurasinya untuk digunakan, pemanggil harus melakukan hal berikut:
-
Mendefinisikan AuthScheme
implementasi -
Daftarkan skema pada daftar klien SDK
AuthSchemes -
Instrumen klien SDK
AuthSchemeResolveruntuk mengembalikan autentikasiOptiondengan ID skema jika berlaku
Awas
Layanan berikut memiliki perilaku otentikasi yang unik atau disesuaikan. Kami menyarankan Anda mendelegasikan ke implementasi default dan membungkusnya jika Anda memerlukan perilaku otentikasi khusus:
| Layanan | Catatan |
|---|---|
| S3 | Penggunaan bersyarat Sigv4a dan Sigv4Express tergantung pada input operasi. |
| EventBridge | Penggunaan bersyarat Sigv4a tergantung pada input operasi. |
| Cognito | Operasi tertentu hanya bersifat anonim. |
| SSO | Operasi tertentu hanya bersifat anonim. |
| STS | Operasi tertentu hanya bersifat anonim. |