احراز هویت مبتنی بر دسترسی توکن برای CoAP از طریق DTLS

مدل احراز هویت بر اساس توکن دسترسی، نوع پیش‌فرض احراز هویت دستگاه است. پس از ایجاد دستگاه در ThingsBoard، توکن دسترسی پیش‌فرض تولید می‌شود. می‌توان آن را بعداً تغییر داد. برای اتصال دستگاه به یک سرور با استفاده از احراز هویت بر اساس توکن دسترسی، مشتری باید توکن دسترسی را به عنوان بخشی از URL درخواست CoAP مشخص کند. برای کسب اطلاعات بیشتر، به رابط برنامه‌نویسی CoAP مراجعه کنید.

اتصال مبتنی بر توکن دسترسی CoAP از طریق DTLS، یک حالت استاندارد احراز هویت است که در آن دستگاه مشتری هویت سرور را با استفاده از گواهی سرور تأیید می‌کند. برای اجرای احراز هویت مبتنی بر توکن دسترسی CoAP از طریق DTLS، زنجیره گواهی سرور باید توسط CA مجاز امضا شده باشد یا مشتری باید گواهی سرور خودمانی (با پسوند .cer یا .pem) را به مخازن اعتماد خود وارد کند. در غیر اینصورت، اتصال با خطای “CA نامعلوم” شکست می‌خورد.

مثال زیر برای coap-client نشان می‌دهد که چگونه به ThingsBoard Cloud یا هر سرور CoAP دیگری اتصال برقرار کند که دارای گواهی معتبر و قابل اعتماد است.

DTLS CoAP Client را با استفاده از نشانه دسترسی متصل کنید

با دنبال کردن مراحل زیر، کلاینت CoAP را با پشتیبانی از DTLS در لینوکس نصب کنید:

مرحله 1: کلون کردن libcoap git repo:

git clone https://github.com/obgm/libcoap --recursive

مرحله 2: وارد شاخه libcoap شوید.

cd libcoap

مرحله 3: دستورات بعدی را اجرا کنید و سپس اسکریپت ./autogen.sh را اجرا کنید:

sudo apt-get update
sudo apt-get install autoconf libtool libssl-dev
./autogen.sh

مرحله 4: اسکریپت ./configure را با گزینه‌های بعدی اجرا کنید.

./configure --with-openssl --disable-doxygen --disable-manpages --disable-shared

مرحله 5: دستور بعدی را اجرا کنید:

make

مرحله 6: دستور بعدی را اجرا کنید:

sudo make install

در نهایت، اسکریپت نمونه زیر را اجرا کنید تا تأییدیه DTLS با استفاده از توکن دسترسی (YOUR_ACCESS_TOKEN را با توکن دسترسی خود جایگزین کنید) را انجام دهد:

انتشار داده‌های سری زمانی

coap-client-openssl -v 9 -m POST -t "application/json" -e '{"temperature":42}' coaps://coap.thingsboard.cloud/api/v1/YOUR_ACCESS_TOKEN/telemetry

اشتراک‌گذاری برای بروزرسانی ویژگی‌های مشترک را فعال کنید.

coap-client-openssl -v 9 -B 3600 -s 3600 coaps://coap.thingsboard.cloud/api/v1/YOUR_ACCESS_TOKEN/attributes

جایی که،

  • B 3600 – عملیات شکستن پس از چند ثانیه انتظار.
  • s 3600 – اشتراک در / مشاهده منبع برای مدت زمان معین در ثانیه.

فراموش نکنید که coap.thingsboard.cloud را با میزبان نمونه ThingsBoard خود و YOUR_ACCESS_TOKEN را با نشانه دسترسی دستگاه خود جایگزین کنید.

عناوین هر بخش