API key چیست؟ چه زمانی از کلید API استفاده کنیم؟

4 دیدگاه
دسته بندی: آموزش, برنامه‌نویسی و توسعه وب
کلید API چیست؟

کلید رابط برنامه‌نویسی اپلیکیشن یا “API Key”، کدی برای شناسایی و احراز هویت برنامه یا کاربر است. این کلیدها به‌عنوان یک شناسه منحصربه‌فرد عمل کرده و حاوی یک رمز مخفی برای اهداف شناسایی و تایید کاربران است. در این مقاله، ابتدا به سوال «API Key چیست» می‌پردازیم. سپس با ویژگی‌ها، میزان امنیت، مثال‌هایی از API Key در دنیای واقعی و چالش‌های آن‌ها آشنا خواهیم شد.

API Key چیست؟

api key چیست

 کلیدهای API شناسه‌های الکترونیکی هستند که درون نرم‌افزارهای کامپیوتری ساخته و منتقل می‌شوند. این کلیدها به شما امکان دسترسی به داده‌ها یا خدمات وب را توسط API می‌دهند  با فراخوانی APIها توسط نرم‌افزار، فرآیند شناسایی کاربر، توسعه‌دهنده یا وب‌سایت انجام می‌شود.

API Key چگونه کار می‌کند؟

api key چگونه کار می کند

کلید API از حروف الفبا و اعداد تصادفی تولید شده است. شما یک کلید API خاص را به یک کلاینت API وصل می‌کنید. ازآنجایی‌که هر API به‌شکل یک ماژول نرم‌افزاری با ماژول دیگری در ارتباط است، کلیدها هم با ماژول‌ نرم‌افزارهای مختلف یا برنامه‌های مصرف‌کننده API شما ارتباط می‌گیرند.

هنگامی‌که اپلیکیشن یا ابزار آنلاینی درخواست‌های API را ارسال می‌کند، فرآیند زیر به‌اجرا درمی‌آید:

  1. سرور API اعتبار درخواست‌کننده را با کلید منحصربه‌‌فرد API او تایید می‌کند؛
  2. اگر API Key با هیچ یک از کلیدهای مجاز مطابقت نداشته باشد، سرور ارتباط API را رد و یک پیام Rejection به کلاینت می‌فرستد؛
  3. اگر کلید API مجاز باشد، سرور درخواست را پردازش کرده و پاسخ موردانتظار را به کلاینت ارسال می‌کند.

بیشتر بخوانید: firebase چیست؟ معرفی مزیت‌ها، معایب و کاربردهای فایربیس

انواع API Key

دو نوع اصلی از کلیدهای API وجود دارد:

1. کلیدهای API عمومی 

به‌طورمعمول، این کلیدها توسط مالک برنامه تولید می‌شوند و در اختیار توسعه‌دهندگان یا کاربران قرار می‌گیرند. این کلیدها به برنامه‌نویسان اجازه می‌دهند تا به داده‌ها یا ویژگی‌های عمومی یک برنامه دسترسی داشته باشند.

2. کلیدهای API خصوصی

 کلیدهای خصوصی در ارتباطات سرور به سرور استفاده می‌شوند. از این نوع API Key برای تایید اعتبار درخواست‌ها یا دسترسی به داده‌های غیرعمومی استفاده می‌شود. کلیدهای خصوصی باید مخفی بمانند و با کسی به‌اشتراک گذاشته نشوند.  برای استفاده از API key در یک اپلیکیشن، نیاز به یک سرور برای پردازش درخواست‌ها و ارسال پاسخ دارید. درک مفهوم سرور و نحوه عملکرد آن می‌تواند به بهینه‌سازی ارتباطات API کمک کند. اگر با سرورها آشنایی ندارید، پیشنهاد می‌کنیم مقاله “سرور چیست؟” را مطالعه کنید.

از API Key در چه زمان‌هایی استفاده کنیم؟

در تکمیل پاسخ «API Key چیست» باید به سناریوهایی با نیاز به استفاده از API Key اشاره کنیم.

1. اعطای مجوز پروژه

  • شناسایی پروژه: Project Identification با هدف شناسایی یک پروژه خاص یا برنامه‌ای که با API در ارتباط است. این کلیدها، تعیین اطلاعات مورداستفاده در یک پروژه خاص و رد درخواست‌های دسترسی غیرمجاز را تضمین می‌کنند.
  • مجوز پروژه: از Project Authorization برای بررسی دسترسی برنامه‌ای که با API ارتباط می‌گیرد، استفاده می‌شود. همچنین این مجوز فعال بودن API موردنیاز را در پروژه جاری بررسی می‌کند.

