Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Otentikasi dan otorisasi perangkat klien
Gunakan layanan IPC autentikasi perangkat klien untuk mengembangkan komponen broker lokal khusus di mana perangkat IoT lokal, seperti perangkat klien, dapat terhubung.
Untuk menggunakan operasi IPC ini, sertakan versi 2.2.0 atau yang lebih baru dari komponen autentikasi perangkat klien sebagai dependensi dalam komponen kustom Anda. Anda kemudian dapat menggunakan operasi IPC di komponen kustom Anda untuk melakukan hal berikut:
-
Verifikasi identitas perangkat klien yang terhubung ke perangkat inti.
-
Buat sesi untuk perangkat klien untuk terhubung ke perangkat inti.
-
Verifikasi apakah perangkat klien memiliki izin untuk melakukan tindakan.
-
Menerima pemberitahuan saat sertifikat server perangkat inti berputar.
Topik
SDK (Versi Minimum)
Tabel berikut mencantumkan versi minimum AWS IoT Device SDK yang harus Anda gunakan untuk berinteraksi dengan layanan IPC autentikasi perangkat klien.
SDK | Versi minimum |
---|---|
v1.9.3 |
|
v1.11.3 |
|
v1.18.3 |
|
v1.12.0 |
Otorisasi
Untuk menggunakan layanan IPC autentikasi perangkat klien dalam komponen kustom, Anda harus menentukan kebijakan otorisasi yang memungkinkan komponen Anda melakukan operasi ini. Untuk informasi tentang cara menentukan kebijakan otorisasi, lihat Otorisasi komponen untuk melakukan operasi IPC.
Kebijakan otorisasi untuk otentikasi dan otorisasi perangkat klien memiliki properti berikut.
Pengenal layanan IPC: aws.greengrass.clientdevices.Auth
Operasi | Deskripsi | Sumber daya |
---|---|---|
|
Memungkinkan komponen untuk memverifikasi identitas perangkat klien. |
|
|
Memungkinkan komponen untuk memvalidasi kredensi perangkat klien dan membuat sesi untuk perangkat klien tersebut. |
|
|
Memungkinkan komponen untuk memverifikasi apakah perangkat klien memiliki izin untuk melakukan tindakan. |
|
|
Memungkinkan komponen untuk menerima pemberitahuan ketika sertifikat server perangkat inti berputar. |
|
|
Memungkinkan komponen untuk melakukan semua operasi layanan IPC autentikasi perangkat klien. |
|
Contoh kebijakan otorisasi
Anda dapat mereferensikan contoh kebijakan otorisasi berikut untuk membantu Anda mengonfigurasi kebijakan otorisasi untuk komponen Anda.
contoh Contoh kebijakan otorisasi
Contoh kebijakan otorisasi berikut memungkinkan komponen untuk melakukan semua operasi IPC autentikasi perangkat klien.
{ "accessControl": { "aws.greengrass.clientdevices.Auth": { "
com.example.MyLocalBrokerComponent
:clientdevices:1": { "policyDescription": "Allows access to authenticate and authorize client devices.", "operations": [ "aws.greengrass#VerifyClientDeviceIdentity", "aws.greengrass#GetClientDeviceAuthToken", "aws.greengrass#AuthorizeClientDeviceAction", "aws.greengrass#SubscribeToCertificateUpdates" ], "resources": [ "*" ] } } } }
VerifyClientDeviceIdentity
Verifikasi identitas perangkat klien. Operasi ini memverifikasi apakah perangkat klien adalah AWS IoT hal yang valid.
Permintaan
Permintaan operasi ini memiliki parameter berikut:
credential
-
Kredensi perangkat klien. Objek ini,
ClientDeviceCredential
, berisi informasi berikut:clientDeviceCertificate
(Python:)client_device_certificate
-
Sertifikat perangkat X.509 perangkat klien.
Respons
Tanggapan operasi ini memiliki informasi berikut:
isValidClientDevice
(Python:)is_valid_client_device
-
Apakah identitas perangkat klien valid.
GetClientDeviceAuthToken
Memvalidasi kredensi perangkat klien dan membuat sesi untuk perangkat klien. Operasi ini mengembalikan token sesi yang dapat Anda gunakan dalam permintaan berikutnya untuk mengotorisasi tindakan perangkat klien.
Agar berhasil menghubungkan perangkat klien, komponen autentikasi perangkat klien harus memberikan mqtt:connect
izin untuk ID klien yang digunakan perangkat klien.
Permintaan
Permintaan operasi ini memiliki parameter berikut:
credential
-
Kredensi perangkat klien. Objek ini,
CredentialDocument
, berisi informasi berikut:mqttCredential
(Python:)mqtt_credential
-
Kredensi MQTT perangkat klien. Tentukan ID klien dan sertifikat yang digunakan perangkat klien untuk terhubung. Objek ini,
MQTTCredential
, berisi informasi berikut:clientId
(Python:)client_id
-
ID klien yang digunakan untuk terhubung.
certificatePem
(Python:)certificate_pem
-
Sertifikat perangkat X.509 yang digunakan untuk menghubungkan.
username
-
catatan
Properti ini saat ini tidak digunakan.
password
-
catatan
Properti ini saat ini tidak digunakan.
Respons
Tanggapan operasi ini memiliki informasi berikut:
clientDeviceAuthToken
(Python:)client_device_auth_token
-
Token sesi untuk perangkat klien. Anda dapat menggunakan token sesi ini dalam permintaan berikutnya untuk mengotorisasi tindakan perangkat klien ini.
AuthorizeClientDeviceAction
Verifikasi apakah perangkat klien memiliki izin untuk melakukan tindakan pada sumber daya. Kebijakan otorisasi perangkat klien menentukan izin yang dapat dilakukan perangkat klien saat terhubung ke perangkat inti. Anda menentukan kebijakan otorisasi perangkat klien saat mengonfigurasi komponen autentikasi perangkat klien.
Permintaan
Permintaan operasi ini memiliki parameter berikut:
clientDeviceAuthToken
(Python:)client_device_auth_token
-
Token sesi untuk perangkat klien.
operation
-
Operasi untuk mengotorisasi.
resource
-
Sumber daya tempat perangkat klien melakukan operasi.
Respons
Tanggapan operasi ini memiliki informasi berikut:
isAuthorized
(Python:)is_authorized
-
Apakah perangkat klien berwenang untuk melakukan operasi pada sumber daya.
SubscribeToCertificateUpdates
Berlangganan untuk menerima sertifikat server baru perangkat inti setiap kali berputar. Ketika sertifikat server berputar, broker harus memuat ulang menggunakan sertifikat server baru.
Komponen autentikasi perangkat klien memutar sertifikat server setiap 7 hari secara default. Anda dapat mengkonfigurasi interval rotasi antara 2 dan 10 hari.
Operasi ini adalah operasi berlangganan di mana Anda berlangganan aliran pesan peristiwa. Untuk menggunakan operasi ini, tentukan bagian yang menangani respons aliran dengan fungsi yang menangani pesan peristiwa, kesalahan, dan penutupan aliran. Untuk informasi selengkapnya, lihat Berlangganan aliran IPC acara.
Jenis pesan peristiwa: CertificateUpdateEvent
Permintaan
Permintaan operasi ini memiliki parameter berikut:
certificateOptions
(Python:)certificate_options
-
Jenis pembaruan sertifikat untuk berlangganan. Objek ini,
CertificateOptions
, berisi informasi berikut:certificateType
(Python:)certificate_type
-
Jenis pembaruan sertifikat untuk berlangganan. Pilih opsi berikut:
-
SERVER
-
Respons
Tanggapan operasi ini memiliki informasi berikut:
messages
-
Aliran pesan. Objek ini,
CertificateUpdateEvent
, berisi informasi berikut:certificateUpdate
(Python:)certificate_update
-
Informasi tentang sertifikat baru. Objek ini,
CertificateUpdate
, berisi informasi berikut:certificate
-
Sertifikat.
privateKey
(Python:)private_key
-
Kunci pribadi sertifikat.
publicKey
(Python:)public_key
-
Kunci publik sertifikat.
caCertificates
(Python:)ca_certificates
-
Daftar sertifikat otoritas sertifikat (CA) dalam rantai sertifikat CA sertifikat.