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

درحال مشاهده اسناد Apigee Edge هستید.
به اسناد Apigee X بروید.
اطلاعات

آنچه خواهید آموخت

ازطریق این آموزش، با موارد زیر آشنا می‌شوید:

  • پراکسی میانای برنامه‌سازی کاربردی ایجاد کنید که به کلید میانای برنامه‌سازی کاربردی نیاز دارد.
  • محصول میانای برنامه‌سازی کاربردی اضافه کنید.
  • توسعه‌دهنده‌ای اضافه کنید و برنامه‌ای را ثبت کنید.
  • میانای برنامه‌سازی کاربردی خود را با کلید میانای برنامه‌سازی کاربردی فراخوانی کنید.

محافظت از API دربرابر دسترسی غیرمجاز مهم است. یکی از راه‌های انجام این کار استفاده از کلیدهای API (که به آن‌ها کلیدهای عمومی، کلیدهای مصرف‌کننده، یا کلیدهای برنامه نیز گفته می‌شود) است.

وقتی برنامه‌ای برای میانای برنامه‌سازی کاربردی شما درخواست می‌کند، برنامه باید کلید معتبری ارائه دهد. در زمان اجرا، خط‌مشی «درستی‌سنجی کلید میانای برنامه‌سازی کاربردی» بررسی می‌کند که کلید میانای برنامه‌سازی کاربردی ارائه‌شده:

  • معتبر است
  • لغو نشده باشد
  • با کلید میانای برنامه‌سازی کاربردی برای محصول میانای برنامه‌سازی کاربردی که منابع درخواستی را نمایان می‌کند مطابقت دارد

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

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

آنچه نیاز خواهید داشت

  • حساب Apigee Edge. اگر هنوز حساب ندارید، می‌توانید با دنبال کردن دستورالعمل‌های ایجاد حساب Apigee Edge ثبت‌نام کنید.
  • مرورگر وب برای انجام فراخوانی میانای برنامه‌سازی کاربردی.
  • (برای بخش امتیاز اضافی، الزامی نیست) cURL نصب‌شده روی دستگاهتان برای برقراری تماس‌های «میانای برنامه‌سازی کاربردی» از خط فرمان.

ایجاد پراکسی میانای برنامه‌سازی کاربردی

درباره «mocktarget»

سرویس mocktarget در Apigee میزبانی می‌شود و داده‌های ساده‌ای برمی‌گرداند. به کلید میانای برنامه‌سازی کاربردی یا کد دسترسی نیاز ندارد. درواقع، می‌توانید در مرورگر وب به آن دسترسی داشته باشید. با کلیک کردن روی موارد زیر، آن را امتحان کنید:

http://mocktarget.apigee.net

