این سند توضیح میدهد که چگونه Fleet engine تبادل اطلاعات بین سه محیط اصلی سیستم Fleet Engine شما را ایمن میکند: سرور backend شما، سرور Fleet Engine شما و برنامههای کلاینت و وبسایتهای شما.
Fleet Engine امنیت را از دو طریق اساسی و با استفاده از اصل حداقل امتیاز مدیریت میکند:
اعتبارنامههای پیشفرض برنامه (ADC) : برای محیطهای با امتیاز بالا مانند ارتباطات سرور به سرور. زمانی استفاده میشود که سرور backend شما در حال ایجاد وسایل نقلیه و سفرها و مدیریت آنها در Fleet Engine است. برای جزئیات بیشتر، به اعتبارنامههای پیشفرض برنامه مراجعه کنید.
توکنهای وب JSON (JWT) : برای محیطهای کماعتماد مانند برنامههای کلاینت که روی تلفنهای هوشمند و مرورگرها اجرا میشوند. برای انجام عملیات با امتیاز پایینتر، مانند بهروزرسانی مکان خودرو در Fleet Engine، استفاده میشود.
JWT های مورد نیاز محیط های کم اعتماد توسط سرور backend شما تولید و صادر می شوند تا از کلیدهای مخفی حساب سرویس محافظت کنند و شامل ادعاهای اضافی مخصوص Fleet Engine باشند. برای جزئیات بیشتر، به JSON Web Tokens مراجعه کنید.
برای مثال، اگر یک اپلیکیشن رانندگی دارید، رانندگان از طریق اپلیکیشن به دادههای Fleet Engine دسترسی پیدا میکنند. اپلیکیشن با استفاده از JWTهایی که از سرور backend شما دریافت میکند، احراز هویت میشود. ادعاهای JWT موجود، همراه با نقش حساب کاربری سرویس، تعیین میکنند که اپلیکیشن راننده به چه بخشهایی از سیستم شما دسترسی دارد و چه کارهایی میتواند انجام دهد. این رویکرد، دسترسی را فقط به دادههای مورد نیاز برای تکمیل وظایف رانندگی آنها محدود میکند.
موتور ناوگان از این رویکردهای امنیتی برای ارائه موارد زیر استفاده میکند:
احراز هویت، هویت نهاد درخواستکننده را تأیید میکند. Fleet Engine از ADC برای محیطهای با اعتماد بالا و از JWT برای محیطهای با اعتماد پایین استفاده میکند.
مجوز مشخص میکند که یک موجودیت احراز هویت شده به کدام منابع دسترسی دارد. Fleet Engine از حسابهای سرویس با نقشهای Google Cloud IAM استفاده میکند، به علاوه ادعاهای JWT که تضمین میکند موجودیتهای احراز هویت شده مجوز دیدن یا تغییر دادههایی را که درخواست میکنند، دارند.
تنظیمات امنیتی سرور و کلاینت
برای فعال کردن امنیت با Fleet Engine، حسابها و امنیت مورد نیاز را روی سرور backend و برنامههای کلاینت و وبسایتهای خود تنظیم کنید.
نمودار زیر مروری بر مراحل تنظیم امنیت در سرور backend و برنامههای کلاینت شما را نشان میدهد.

برای جزئیات بیشتر، به بخشهای زیر مراجعه کنید.
تنظیمات امنیتی سرور Backend
یک مدیر ناوگان باید مراحل زیر را دنبال کند:
ایجاد و پیکربندی حسابهای سرویس :
در کنسول گوگل کلود، حسابهای کاربری سرویس ایجاد کنید.
نقشهای IAM خاصی را به حسابهای سرویس اختصاص دهید.
سرور بکاند خود را با حسابهای سرویس ایجاد شده پیکربندی کنید. برای جزئیات بیشتر، به نقشهای حساب سرویس مراجعه کنید.
پیکربندی ارتباط امن با Fleet Engine (ADC) : بخش مدیریت خود را برای ارتباط با نمونه Fleet Engine خود با استفاده از Application Default Credentials با حساب کاربری *Admin مناسب پیکربندی کنید. برای جزئیات بیشتر، به Application Default Credentials مراجعه کنید.
پیکربندی ارتباط امن با برنامههای کلاینت (JWT) : یک مولد JSON Web Token ایجاد کنید تا JWTهایی با Claimهای مناسب برای برنامههای کلاینت و وبسایتهای نظارتی ایجاد کند. برای جزئیات بیشتر، به Issue JSON Web Tokens مراجعه کنید.
تنظیمات امنیتی برنامه
توسعهدهندگان برنامه باید روشی را برای دریافت توکنهای وب JSON تولید شده توسط سرور backend شما در برنامهها یا وبسایتهای کلاینت خود بگنجانند و از آنها برای برقراری ارتباط ایمن با Fleet Engine استفاده کنند. برای جزئیات بیشتر، به دستورالعملهای راهاندازی در مستندات Driver Experience یا Consumer Experience برای برنامههای مورد نیاز خود مراجعه کنید.
جریان امنیتی برنامه سرور و کلاینت
نمودار توالی زیر، جریان احراز هویت و مجوزدهی برنامههای سرور و کلاینت را با Fleet Engine با استفاده از ADC با سرور backend و JWTها با برنامههای کلاینت و وبسایتها نشان میدهد.

سرور بکاند شما، وسایل نقلیه و سفرها یا وظایف را در Fleet Engine ایجاد میکند .
سرور بکاند شما، یک سفر یا وظیفه به یک وسیله نقلیه : برنامه راننده، وقتی فعال باشد، وظیفه را بازیابی میکند.
سرور بکاند شما : یک JWT را برای حساب سرویس مربوطه با نقش IAM مناسب برای وظیفه یا سفر محول شده امضا و صادر میکند.
برنامه کلاینت : برنامه کلاینت از JWT دریافتی برای ارسال بهروزرسانیهای موقعیت مکانی خودرو به Fleet Engine استفاده میکند.
قدم بعدی چیست؟
- پروژه موتور ناوگان خود را ایجاد کنید.
- بیاموزید که چگونه توکنهای وب JSON را از سرور خود صادر کنید .
- درباره نقشهای حساب سرویس بیشتر بدانید.
- درباره JWTها بیشتر بدانید.