คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่เอกสารประกอบของ
Apigee X info
สิ่งที่คุณจะได้เรียนรู้
ในบทแนะนำนี้ คุณจะได้เรียนรู้วิธีการต่อไปนี้
- สร้างพร็อกซี API ที่ต้องใช้คีย์ API
- เพิ่มผลิตภัณฑ์ API
- เพิ่มนักพัฒนาแอปและลงทะเบียนแอป
- เรียกใช้ API ด้วยคีย์ API
การปกป้อง API จากการเข้าถึงที่ไม่ได้รับอนุญาตเป็นสิ่งสำคัญ วิธีหนึ่งในการทำเช่นนั้นคือการใช้คีย์ API (หรือที่เรียกว่าคีย์สาธารณะ คีย์ผู้บริโภค หรือคีย์แอป)
เมื่อแอปส่งคำขอไปยัง API ของคุณ แอปจะต้องระบุคีย์ที่ถูกต้อง ในเวลาที่รันไทม์ นโยบาย "ยืนยันคีย์ API" จะตรวจสอบว่าคีย์ API ที่ระบุมีลักษณะดังนี้
- ถูกต้อง
- ยังไม่ถูกเพิกถอน
- ตรงกับคีย์ API สำหรับผลิตภัณฑ์ API ที่แสดงทรัพยากรที่ขอ
หากคีย์ถูกต้อง ระบบจะอนุญาตคำขอ หากคีย์ไม่ถูกต้อง คำขอจะทำให้การให้สิทธิ์ล้มเหลว
ในบทแนะนำนี้ คุณจะได้สร้างพร็อกซี API ที่ต้องใช้คีย์ API ที่ถูกต้องเพื่อเข้าถึง
สิ่งที่คุณต้องมี
- บัญชี Apigee Edge หากยังไม่มีบัญชี คุณสามารถลงชื่อสมัครใช้ โดยทำตามวิธีการที่ การสร้างบัญชี Apigee Edge
- เว็บเบราว์เซอร์เพื่อทำการเรียก API
- (สำหรับส่วนเครดิตพิเศษ ไม่บังคับ) ติดตั้ง cURL ใน เครื่องของคุณเพื่อทำการเรียก API จากบรรทัดคำสั่ง
สร้างพร็อกซี API
- ไปที่ https://apigee.com/edge แล้วลงชื่อเข้าใช้
เปลี่ยนไปใช้องค์กรที่ต้องการโดยคลิกชื่อผู้ใช้ที่ด้านบนของแถบนำทางด้านข้างเพื่อแสดงเมนูโปรไฟล์ผู้ใช้ แล้วเลือกองค์กรจากรายการ
-
คลิก API Proxy ในหน้า Landing Page เพื่อแสดงรายการ API Proxy
- คลิก + พร็อกซี