هدف Hello, Guest! برمی‌گرداند. از منبع /help برای دریافت صفحه راهنمای دیگر منابع API دردسترس استفاده کنید

  1. به https://apigee.com/edge بروید و به سیستم وارد شوید.
  2. با کلیک کردن روی نام کاربری‌تان در بالای نوار پیمایش کناری، به سازمان موردنظرتان بروید تا منو نمایه کاربر نمایش داده شود، و سپس سازمان را از فهرست انتخاب کنید.

    انتخاب سازمان در منو نمایه کاربر
  3. روی پراکسی‌های میانای برنامه‌سازی کاربردی در صفحه مقصد کلیک کنید تا فهرست پراکسی‌های میانای برنامه‌سازی کاربردی نمایش داده شود.

    منو میاناهای برنامه‌سازی کاربردی Edge
  4. روی + پراکسی کلیک کنید.
    دکمه ایجاد پراکسی
  5. در صفحه ایجاد پراکسی، پراکسی معکوس (رایج‌ترین) را انتخاب کنید.
  6. در صفحه جزئیات پراکسی، پراکسی را به‌صورت زیر پیکربندی کنید:
    در این فیلد این کار را انجام دهید
    نام پراکسی وارد کنید: helloworld_apikey
    مسیر پایه پروژه

    تغییر به: /helloapikey

    «مسیر پایه پروژه» بخشی از نشانی وبی است که برای درخواست به پراکسی میانای برنامه‌سازی کاربردی استفاده می‌شود.

    توجه: برای توصیه‌های Apigee درباره نسخه‌بندی میانای برنامه‌سازی کاربردی، نسخه‌بندی را در کتاب الکترونیکی طراحی میانای برنامه‌سازی کاربردی وب: پیوند گمشده ببینید.

    میانای برنامه‌سازی کاربردی موجود

    وارد کنید: http://mocktarget.apigee.net

    این عنصر نشانی وب هدفی را تعریف می‌کند که Apigee Edge در درخواست به پراکسی API فرا می‌خواند.

    شرح وارد کنید: hello world protected by API key
  7. روی بعدی کلیک کنید.
  8. در صفحه خط‌مشی‌های مشترک، برای امنیت: مجوز، کلید API را انتخاب کنید و سپس روی بعدی کلیک کنید. این کار دو خط‌مشی به پراکسی API شما اضافه می‌کند.
  9. در صفحه میزبان‌های مجازی، پیش‌فرض و امن را انتخاب کنید و سپس روی بعدی کلیک کنید. انتخاب پیش‌فرض به شما امکان می‌دهد با http:// با میانای برنامه‌سازی کاربردی‌تان تماس بگیرید. انتخاب امن، به شما امکان می‌دهد API خود را با https:// فراخوانی کنید.
  10. در صفحه خلاصه، مطمئن شوید محیط استقرار آزمایشی انتخاب شده باشد، و سپس روی ایجاد و استقرار کلیک کنید.
  11. پیامی مبنی بر اینکه پراکسی API جدید و محصول API باموفقیت ایجاد شده است و پراکسی API در محیط آزمایش شما مستقر شده است مشاهده خواهید کرد.
  12. برای نمایش صفحه نمای کلی برای پراکسی میانای برنامه‌سازی کاربردی، روی ویرایش پراکسی کلیک کنید.

مشاهده خط‌مشی‌ها

  1. در ویرایشگر پراکسی API، روی زبانه توسعه کلیک کنید. خواهید دید که دو خط‌مشی به جریان درخواست پراکسی API اضافه شده است:
    • به‌تأیید رساندن کلید میانای برنامه‌سازی کاربردی: تماس میانای برنامه‌سازی کاربردی را بررسی می‌کند تا مطمئن شود کلید میانای برنامه‌سازی کاربردی معتبری وجود دارد (به‌عنوان پارامتر پُرسمان ارسال می‌شود).
    • حذف پارامتر پُرسمان apikey: خط‌مشی AssignMessage که کلید API را پس‌از بررسی حذف می‌کند، تا در اطراف منتقل نشود و به‌طور غیرضروری درمعرض دید قرار نگیرد.
  2. روی نماد خط‌مشی «درستی‌سنجی کلید API» در نمای جاری‌سازی کلیک کنید و پیکربندی XML خط‌مشی را در نمای کد پایین ببینید. عنصر <APIKey> به خط‌مشی می‌گوید هنگام برقراری تماس، کلید میانای برنامه‌سازی کاربردی را کجا جستجو کند. به‌طور پیش‌فرض، این کلید را به‌عنوان پارامتر پُرسمان به‌نام apikey در درخواست HTTP جستجو می‌کند:

    <APIKey ref="request.queryparam.apikey" />

    نام apikey اختیاری است و می‌تواند هر دارایی‌ای باشد که حاوی کلید API است.

