Mengautentikasi dan mengotorisasi 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.

Mengautentikasi dan mengotorisasi perangkat klien

catatan

Fitur ini tersedia untuk v2.6.0 dan versi kemudianKomponen inti Greengrass.

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 barukomponen auth perangkat kliensebagai dependensi dalam komponen kustom Anda. Anda kemudian dapat menggunakan operasi IPC di komponen kustom Anda untuk melakukan hal berikut:

  • Merifikasi identitas perangkat klien yang tersambung ke perangkat inti.

  • Membuat sesi untuk perangkat klien untuk terhubung ke perangkat inti.

  • Verifikasi apakah perangkat klien memiliki izin untuk melakukan tindakan.

  • Menerima pemberitahuan ketika sertifikat server perangkat inti berputar.

SDK (Versi Minimum)

Tabel berikut mencantumkan versi minimumAWS IoT Device SDKyang harus Anda gunakan untuk berinteraksi dengan layanan IPC auth perangkat klien.

Otorisasi

Untuk menggunakan layanan IPC auth perangkat klien dalam komponen kustom, Anda harus menentukan kebijakan otorisasi yang memungkinkan komponen Anda untuk melakukan operasi ini. Untuk informasi tentang cara menentukan kebijakan otorisasi, lihat Otorisasi komponen untuk melakukan operasi IPC.

Kebijakan otorisasi untuk autentikasi perangkat klien dan otorisasi 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 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

Kebijakan otorisasi contoh berikut memungkinkan komponen untuk melakukan semua operasi IPC auth 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

Merifikasi identitas perangkat klien. Operasi ini memverifikasi apakah perangkat klien validAWS IoTHal.

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.

Response

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 untukmengotorisasi tindakan perangkat klien.

Untuk berhasil menyambungkan perangkat klien,komponen auth perangkat klienharus memberikanmqtt:connectizin 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 untuk digunakan untuk menghubungkan.

certificatePem(Python:certificate_pem)

Sertifikat perangkat X.509 yang akan digunakan untuk terhubung.

username
catatan

Properti ini saat ini tidak digunakan.

password
catatan

Properti ini saat ini tidak digunakan.

Response

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 kliententukan izin yang dapat dilakukan perangkat klien saat terhubung ke perangkat inti. Anda menentukan kebijakan otorisasi perangkat klien saat mengonfigurasikomponen auth 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.

Response

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.

Yangkomponen auth perangkat klienmemutar 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

Response

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.