2. احراز هویت کاربران

  • احراز هویت کاربر: User Authentication با بررسی هویت کاربران برنامه، تایید می‌کند که فرد درحال ارتباط با API، همان هویتی را دارد که ادعا می‌کند.
  • مجوز کاربر: User Authorization مجاز بودن کاربر را برای ارسال درخواست به API و نوع آن، چک می‌کند. 

3. نظارت‌بر استفاده از API

  • ردیابی استفاده و مدیریت مصرف API: این‌کار در برنامه‌های سازمانی، باعث نظارت‌بر استفاده APIها از منابع محاسباتی می‌شود.
  • محدود کردن دسترسی به سرویس‌های API: امکان محدود کردن دسترسی به APIها با اختصاص کلیدهای منحصربه‌فرد ممکن است. بنابراین فقط به ترافیک‌های قانونی اجازه عبور، استفاده از منابع و ظرفیت پهنای باند API را اعطا خواهید کرد. 
  • آنالیز آمار استفاده از API: با تعریف یک کلید API، می‌توانید آمار استفاده از آن را تجزیه‌وتحلیل کنید. این‌کار با هدف تنظیم سهمیه برای پلن‌های مختلف سازمان‌ کاربرد دارد.

4. عیب‌یابی در ادغام API

  • شناسایی عوامل مخرب در ترافیک API: برنامه‌ها و سرویس‌های ابری ممکن است به‌دلیل APIهای متعددی که استفاده می‌کنند، با مشکلات فنی مواجه شوند. بنابراین توسعه‌دهندگان نرم‌افزار، با این کلیدها الگوهای غیرعادی را در داده‌ها شناسایی و آن‌ها را از سایر APIهای مجاز جدا می‌کنند.
  • فیلتر کردن ترافیک ناسالم API از ترافیک سالم: API Key خاص، هر درخواست با یک کلید منحصربه‌فرد را فیلتر کرده و آن‌ را براساس کلاینت مصرف‌کننده نشان می‌دهد.

برای استفاده از APIها، معمولاً به یک API key برای احراز هویت نیاز دارید. در بسیاری از موارد، توسعه‌دهندگان از SDKها برای ساده‌تر کردن فرآیند تعامل با APIها استفاده می‌کنند. اگر نمی‌دانید “SDK چیست” و چگونه به توسعه نرم‌افزار کمک می‌کند، پیشنهاد می‌کنیم مقاله مرتبط را مطالعه کنید.

چگونه یک API Key بگیریم و از آن استفاده کنیم؟

برای دریافت کلید API، باید شش مرحله زیر را دنبال کنید:

1. انتخاب پلتفرم یا ارائه‌دهنده API

برای مثال، اگر قصد استفاده از نقشه گوگل را در اپلیکیشن اندروید یا وب‌اپلیکیشن خودتان دارید، باید به صفحه Google Maps API مراجعه و متناسب‌با پلتفرم‌تان، روی لینک مربوطه کلیک کنید. 

چگونه یک API Key بگیریم

2. ایجاد حساب کاربری

چه در وب‌سایت گوگل و چه در هر اپلیکیشن آنلاین دیگری، باید با آدرس ایمیل، رمز عبور و توافق با شرایط خدمات شرکت توسعه‌دهنده API، یک حساب کاربری بسازید.

3. ساخت یک پروژه یا برنامه

پس از ثبت‌نام، به پروژه یا پلتفرم ساخته‌شده خودتان بازگردید. در این پلتفرم، باید تنظیمات مربوط‌به API را پیکربندی کنید.

4. ایجاد یک کلید API

در داشبورد پروژه یا پلتفرم‌ مقصد، گزینه مربوط‌به ایجاد کلید مخفی (Secret Key) را بیابید. این کلید یک شناسه منحصربه‌فرد برای برنامه شما است که احراز هویت و تایید درخواست‌های‌تان را انجام می‌دهد.

5. ذخیره کلید در محلی امن

با API Key مانند حساس‌ترین داده‌ها رفتار کنید و آن را به‌شکل مستقیم در کدهای‌تان قرار ندهید. برای ذخیره آن در برنامه، باید از متغیرهای محیطی یا سیستمی امن در مدیریت کلیدها کمک بگیرید.