فراخوانی میانای برنامه‌سازی کاربردی

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

  1. موفقیت‌آمیز بود

    در مرورگر وب، به نشانی زیر بروید. این سرویس هدفی است که کارگزار میانای برنامه‌سازی کاربردی برای بازارسال درخواست به آن پیکربندی شده است، اما درحال‌حاضر مستقیماً به آن دسترسی خواهید داشت:

    http://mocktarget.apigee.net

    باید این پاسخ موفق را دریافت کنید: Hello, Guest!

  2. خرابی

    اکنون تلاش کنید کارگزار نیابتی API خود را فراخوانی کنید:

    http://ORG_NAME-test.apigee.net/helloapikey

    جایگزین کردن ORG_NAME با نام سازمان Edge شما.

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

    {"fault":{"faultstring":"Failed to resolve API Key variable request.queryparam.apikey","detail":{"errorcode":"steps.oauth.v2.FailedToResolveAPIKey"}}}

    که به‌درستی به این معنی است که کلید API معتبری (به‌عنوان پارامتر پُرسمان) ارسال نکرده‌اید.

در مراحل بعدی، محصول «میانای برنامه‌سازی کاربردی» را اضافه خواهید کرد.

افزودن محصول میانای برنامه‌سازی کاربردی

برای افزودن محصول API بااستفاده از Apigee UI:

  1. انتشار > محصولات API را انتخاب کنید.
  2. روی +محصول API کلیک کنید.
  3. جزئیات محصول را برای محصول API خود وارد کنید.

    فیلد شرح
    نام نام داخلی محصول API. نویسه‌های خاص در نام مشخص نکنید.
    توجه: پس‌از ایجاد محصول API، نمی‌توانید نام آن را ویرایش کنید. برای مثال، helloworld_apikey-Product.
    نام نمایشی نام نمایشی محصول API. نام نمایشی در میانای کاربر استفاده می‌شود و می‌توانید آن را هرزمان بخواهید ویرایش کنید. اگر مشخص نشده باشد، از مقدار «نام» استفاده خواهد شد. این فیلد بااستفاده از مقدار «نام» به‌طور خودکار تکمیل می‌شود؛ می‌توانید محتوای آن را ویرایش یا حذف کنید. نام نمایشی می‌تواند شامل نویسه‌های خاص باشد. برای مثال، helloworld_apikey-Product.
    شرح شرح محصول API. برای مثال، Test product for tutorial.
    محیط زیست محیط‌هایی که محصول API به آن‌ها اجازه دسترسی می‌دهد. برای مثال، test یا prod.
    دسترسی عمومی را انتخاب کنید.
    تأیید خودکار درخواست‌های دسترسی تأیید خودکار درخواست‌های کلید برای این محصول «میانای برنامه‌سازی کاربردی» از هر برنامه‌ای را فعال کنید.
    سهمیه برای این آموزش گام‌به‌گام نادیده بگیرید.
    محدوده‌های OAuth مجاز برای این آموزش گام‌به‌گام نادیده بگیرید.
  4. در بخش منابع API، پراکسی API را که به‌تازگی ایجاد کرده‌اید انتخاب کنید. برای مثال، helloworld_apikey.
  5. روی افزودن کلیک کنید.
  6. در بخش مسیرها، مسیر «/» را اضافه کنید.
  7. روی افزودن کلیک کنید.
  8. روی ذخیره کلیک کنید.

در مراحل بعدی، کلید API موردنیاز را دریافت خواهید کرد.

افزودن توسعه‌دهنده و برنامه به سازمان

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

ایجاد توسعه‌دهنده

برای ایجاد توسعه‌دهنده:

  1. در منو، انتشار > توسعه‌دهندگان را انتخاب کنید.
  2. روی + توسعه‌دهنده کلیک کنید.
  3. موارد زیر را در پنجره «توسعه‌دهنده جدید» وارد کنید:

    در این فیلد enter
    نام Keyser
    نام خانوادگی Soze
    نام کاربری keyser
    ایمیل keyser@example.com
  4. روی ایجاد کردن کلیک کنید.

ثبت برنامه

