شما در حال مشاهده اسناد Apigee Edge هستید.
به مستندات Apigee X بروید . اطلاعات
چیزی که یاد خواهید گرفت
از طریق این آموزش، شما یاد خواهید گرفت که:
- یک پروکسی API ایجاد کنید که به یک کلید API نیاز دارد.
- یک محصول API اضافه کنید.
- یک توسعه دهنده اضافه کنید و یک اپلیکیشن ثبت کنید.
- API خود را با یک کلید API تماس بگیرید.
مهم است که API خود را از دسترسی غیرمجاز محافظت کنید. یکی از راههای انجام این کار، استفاده از کلیدهای API است (که کلیدهای عمومی ، کلیدهای مصرف کننده یا کلیدهای برنامه نیز نامیده میشوند).
هنگامی که یک برنامه از API شما درخواست می کند، برنامه باید یک کلید معتبر ارائه دهد. در زمان اجرا، سیاست Verify API Key بررسی میکند که کلید API ارائه شده:
- معتبر است
- باطل نشده است
- با کلید API برای محصول API که منابع درخواستی را نشان می دهد مطابقت دارد
اگر کلید معتبر باشد، درخواست مجاز است. اگر کلید نامعتبر باشد، درخواست منجر به شکست مجوز می شود.
در این آموزش، شما یک پروکسی API ایجاد می کنید که برای دسترسی به آن به یک کلید API معتبر نیاز دارد.
آنچه شما نیاز دارید
- یک حساب Apigee Edge. اگر هنوز یکی را ندارید، میتوانید با دستورالعملهای ایجاد حساب Apigee Edge ثبتنام کنید.
- یک مرورگر وب برای برقراری تماس API.
- (برای بخش اعتبار اضافی، لازم نیست) cURL روی دستگاه شما نصب شده است تا از طریق خط فرمان تماس های API برقرار شود.
پروکسی API را ایجاد کنید
- به https://apigee.com/edge بروید و وارد شوید.
با کلیک روی نام کاربری خود در بالای نوار پیمایش کناری، به سازمان مورد نظر خود بروید تا منوی نمایه کاربر نمایش داده شود و سپس سازمان را از لیست انتخاب کنید.
روی API Proxies در صفحه فرود کلیک کنید تا لیست پراکسی های API نمایش داده شود.
- روی + Proxy کلیک کنید.
- در صفحه ایجاد پروکسی ، پراکسی معکوس (متداول ترین) را انتخاب کنید.
- در صفحه جزئیات پروکسی ، پروکسی را به صورت زیر پیکربندی کنید:
در این زمینه این کار را انجام دهید نام پروکسی را وارد کنید: helloworld_apikey
مسیر پایه پروژه تغییر به:
/helloapikey
Project Base Path بخشی از URL مورد استفاده برای درخواست به پروکسی API است.
توجه : برای توصیههای Apigee در مورد نسخهسازی API، نسخهسازی در طراحی Web API: The Missing Link e-book را ببینید.
API موجود وارد کنید:
http://mocktarget.apigee.net
این نشانی اینترنتی هدفی را که Apigee Edge در یک درخواست به پراکسی API فراخوانی میکند، مشخص میکند.
توضیحات وارد کنید: hello world protected by API key
- روی Next کلیک کنید.
- در صفحه سیاست های مشترک ، برای امنیت: مجوز ، کلید API را انتخاب کنید و سپس روی Next کلیک کنید. با این کار دو خط مشی به پروکسی API شما اضافه می شود.
- در صفحه Virtual Hosts ، گزینه default and safe را انتخاب کنید و سپس روی Next کلیک کنید. انتخاب پیش فرض به شما امکان می دهد API خود را با
http://
تماس بگیرید. انتخاب امن ، به شما امکان می دهد باhttps://
، API خود را فراخوانی کنید. - در صفحه خلاصه ، مطمئن شوید که محیط استقرار آزمایشی انتخاب شده است و سپس روی Create and Deploy کلیک کنید.
- تأییدیه ای خواهید دید که پروکسی API جدید و یک محصول API با موفقیت ایجاد شده است و پروکسی API در محیط آزمایشی شما مستقر شده است.
- روی ویرایش پراکسی کلیک کنید تا صفحه نمای کلی برای پراکسی API نمایش داده شود.
سیاست ها را مشاهده کنید
- در ویرایشگر پروکسی API، روی تب Develop کلیک کنید. خواهید دید که دو خط مشی به جریان درخواست پروکسی API اضافه شده است:
- تأیید کلید API: تماس API را بررسی می کند تا مطمئن شود یک کلید API معتبر وجود دارد (به عنوان پارامتر پرس و جو ارسال می شود).
- Remove Query Param apikey: یک خطمشی AssignMessage که کلید API را پس از بررسی حذف میکند، به طوری که بیضروره مورد استفاده قرار نگیرد و در معرض دید قرار نگیرد.
روی نماد سیاست تأیید API Key در نمای جریان کلیک کنید و به پیکربندی XML خط مشی در نمای کد پایین نگاه کنید. عنصر
<APIKey>
به خط مشی می گوید که در زمان برقراری تماس باید به دنبال کلید API بگردد. به طور پیش فرض، در درخواست HTTP به دنبال کلید به عنوان پارامتر پرس و جو به نامapikey
می گردد:<APIKey ref="request.queryparam.apikey" />
نام
apikey
دلخواه است و می تواند هر خاصیت حاوی کلید API باشد.
سعی کنید با API تماس بگیرید
در این مرحله، یک تماس موفق API مستقیماً با سرویس هدف برقرار میکنید، سپس یک تماس ناموفق با پراکسی API برقرار میکنید تا ببینید چگونه توسط خطمشیها محافظت میشود.
موفقیت
در یک مرورگر وب به آدرس زیر بروید. این سرویس هدفی است که پروکسی API برای ارسال درخواست به آن پیکربندی شده است، اما فعلاً مستقیماً آن را ضربه میزنید:
http://mocktarget.apigee.net
شما باید این پاسخ موفقیت آمیز را دریافت کنید:
Hello, Guest!
شکست
اکنون سعی کنید با پروکسی API خود تماس بگیرید:
http://ORG_NAME-test.apigee.net/helloapikey
نام سازمان Edge خود را جایگزین
ORG_NAME
کنید.بدون خطمشی Verify API Key، این تماس همان پاسخ تماس قبلی را به شما میدهد. اما در این حالت باید پاسخ خطای زیر را دریافت کنید:
{"fault":{"faultstring":"Failed to resolve API Key variable request.queryparam.apikey","detail":{"errorcode":"steps.oauth.v2.FailedToResolveAPIKey"}}}
به این معنی که، به درستی، شما یک کلید API معتبر (به عنوان پارامتر پرس و جو) ارسال نکرده اید.
در مراحل بعدی، یک محصول API اضافه خواهید کرد.
یک محصول API اضافه کنید
برای افزودن یک محصول API با استفاده از رابط کاربری Apigee:
- انتشار > محصولات API را انتخاب کنید.
- روی +API Product کلیک کنید.
جزئیات محصول را برای محصول API خود وارد کنید.
میدان توضیحات نام نام داخلی محصول API. در نام کاراکترهای خاص را مشخص نکنید.
توجه: پس از ایجاد محصول API نمی توانید نام را ویرایش کنید. به عنوان مثال،helloworld_apikey-Product
.نام نمایشی نام نمایشی برای محصول API. نام نمایشی در رابط کاربری استفاده میشود و میتوانید در هر زمان آن را ویرایش کنید. اگر مشخص نشده باشد، از مقدار Name استفاده خواهد شد. این فیلد با استفاده از مقدار Name به صورت خودکار پر می شود. می توانید محتوای آن را ویرایش یا حذف کنید. نام نمایشی می تواند شامل کاراکترهای خاص باشد. به عنوان مثال، helloworld_apikey-Product
.توضیحات توضیحات محصول API. به عنوان مثال، Test product for tutorial
.محیط زیست محیط هایی که محصول API اجازه دسترسی به آنها را می دهد. به عنوان مثال، test
یاprod
.دسترسی داشته باشید Public را انتخاب کنید. تأیید خودکار درخواستهای دسترسی تأیید خودکار درخواستهای کلیدی را برای این محصول API از هر برنامه فعال کنید. سهمیه برای این آموزش نادیده بگیرید. محدوده های OAuth مجاز برای این آموزش نادیده بگیرید. - در بخش منابع API، پراکسی API را که به تازگی ایجاد کرده اید انتخاب کنید. به عنوان مثال،
helloworld_apikey
. - روی افزودن کلیک کنید.
- در قسمت Paths مسیر "/" را اضافه کنید.
- روی افزودن کلیک کنید.
- روی ذخیره کلیک کنید.
در مراحل بعدی، کلید API مورد نیاز را دریافت خواهید کرد.
یک برنامهنویس و برنامه را به سازمان خود اضافه کنید
در مرحله بعد، ما می خواهیم گردش کار یک توسعه دهنده را که برای استفاده از API های شما ثبت نام می کند، شبیه سازی کنیم. یک توسعهدهنده یک یا چند برنامه خواهد داشت که APIهای شما را فراخوانی میکنند و هر برنامه یک کلید API منحصربهفرد دریافت میکند. این به شما، ارائهدهنده API، کنترل دقیقتری بر دسترسی به APIهای شما و گزارش دقیقتر ترافیک API توسط برنامه میدهد.
یک توسعه دهنده ایجاد کنید
برای ایجاد یک توسعه دهنده:
- Publish > Developers را در منو انتخاب کنید.
- روی + Developer کلیک کنید.
در پنجره New Developer موارد زیر را وارد کنید:
در این زمینه وارد کنید نام Keyser
نام خانوادگی Soze
نام کاربری keyser
ایمیل keyser@example.com
- روی ایجاد کلیک کنید.
ثبت یک اپلیکیشن
برای ثبت برنامه توسعه دهنده:
- انتشار > برنامه ها را انتخاب کنید.
- روی + برنامه کلیک کنید.
در پنجره برنامه جدید موارد زیر را وارد کنید:
در این زمینه این کار را انجام دهید صنام و نام نمایشی وارد کنید: keyser_app
شرکت / توسعه دهنده انتخاب کنید: Developer
توسعه دهنده انتخاب کنید: Keyser Soze (keyser@example.com)
URL و یادداشت های پاسخ به تماس خالی بگذارید - در قسمت Credentials از منوی Expiry گزینه Never را انتخاب کنید. اعتبار این برنامه هرگز منقضی نمی شود.
- در بخش محصولات ، روی افزودن محصول کلیک کنید.
- helloworld_apikey-Product را انتخاب کنید.
- روی افزودن کلیک کنید.
- روی Create در بالا و سمت راست قسمت App Details کلیک کنید تا کارتان ذخیره شود.
کلید API را دریافت کنید
برای دریافت کلید API:
- در صفحه برنامهها ( انتشار > برنامهها )، روی keyser_app کلیک کنید.
در صفحه keyser_app ، روی Show در کنار کلید در قسمت Credentials کلیک کنید. در بخش Product ، توجه کنید که کلید با helloworld_apikey مرتبط است
.- کلید را انتخاب و کپی کنید. در مرحله بعد از آن استفاده خواهید کرد.
با یک کلید API را فراخوانی کنید
اکنون که یک کلید API دارید، می توانید از آن برای فراخوانی پراکسی API استفاده کنید. موارد زیر را در مرورگر وب خود وارد کنید. نام سازمان Edge خود را با ORG_NAME و کلید API را برای API_KEY در زیر جایگزین کنید. اطمینان حاصل کنید که هیچ فاصله اضافی در پارامتر query وجود ندارد.
http://ORG_NAME-test.apigee.net/helloapikey?apikey=API_KEY
اکنون وقتی با پروکسی API تماس می گیرید، باید این پاسخ را دریافت کنید: Hello, Guest!
تبریک می گویم! شما یک پروکسی API ایجاد کردهاید و از آن محافظت کردهاید که باید یک کلید API معتبر در تماس گنجانده شود.
توجه داشته باشید که به طور کلی ارسال یک کلید API به عنوان پارامتر پرس و جو عمل خوبی نیست. به جای آن باید آن را در هدر HTTP ارسال کنید .
بهترین تمرین: ارسال کلید در هدر HTTP
در این مرحله، شما پروکسی را تغییر میدهید تا کلید API را در هدری به نام x-apikey
جستجو کند.
- پروکسی API را ویرایش کنید. Develop > API Proxies > helloworld_apikey را انتخاب کنید و به نمای Develop بروید.
خط مشی Verify API Key را انتخاب کنید و خط مشی XML را تغییر دهید تا به خط مشی بگویید به جای
queryparam
درheader
نگاه کند:<APIKey ref="request.header.x-apikey"/>
- پروکسی API را برای استقرار تغییر ذخیره کنید .
فراخوانی 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>
موضوعات مرتبط
در اینجا برخی از موضوعاتی وجود دارد که مستقیماً به این آموزش مربوط می شود:
- محصولات API را مدیریت کنید
- کلیدهای API
- ثبت نام توسعه دهندگان برنامه
- ثبت برنامه ها و مدیریت کلیدهای API
- سیاست VerifyAPIKey
- خط مشی AssignMessage
کمی عمیق تر، محافظت از API ها با کلیدهای API تنها بخشی از داستان است. اغلب اوقات، حفاظت API مستلزم امنیت اضافی مانند OAuth است.
OAuth یک پروتکل باز است که به طور خلاصه، اعتبار (مانند نام کاربری و رمز عبور) را برای توکن های دسترسی مبادله می کند. توکنهای دسترسی رشتههای طولانی و تصادفی هستند که میتوانند در اطراف خط لوله پیام، حتی از برنامهای به برنامه دیگر، بدون به خطر انداختن اعتبار اصلی، منتقل شوند. توکن های دسترسی اغلب عمر کوتاهی دارند، بنابراین موارد جدید همیشه تولید می شوند.
جز در مواردی که غیر از این ذکر شده باشد،محتوای این صفحه تحت مجوز Creative Commons Attribution 4.0 License است. نمونه کدها نیز دارای مجوز Apache 2.0 License است. برای اطلاع از جزئیات، به خطمشیهای سایت Google Developers مراجعه کنید. جاوا علامت تجاری ثبتشده Oracle و/یا شرکتهای وابسته به آن است.
تاریخ آخرین بهروزرسانی 2024-11-12 بهوقت ساعت هماهنگ جهانی.