API key ها معمولاً به همراه مکانیزم‌های امنیتی دیگری مانند OTP (One-Time Password) برای افزایش سطح امنیت استفاده می‌شوند. OTP یک کد یکبار مصرف است که به عنوان یک لایه اضافی امنیتی عمل می‌کند. برای اطلاعات بیشتر در مورد OTP و نحوه عملکرد آن، می‌توانید به مقاله otp چیست مراجعه کنید.

6. ادغام کلید API

این کلید را کپی کرده و در کد منبع پلتفرم‌تان قرار دهید. مراحل کار به‌اتمام رسیده و کلید API ایجاد شده است. حالا  امکان استفاده از آن را در برنامه‌تان دارید.

 API key نقش مهمی در احراز هویت APIها دارد، اما برای مدیریت این کلیدها و ارسال درخواست‌های خودکار، ابزارهایی مانند پاورشل بسیار کاربردی هستند.  اگر نمی‌دانید “پاورشل چیست” و چگونه می‌تواند در این زمینه به شما کمک کند، پیشنهاد می‌کنیم مقاله مرتبط را مطالعه کنید.

آیا کلیدهای API امن هستند؟

خیر. کلیدهای API به‌صورت ذاتی دارای آسیب‌پذیری هستند که در ادامه به آن‌ها اشاره خواهیم کرد.

  • دسترسی ساده به کلید در کد منبع، کدهای منبع به‌شکل Hardcoded یا اشتراک‌گذاری در GitHub
  • سرقت کلیدها در حین انتقال اطلاعات
  • لو رفتن کلیدها در صورت حملات XSS یا MITM
  • امکان حمله بروت فورس (brute force چیست) به کلیدهای ضعیف و قابل‌حدس
  • سرقت در پلتفرم‌های ضعیف (از نظر ایمنی و رمزگذاری) 
  • آسیب‌پذیری بالای کلیدهای API در سرویس‌ها و ابزارهای شخص ثالث

نکات مهم در ایمن‌سازی کلیدهای API 

از کلید API باید مانند یک رمز عبور حساس، با دقت و حساسیت زیاد نگهداری کنید. در ادامه چند نکته برای امن کردن آن‌ها را یاد خواهید گرفت.

  • عدم نوشتن کلید در کد اصلی یا پلتفرم‌های عمومی 
  • پوشاندن کلید در فرآیند مستندسازی کدها، اسکرین‌شات‌ها، URLها و اسناد دیگر
  • ذخیره API Keys در متغیرهای محیطی یا فایل‌های پیکربندی ایمن 
  • محافظت از کلیدها با پروتکل HTTPS (پروتکل https چیست؟) در سرور و برنامه
  • استفاده از مکانیزم‌های پیشرفته در رمزنگاری داده‌ها مانند OAuth و MFA
  • تعیین سیاست و خط‌مشی برای چرخش کلیدها (Rotating API Keys) و تغییر آن‌ها به‌شکل دوره‌ای
  • حذف فوری کلیدهای ناایمن و خطرناک از اپلیکیشن و سرور
  • بررسی گزارش‌های دسترسی به API و شناسایی استفاده‌های مشکوک یا غیرمجاز
  • اختصاص یک کلید API یکتا به هر پروژه

3 مثال‌ ساده از کلید API در دنیای واقعی

کلیدهای زیر، نمونه‌های واقعی از پلتفرم‌های مشهور هستند.

1. Google Maps API Key

AIzaSyCwEro-wQ6YUNcA1ozA9FQev-DyJp3t2EQ

2. OpenWeatherMap API Key

8dbf5d2a37c4178b4b03e6c49ae3f9e7

3. YouTube Data API Key

AIzaSyBhKx_b0yj4erq8sZchmTw8BRXWyivLzW0

چه زمانی نمی‌توانیم از کلید API استفاده کنیم؟

در سناریوهای زیر، کلید API کاربردی ندارد.

  • الزام دسترسی به داده‌های خاص کاربر در برنامه 
  • استفاده از این کلیدها در اپلیکیشن‌های حساس مانند سرویس‌های مالی یا پلتفرم‌های نگهدارنده اطلاعات پزشکی و بهداشتی افراد
  • نیازهای دسترسی کوتاه‌مدت
  • مجوزهای پیچیده یا تعیین نقش‌های زیاد برای کاربران
  • ارتباط سرویس‌به‌سرویس
  • رقم زدن تجربه کاربری ساده و روان برای احراز هویت و ورود به سیستم
  • نیازهای مکرر به چرخش کلید به‌دلیل سیاست‌های امنیتی پلتفرم‌ها
  • ثبت و نظارت بر تهدیدات شبکه و خطرات پلتفرم‌ها

