کلید API چیست؟
کلید API یک رشته الفبایی-عددی است که توسعهدهندگان API برای کنترل دسترسی به APIهای خود استفاده میکنند. API یک مکانیزم ارتباطی است که تبادل داده بین دو ماژول نرمافزاری را امکانپذیر میکند. هنگامی که یک API برای ماژول خود ایجاد میکنید، توسعهدهندگان برنامه دیگر میتوانند API شما را فراخوانی کنند تا عملکرد شما را در کد خود ادغام کنند. به عنوان مثال، میتوانید ماژولی را توسعه دهید که لیستی از موارد را به عنوان ورودی دریافت میکند و لیستی از فروشگاههایی را برمیگرداند که میتوانید موارد را با کمترین قیمت خریداری کنید. سپس یک برنامه تجارت الکترونیک میتواند از API شما برای تولید لیستی از معاملات روزانه مواد غذایی برای مشتریان خود استفاده کند. شما به عنوان سازنده API، از کلیدهای API برای محدود کردن و نظارت بر دسترسی API خود استفاده میکنید. کلید API استفاده مجاز API را شناسایی میکند تا بتوانید APIهای خود را به طور کارآمدتری نگهداری، مدیریت و کسب درآمد کنید. درباره APIها بیشتر بخوانید »
موارد استفاده از کلیدهای API چیست؟
توسعهدهندگان نرمافزار از کلیدهای API برای مدیریت نحوه دسترسی به APIهایی که ایجاد میکنند، استفاده میکنند. کلیدهای API به روشهای مختلفی در توسعه برنامههای ابری مدرن نقش دارند.
- نظارت بر استفاده از API:
- ارائهدهندگان API از کلیدهای API برای ردیابی استفاده و مدیریت مصرف API، به ویژه برای برنامههای تجاری، استفاده میکنند. آنها کاربران را برای منابع محاسباتی که API مصرف میکند، صورتحساب میکنند.
- به عنوان یک ارائهدهنده API، میتوانید دسترسی به خدمات API را با کلیدهای API منحصر به فرد محدود کنید. با اجازه دادن به عبور فقط ترافیک قانونی، میتوانید استفاده از منابع و ظرفیت پهنای باند API خود را بهینه کنید. همچنین میتوانید آمار استفاده از هر کلید را برای تنظیم سهمیههای برنامههای مختلف تجزیه و تحلیل کنید.
- عیبیابی ادغامهای API:
- برنامههای ابری ممکن است به دلیل APIهایی که استفاده میکنند، با مشکلات فنی مواجه شوند. توسعهدهندگان نرمافزار از کلیدهای API برای شناسایی الگوهای داده غیرعادی و مطابقت ترافیک API با ارائهدهندگان مربوطه استفاده میکنند. به این ترتیب، میتوانند API خاصی را که از عملکرد صحیح یک برنامه جلوگیری میکند، شناسایی و جدا کنند.
- شناسایی پروژهها:
- برنامههای نرمافزاری دادههای حساس را از طریق API با سرویسهای خارجی مبادله میکنند. کلیدهای API به عنوان یک مکانیزم مجوز پروژه برای تنظیم استفاده توسط پروژههای مجاز عمل میکنند. برای استفاده از یک API، پروژه باید اعتبارنامههای صحیح API را برای دسترسی به عملکردهای نرمافزاری انتزاعی ارائه دهد. توجه به این نکته مهم است که کلیدهای API کاربران خاص را احراز هویت نمیکنند. در عوض، آنها به طور کلی سازمانی را که با یک کلید خاص مرتبط است، شناسایی میکنند.
کلید API چگونه کار میکند؟
کلید API از کاراکترهای تصادفی الفبا و اعداد تشکیل شده است. شما یک کلید API خاص را با یک کلاینت API خاص مرتبط میکنید. از آنجا که استفاده از API اساساً صحبت یک ماژول نرمافزاری با ماژول دیگر است، کلیدها با ماژولها یا برنامههای نرمافزاری مختلفی که میخواهند با API شما صحبت کنند، مرتبط هستند.
هنگامی که یک برنامه درخواستهای API را ارسال میکند، فرآیند به شرح زیر عمل میکند:
- سرور API صحت درخواستکننده را با کلید API منحصر به فرد تأیید میکند.
- اگر کلید API با هیچ یک از کلیدهای مجاز مطابقت نداشته باشد، سرور فراخوانی API را رد کرده و پیام رد ارسال میکند.
- اگر کلید API مطابقت داشته باشد، سرور درخواست را انجام داده و پاسخ مورد انتظار را برمیگرداند.
به این ترتیب، کلیدهای API به سرور API اجازه میدهند مبدأ هر فراخوانی API را شناسایی کند. سپس سرور میتواند اعتبارسنجیهای بعدی را برای مجوز دسترسی به دادهها و خدمات API انجام دهد.
محدود کردن فراخوانیهای API
ارائهدهندگان API میتوانند از کلید API برای تنظیم سطوح مختلف دسترسی به خدمات API خود استفاده کنند. پس از تأیید یک درخواست، سرور API میتواند قبل از اجازه دسترسی بیشتر به خدمات خود، برخی پارامترها را بررسی کند.
- میزان خدمات:
- سرور میزان خدماتی را که میتواند به برنامه درخواستکننده ارائه دهد، تعیین میکند. به عنوان مثال، برخی از کلیدهای API به درخواستکننده اجازه میدهند اطلاعات را از فضای ذخیرهسازی داده API اضافه، حذف و بخواند. برخی دیگر ممکن است فراخوانیهای API را فقط به خواندن اطلاعات محدود کنند.
- انتخاب توابع:
- سرور دامنه فراخوانی API را برای سفارشیسازی خدمات API خود تعیین و اعمال میکند. به عنوان مثال، میتوانید از کلیدهای API برای محدود کردن یک برنامه تجارت الکترونیک به جستجوی دادههای محصول در کشورهای خاص استفاده کنید. همچنین میتوانید کلیدهای API خاص را به فیلترهای پارامتری پایگاه داده خاص، مانند کتاب و پوشاک، مرتبط کنید.
- تعداد فراخوانیها:
- ارائهدهندگان API همچنین از کلیدهای API برای تنظیم دقیق دسترسی API استفاده میکنند. برخی از ارائهدهندگان محدودیتهای زمانی یا درخواستی را برای APIهای خود اعمال میکنند. در چنین مواردی، برنامه کلاینت فقط میتواند برای مدت زمان تعیین شده یا تا تعداد محدودی در روز از API استفاده کند. پس از تجاوز از محدودیتها، سرور هر درخواستی را از کلیدهای API مرتبط رد میکند.
تفاوت بین کلید API و توکن API چیست؟
کلید API رشتهای از شناسههای منحصر به فرد است که در درجه اول برای شناسایی ترافیک برنامه از کلاینتهای API در نظر گرفته شده است. کلیدهای API معمولاً با سرورهای خاصی که برنامه فراخواننده روی آنها مستقر شده است، مرتبط هستند. هنگامی که برنامه یک درخواست API را ارسال میکند، سرور برنامه فراخواننده را با کلید API شناسایی میکند.
در مقابل، توکن API رشتهای از کدها است که حاوی دادههای جامع است که یک کاربر خاص را شناسایی میکند. توکنهای API همچنین دامنه دسترسی اعطا شده به یک کاربر خاص را حمل میکنند. این امر به سرور اجازه میدهد هم درخواستهای کاربر فراخواننده را احراز هویت کند و هم میزان استفاده از API را تأیید کند. به عنوان مثال، یک کاربر میتواند از یک توکن ورود به سیستم واحد برای دسترسی به گروهی از APIها استفاده کند.
تولید کلید API به دلیل نقش محدود آن در مجوز کاربر، سادهتر است. برعکس، محدودیتها و رویههای بیشتری هنگام اعطای توکنهای API وجود دارد زیرا آنها دادههای شناسایی و احراز هویت را حمل میکنند.
در آمازون وب سرویس (AWS)، توکنهای API نیز توکنهای احراز هویت یا توکنهای امنیتی نامیده میشوند. توسعهدهندگان از مجوزهای IAM، یک مجوزدهنده Lambda یا یک استخر کاربر آمازون Cognito برای ایجاد توکنهای API و مدیریت دسترسی به APIهای شما استفاده میکنند.
بهترین روشهای کلید API چیست؟
هنگام استفاده از کلیدهای API، برخی از بهترین روشها را باید در نظر داشته باشید.
- از کلیدهای API برای احراز هویت کاربر استفاده نکنید. کلیدهای API برای تنظیم دسترسی کاربر در نظر گرفته نشدهاند. به طور مشابه، اطلاعات محرمانه را در کلیدهای API وارد نکنید زیرا ممکن است در هنگام انتقال قابل مشاهده باشد.
- کلیدهای API را مستقیماً در کد منبع یا مخزن خود جاسازی نکنید. اگر فراموش کنید آنها را حذف کنید، ممکن است هنگام انتشار برنامه شما در معرض عموم قرار گیرند.
- هنگامی که کلیدهای API دیگر در حال استفاده نیستند، آنها را حذف کنید. برای امنیت API قویتر، اضافه کردن انقضا به کلیدها را در نظر بگیرید.