- ในหน้าสร้างพร็อกซี ให้เลือกพร็อกซีแบบย้อนกลับ (พบบ่อยที่สุด)
- ในหน้ารายละเอียดพร็อกซี ให้กำหนดค่าพร็อกซีดังนี้
ในฟิลด์นี้ ทำดังนี้ ชื่อพร็อกซี ป้อน: helloworld_apikeyเส้นทางฐานของโปรเจ็กต์ เปลี่ยนเป็น
/helloapikeyเส้นทางฐานของโปรเจ็กต์เป็นส่วนหนึ่งของ URL ที่ใช้เพื่อส่งคำขอไปยังพร็อกซี API
หมายเหตุ: ดูคำแนะนำของ Apigee เกี่ยวกับการกำหนดเวอร์ชัน API ได้ที่ การกำหนดเวอร์ชันในอีบุ๊กการออกแบบ Web API: The Missing Link
API ที่มีอยู่ ป้อน:
http://mocktarget.apigee.netซึ่งจะกำหนด URL เป้าหมายที่ Apigee Edge เรียกใช้ในคำขอไปยังพร็อกซี API
คำอธิบาย ป้อน: hello world protected by API key - คลิกถัดไป
- ในหน้านโยบายทั่วไป สำหรับความปลอดภัย: การให้สิทธิ์ ให้เลือกคีย์ API แล้วคลิกถัดไป การดำเนินการนี้ จะเพิ่มนโยบาย 2 รายการลงในพร็อกซี API
- ในหน้าโฮสต์เสมือน ให้เลือก default และ
secure แล้วคลิกถัดไป การเลือกค่าเริ่มต้นจะช่วยให้
คุณเรียก API ด้วย
http://ได้ การเลือก secure จะช่วยให้คุณเรียก API ด้วยhttps://ได้ - ในหน้าสรุป ให้ตรวจสอบว่าได้เลือกสภาพแวดล้อมการติดตั้งใช้งานทดสอบแล้ว จากนั้นคลิกสร้างและติดตั้งใช้งาน
- คุณจะเห็นข้อความรับทราบว่าระบบสร้างพร็อกซี API ใหม่และผลิตภัณฑ์ API เรียบร้อยแล้ว และได้ทําการติดตั้งใช้งานพร็อกซี API ในสภาพแวดล้อมการทดสอบ แล้ว
- คลิกแก้ไขพร็อกซีเพื่อแสดงหน้าภาพรวมของ พร็อกซี API
ดูนโยบาย
- ในเครื่องมือแก้ไขพร็อกซี API ให้คลิกแท็บพัฒนา คุณจะเห็นว่า
มีการเพิ่มนโยบาย 2 รายการลงในขั้นตอนการส่งคำขอของพร็อกซี API ดังนี้
- ยืนยันคีย์ API: ตรวจสอบการเรียก API เพื่อให้แน่ใจว่ามีคีย์ API ที่ถูกต้อง (ส่งเป็นพารามิเตอร์การค้นหา)
- นำพารามิเตอร์การค้นหา apikey ออก: นโยบาย AssignMessage ที่ นำคีย์ API ออกหลังจากตรวจสอบแล้ว เพื่อไม่ให้มีการส่งต่อ และเปิดเผยโดยไม่จำเป็น
-
คลิกไอคอนนโยบาย "ยืนยันคีย์ API" ในมุมมองโฟลว์ แล้วดู การกำหนดค่า XML ของนโยบายในมุมมองโค้ดด้านล่าง องค์ประกอบ
<APIKey>จะบอกนโยบายว่าควร ค้นหาคีย์ API ที่ใดเมื่อมีการเรียก โดยค่าเริ่มต้น ระบบจะค้นหาคีย์เป็นพารามิเตอร์การค้นหาที่ชื่อapikeyในคำขอ HTTP<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
แทนที่
ORG_NAMEด้วยชื่อองค์กร Edge ของคุณหากไม่มีนโยบาย "ยืนยันคีย์ API" การเรียกนี้จะให้คำตอบเดียวกับการเรียกก่อนหน้า แต่ในกรณีนี้ คุณควรได้รับ การตอบกลับข้อผิดพลาดต่อไปนี้
{"fault":{"faultstring":"Failed to resolve API Key variable request.queryparam.apikey","detail":{"errorcode":"steps.oauth.v2.FailedToResolveAPIKey"}}}
ซึ่งหมายความว่าคุณไม่ได้ส่งคีย์ API ที่ถูกต้อง (เป็นพารามิเตอร์การค้นหา)
ในขั้นตอนถัดไป คุณจะเพิ่มผลิตภัณฑ์ API
เพิ่มผลิตภัณฑ์ API
วิธีเพิ่มผลิตภัณฑ์ API โดยใช้ UI ของ Apigee
- เลือกเผยแพร่ > ผลิตภัณฑ์ API
- คลิก +ผลิตภัณฑ์ API
ป้อนรายละเอียดผลิตภัณฑ์สำหรับผลิตภัณฑ์ API
ช่อง รายละเอียด ชื่อ ชื่อภายในของผลิตภัณฑ์ API อย่า ระบุอักขระพิเศษในชื่อ
หมายเหตุ: คุณ จะแก้ไขชื่อไม่ได้เมื่อสร้างผลิตภัณฑ์ API แล้ว เช่นhelloworld_apikey-Productชื่อที่แสดง ชื่อที่แสดงสำหรับผลิตภัณฑ์ API ระบบจะใช้ชื่อที่แสดงใน UI และคุณแก้ไขได้ทุกเมื่อ หากไม่ได้ระบุ ระบบจะใช้ค่าชื่อ ระบบจะป้อนข้อมูลในช่องนี้โดยอัตโนมัติโดยใช้ค่าชื่อ คุณสามารถแก้ไขหรือลบเนื้อหาได้ ชื่อที่แสดง มีสัญลักษณ์พิเศษได้ เช่น helloworld_apikey-Productคำอธิบาย คำอธิบายผลิตภัณฑ์ API เช่น Test product for tutorialสภาพแวดล้อม สภาพแวดล้อมที่ผลิตภัณฑ์ API จะอนุญาตให้เข้าถึง เช่น testหรือprodการเข้าถึง เลือกสาธารณะ อนุมัติคำขอเข้าถึงโดยอัตโนมัติ เปิดใช้การอนุมัติคำขอคีย์สำหรับผลิตภัณฑ์ API นี้จากแอปใดก็ได้โดยอัตโนมัติ โควต้า ไม่ต้องสนใจในบทแนะนำนี้ ขอบเขต OAuth ที่อนุญาต ไม่ต้องสนใจในบทแนะนำนี้ - ในส่วนทรัพยากร API ให้เลือกพร็อกซี API ที่คุณเพิ่งสร้าง
เช่น
helloworld_apikey - คลิกเพิ่ม
- ในส่วนเส้นทาง ให้เพิ่มเส้นทาง "/"
- คลิกเพิ่ม
- คลิกบันทึก
ในขั้นตอนถัดไป คุณจะได้รับคีย์ API ที่จำเป็น
เพิ่มนักพัฒนาแอปและแอปไปยัง องค์กร
จากนั้นเราจะจำลองเวิร์กโฟลว์ของนักพัฒนาแอปที่ลงชื่อสมัครใช้เพื่อ ใช้ API ของคุณ นักพัฒนาแอปจะมีแอปอย่างน้อย 1 แอปที่เรียกใช้ API ของคุณ และแต่ละแอปจะได้รับคีย์ API ที่ไม่ซ้ำกัน ซึ่งจะช่วยให้คุณในฐานะผู้ให้บริการ API ควบคุมการเข้าถึง API ได้ละเอียดมากขึ้น และรายงานการเข้าชม API ตามแอปได้ละเอียดมากขึ้น
สร้างนักพัฒนาแอป
วิธีสร้างนักพัฒนาแอป
- เลือกเผยแพร่ > นักพัฒนาแอปในเมนู
- คลิก + นักพัฒนาแอป
ป้อนข้อมูลต่อไปนี้ในหน้าต่างนักพัฒนาแอปใหม่
ในฟิลด์นี้ Enter ชื่อ Keyserนามสกุล Sozeชื่อผู้ใช้ keyserอีเมล keyser@example.com- คลิกสร้าง
ลงทะเบียนแอป
วิธีลงทะเบียนแอปสำหรับนักพัฒนาแอป
- เลือกเผยแพร่ > แอป
- คลิก + แอป
ป้อนข้อมูลต่อไปนี้ในหน้าต่างแอปใหม่
pในฟิลด์นี้ ทำดังนี้ ชื่อและชื่อที่แสดง ป้อน: keyser_appบริษัท / นักพัฒนาแอป เลือก Developerนักพัฒนาซอฟต์แวร์ เลือก Keyser Soze (keyser@example.com)URL ของ Callback และหมายเหตุ เว้นว่างไว้ - ในส่วนข้อมูลเข้าสู่ระบบ ให้เลือกไม่หมดอายุจากเมนูการหมดอายุ ข้อมูลเข้าสู่ระบบสำหรับแอปนี้จะไม่มีวันหมดอายุ
- คลิกเพิ่มผลิตภัณฑ์ในส่วนผลิตภัณฑ์
- เลือก helloworld_apikey-Product
- คลิกเพิ่ม
- คลิกสร้างที่ด้านบนและด้านขวาของส่วนรายละเอียดแอป เพื่อบันทึกงาน
รับคีย์ API
วิธีรับคีย์ API
- ในหน้าแอป (เผยแพร่ > แอป) ให้คลิก keyser_app
ในหน้า keyser_app ให้คลิกแสดงข้างคีย์ ในส่วนข้อมูลเข้าสู่ระบบ ในส่วนผลิตภัณฑ์ โปรดสังเกตว่าคีย์เชื่อมโยงกับ helloworld_apikey
- เลือกและคัดลอกคีย์ คุณจะต้องใช้รหัสนี้ในขั้นตอนถัดไป
เรียกใช้ API ด้วยคีย์
ตอนนี้คุณมีคีย์ API แล้ว คุณสามารถใช้คีย์ดังกล่าวเพื่อเรียกพร็อกซี API ได้ ป้อน ข้อความต่อไปนี้ในเว็บเบราว์เซอร์ แทนที่ชื่อองค์กร Edge ด้วย ORG_NAME และคีย์ API ด้วย API_KEY ด้านล่าง ตรวจสอบว่าไม่มีการเว้นวรรคเพิ่มเติมในพารามิเตอร์การค้นหา
http://ORG_NAME-test.apigee.net/helloapikey?apikey=API_KEY
ตอนนี้เมื่อเรียกพร็อกซี API คุณควรได้รับการตอบกลับต่อไปนี้
Hello, Guest!
ยินดีด้วย คุณได้สร้างพร็อกซี API และปกป้องพร็อกซีดังกล่าวโดย กำหนดให้ต้องรวมคีย์ API ที่ถูกต้องในการเรียก
โปรดทราบว่าโดยทั่วไปแล้ว การส่งคีย์ API เป็นพารามิเตอร์การค้นหาไม่ใช่แนวทางปฏิบัติที่ดี คุณควรพิจารณา ส่งในส่วนหัว HTTP แทน
แนวทางปฏิบัติแนะนำ: การส่งคีย์ในส่วนหัว HTTP
ในขั้นตอนนี้ คุณจะแก้ไขพร็อกซีเพื่อค้นหาคีย์ API ในส่วนหัว
ที่ชื่อ x-apikey
- แก้ไขพร็อกซี API เลือกพัฒนา > พร็อกซี API > helloworld_apikey แล้วไปที่มุมมองพัฒนา
-
เลือกนโยบายยืนยันคีย์ API แล้วแก้ไข XML ของนโยบายเพื่อบอก นโยบายให้ค้นหาใน
headerแทนที่จะค้นหาในqueryparam<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 policy
การปกป้อง API ด้วยคีย์ API เป็นเพียงส่วนหนึ่งของเรื่องราวเท่านั้น บ่อยครั้งที่ การปกป้อง API เกี่ยวข้องกับการรักษาความปลอดภัยเพิ่มเติม เช่น OAuth
OAuth เป็น โปรโตคอลแบบเปิดที่แลกเปลี่ยนข้อมูลเข้าสู่ระบบ (เช่น ชื่อผู้ใช้และรหัสผ่าน) เป็น โทเค็นเพื่อการเข้าถึง โทเค็นการเข้าถึงเป็นสตริงแบบสุ่มที่ยาวซึ่งสามารถส่งต่อในไปป์ไลน์ข้อความ แม้จากแอปหนึ่งไปยังอีกแอปหนึ่ง โดยไม่ทำให้ข้อมูลเข้าสู่ระบบเดิมตกอยู่ในความเสี่ยง โทเค็น เพื่อการเข้าถึงมักมีอายุการใช้งานสั้น ดังนั้นระบบจึงสร้างโทเค็นใหม่ๆ อยู่เสมอ