در بسیاری از موارد، توسعه‌دهندگان هنگام کار با APIها نیاز دارند تا ارتباطات امنی بین سرور و کلاینت برقرار کنند. یکی از روش‌های پرکاربرد برای ایجاد این ارتباط امن، استفاده از پروتکل SSH است. اگر با این مفهوم آشنایی ندارید، پیشنهاد می‌کنیم مقاله “ssh چیست” را مطالعه کنید.

جمع بندی:

درحالی‌که کلیدهای API سادگی و سهولت استفاده را برای برنامه‌های خاص ارائه می‌دهند، اما محدودیت‌های قابل‌توجهی هم در رابطه با امنیت و انعطاف‌پذیری دارند. برای پلتفرم‌ها و اپلیکیشن‌هایی که به دسترسی خاص کاربر، امنیت بالا یا ساختارهای پیچیده مجوزدهی نیاز دارند، استفاده از روش‌های رمزگذاری قوی گزینه بهتری است. شما چه تجربه‌ای در کار با کلیدهای API دارید؟ آیا روش‌های رمزگذاری دیگر را به OAuth یا MFA ترجیح می‌دهید؟ ما مشتاق و پذیرای تجربه شما در بخش نظرات این مقاله هستیم.

سوالات متداولی که شما می‌پرسید

  1. API Key چیست؟

کلید API یک رشته متشکل‌از حروف و اعداد است که برای احراز هویت کاربران، ارتباط با سرویس‌ها و  اپلیکیشن‌های آنلاین استفاده می‌شود.

  1. در چه مواقعی از کلیدهای API استفاده کنیم؟

اعطای مجوز پروژه، احراز هویت کاربران، نظارت‌بر استفاده از API و عیب‌یابی در ادغام API بهترین مواقع برای استفاده از کلیدهای API هستند.

  1. کلید API چگونه است؟

AIzaSyBhKx_b0yj4erq8sZchmTw8BRXWyivLzW0، کلید API یوتیوب است که به‌شکل عمومی در دسترس همه افراد قرار دارد.

منابع:

PubNub

TechTarget

DreamFactory

3.9/5 - (13 امتیاز)

مایلید هر دو هفته یک ایمیل مفید دریافت کنید؟

ما را در شبکه‌های اجتماعی دنبال کنید

همچنین شاید دوست داشته باشید!

نظرات کاربران

4 دیدگاه. دیدگاه تازه ای بنویسید

  • سلام . وققتون بخیر من می خوام توی ووردپرس یه جدول درست کنم و با استفاده از تهیه api اطلاعات قیمتی مدام در حال آپدیت باشه وقیمت رو از اونجا ربخووه و تو سایت من نشون بده می خواستم راهنمایی بفرمایید اصلا راهی وجود داره برای این کار ممنون

    پاسخ
    • سلام وقت شما بخیر
      بله، برای این کار می‌توانید از WP API و Custom Tables در وردپرس استفاده کنید. ابتدا با استفاده از یک API خارجی که اطلاعات قیمتی را به صورت خودکار ارائه می‌دهد، داده‌ها را دریافت کنید. سپس، با استفاده از wp_remote_get اطلاعات را از API گرفته و در جدول‌های سفارشی وردپرس ذخیره کرده و نمایش دهید.

      پاسخ
  • علیرضا محبی
    23 بهمن 1403 17:05

    خیلی کاربردی بود یک سوال دارم: در مورد محدودیت‌ های استفاده از API key چطور می‌توان متوجه شد که یک کلید خاص چه تعداد درخواست را در یک روز پشتیبانی می‌ کند؟

    پاسخ
    • برای فهمیدن تعداد درخواست‌های مجاز یک API key در روز، معمولاً باید به مستندات رسمی سرویس‌دهنده API مراجعه کنید، چون محدودیت‌ها بسته به نوع سرویس و پلن متفاوت‌اند؛ برخی APIها نیز پاسخ‌هایی با *درهایی مثل `X-Rate-Limit-Limit` و `X-Rate-Limit-Remaining` ارائه می‌دهند که نشان می‌دهد چه تعداد درخواست باقی مانده است؛ همچنین می‌توان با مانیتورینگ دستی یا ابزارهای واسط مثل Postman یا افزونه‌های مرورگر نرخ مصرف را بررسی کرد.

      پاسخ

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.

این فیلد را پر کنید
این فیلد را پر کنید
لطفاً یک نشانی ایمیل معتبر بنویسید.
شما برای ادامه باید با شرایط موافقت کنید

فهرست