برای ثبت کردن برنامه توسعه‌دهنده:

  1. منتشر کردن > برنامه‌ها را انتخاب کنید.
  2. روی + برنامه کلیک کنید.
  3. موارد زیر را در پنجره برنامه جدید وارد کنید:

    p
    در این فیلد این کار را انجام دهید
    نام و نام نمایشی وارد کنید: keyser_app
    شرکت / توسعه‌دهنده انتخاب: Developer
    توسعه‌دهنده انتخاب: Keyser Soze (keyser@example.com)
    نشانی وب تماس برگشتی و یادداشت‌ها خالی بگذارید
  4. در بخش اطلاعات اعتباری، هرگز را از منو انقضا انتخاب کنید. اعتبارنامه‌های این برنامه هرگز منقضی نخواهد شد.
  5. در بخش محصولات، روی افزودن محصول کلیک کنید.
  6. helloworld_apikey-Product را انتخاب کنید.
  7. روی افزودن کلیک کنید.
  8. برای ذخیره کردن کارتان، در بالا و سمت چپ بخش جزئیات برنامه روی ایجاد کلیک کنید.

دریافت کلید API

برای دریافت کلید API:

  1. در صفحه برنامه‌ها (انتشار > برنامه‌ها)، روی keyser_app کلیک کنید.
  2. در صفحه keyser_app، در بخش اطلاعات اعتباری، روی نمایش در کنار کلید کلیک کنید. در بخش محصول، توجه کنید که کلید با helloworld_apikey منسوب است

    .
  3. کلید را انتخاب و کپی کنید. در مرحله بعدی از آن استفاده خواهید کرد.

فراخوانی API با کلید

اکنون که کلید میانای API دارید، می‌توانید از آن برای فراخوانی پراکسی API استفاده کنید. موارد زیر را در مرورگر وب خود وارد کنید. نام سازمان Edge خود را به‌جای ORG_NAME، و کلید API را به‌جای API_KEY در زیر جایگزین کنید. مطمئن شوید که در پارامتر پُرسمان فاصله اضافی وجود نداشته باشد.

http://ORG_NAME-test.apigee.net/helloapikey?apikey=API_KEY

اکنون وقتی کارگزار میانای برنامه‌سازی کاربردی را فراخوانی می‌کنید، باید این پاسخ را دریافت کنید: Hello, Guest!

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

توجه داشته باشید که به‌طورکلی، ارسال کلید API به‌عنوان پارامتر پُرسمان روش خوبی نیست. بهتر است آن را در عوض در سرایند HTTP بگذرانید.

روال مطلوب: ارسال کلید در سرصفحه HTTP

در این مرحله، کارگزار پراکسی را تغییر می‌دهید تا کلید API را در سرایندی به‌نام x-apikey جستجو کند.

  1. پراکسی میانای برنامه‌سازی کاربردی را ویرایش کنید. توسعه > پراکسی‌های API > helloworld_apikey را انتخاب کنید و به نمای توسعه بروید.
  2. خط‌مشی درستی‌سنجی کلید API را انتخاب کنید و XML خط‌مشی را تغییر دهید تا به خط‌مشی بگویید به‌جای queryparam در header جستجو کند:

    <APIKey ref="request.header.x-apikey"/>
  3. برای استقرار تغییر، میانای برنامه‌سازی کاربردی را ذخیره کنید.
  4. تماس API زیر را بااستفاده از cURL برقرار کنید تا کلید API را به‌عنوان سرایند x-apikey ارسال کنید. فراموش نکنید نام سازمانتان را جایگزین کنید.

    curl -v -H "x-apikey: API_KEY" http://ORG_NAME-test.apigee.net/helloapikey
    

توجه داشته باشید که برای تکمیل کامل تغییر، باید خط‌مشی AssignMessage را نیز پیکربندی کنید تا به‌جای پارامتر پُرسمان، سرایند را بردارد. برای مثال:

<Remove>
<Headers>
    <Header name="x-apikey"/>
</Headers>
</Remove>

موضوعات مرتبط

در اینجا چند موضوع که مستقیماً با این آموزش مرتبط هستند آورده شده است:

کمی عمیق‌تر که نگاه کنیم، محافظت از میاناهای برنامه‌سازی کاربردی با کلیدهای میانای برنامه‌سازی کاربردی تنها بخشی از داستان است. اغلب، محافظت از میانای برنامه‌سازی کاربردی شامل امنیت اضافی مثل OAuth می‌شود.

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