Otentikasi dan otorisasi perangkat klien - AWS IoT Greengrass

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.

SDK (Versi Minimum)

Tabel berikut mencantumkan versi minimum AWS IoT Device SDK yang harus Anda gunakan untuk berinteraksi dengan layanan IPC autentikasi perangkat klien.

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

aws.greengrass#VerifyClientDeviceIdentity

Memungkinkan komponen untuk memverifikasi identitas perangkat klien.

*

aws.greengrass#GetClientDeviceAuthToken

Memungkinkan komponen untuk memvalidasi kredensi perangkat klien dan membuat sesi untuk perangkat klien tersebut.

*

aws.greengrass#AuthorizeClientDeviceAction

Memungkinkan komponen untuk memverifikasi apakah perangkat klien memiliki izin untuk melakukan tindakan.

*

aws.greengrass#SubscribeToCertificateUpdates

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 pengaliran peristiwa IPC.

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.