คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่เอกสารประกอบของ Apigee X ข้อมูล
สิ่งที่คุณจะได้เรียนรู้
ในบทแนะนำนี้ คุณจะได้เรียนรู้วิธี:
- สร้างพร็อกซี 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 ในหน้า Landing Page เพื่อแสดงรายการพร็อกซี API
- คลิก + พร็อกซี
- ในหน้าสร้างพร็อกซี ให้เลือกย้อนกลับพร็อกซี (ใช้กันโดยทั่วไป)
- ในหน้ารายละเอียดพร็อกซี ให้กำหนดค่าพร็อกซีดังนี้
ในช่องนี้ สิ่งที่ต้องทำ ชื่อพร็อกซี ป้อน: helloworld_apikey
เส้นทางฐานโปรเจ็กต์ เปลี่ยนเป็น:
/helloapikey
เส้นทางฐานของโปรเจ็กต์เป็นส่วนหนึ่งของ URL ที่ใช้ในการส่งคำขอไปยังพร็อกซี API
หมายเหตุ: สำหรับคำแนะนำของ Apigee เกี่ยวกับการกำหนดเวอร์ชัน API โปรดดู การกำหนดเวอร์ชันใน eBook เรื่องการออกแบบ Web API: ลิงก์ที่ขาดหายไป
API ที่มีอยู่ ป้อน:
http://mocktarget.apigee.net
แอตทริบิวต์นี้กำหนด URL เป้าหมายที่ Apigee Edge เรียกใช้ในคำขอที่ส่งไปยังพร็อกซี API
คำอธิบาย ป้อน: hello world protected by API key
- คลิกถัดไป
- ในหน้านโยบายทั่วไป ให้เลือกคีย์ API แล้วคลิกถัดไปสำหรับการรักษาความปลอดภัย: การให้สิทธิ์ การดำเนินการนี้จะเพิ่มนโยบาย 2 รายการลงในพร็อกซี API
- ในหน้า Virtual Hosts ให้เลือก default และ secure แล้วคลิก Next การเลือกค่าเริ่มต้นจะช่วยให้คุณเรียกใช้ API ด้วย
http://
ได้ การเลือกปลอดภัยจะช่วยให้คุณเรียกใช้ API ด้วยhttps://
ได้ - ในหน้าสรุป โปรดตรวจสอบว่าได้เลือกสภาพแวดล้อมการทำให้การทดสอบใช้งานได้ แล้วคลิกสร้างและทำให้ใช้งานได้
- คุณจะเห็นการรับทราบว่าสร้างพร็อกซี API ใหม่และผลิตภัณฑ์ API สำเร็จแล้ว และทำให้พร็อกซี API ใช้งานได้กับสภาพแวดล้อมการทดสอบ
- คลิกแก้ไขพร็อกซีเพื่อแสดงหน้าภาพรวมสำหรับพร็อกซี API
ดูนโยบาย
- คลิกแท็บพัฒนาในเครื่องมือแก้ไขพร็อกซี API คุณจะเห็นว่ามีการเพิ่มนโยบาย 2 รายการลงในขั้นตอนการส่งคำขอของพร็อกซี API ดังนี้
- ยืนยันคีย์ API: ตรวจสอบการเรียก API เพื่อให้แน่ใจว่ามีคีย์ API ที่ถูกต้อง (ส่งเป็นพารามิเตอร์การค้นหา)
- นำพารามิเตอร์พารามิเตอร์การค้นหาออก: นโยบาย 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 โดยใช้ Apigee UI
- เลือกเผยแพร่ > ผลิตภัณฑ์ 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 เรียกกลับและหมายเหตุ เว้นว่างไว้ - ในส่วนข้อมูลเข้าสู่ระบบ ให้เลือกไม่เลยจากเมนูหมดอายุ ข้อมูลเข้าสู่ระบบสำหรับแอปนี้จะไม่มีวันหมดอายุ
- คลิกเพิ่มผลิตภัณฑ์ใต้ผลิตภัณฑ์
- เลือก helloworld_apikey-Product
- คลิกเพิ่ม
- คลิกสร้างด้านบนและทางด้านขวาของส่วนรายละเอียดแอปเพื่อบันทึกงาน
รับคีย์ API
วิธีรับคีย์ API
- ในหน้า Apps (เผยแพร่ > แอป) ให้คลิก keyser_app
ในหน้า keyser_app ให้คลิก Show ถัดจาก Key ในส่วน Credentials ในส่วน Product ให้สังเกตว่าคีย์เชื่อมโยงกับ 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 เป็นพารามิเตอร์การค้นหาไม่ใช่แนวทางปฏิบัติที่ดี คุณควร ส่งผ่าน URL ดังกล่าวในส่วนหัว 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
- นโยบาย ConfirmAPIKey
- นโยบาย AssignMessage
เจาะลึกลงไปอีกเล็กน้อย การปกป้อง API ด้วยคีย์ API เป็นเพียงส่วนหนึ่งของเรื่องราวเท่านั้น บ่อยครั้งที่การปกป้อง API ต้องมีความปลอดภัยเพิ่มเติม เช่น OAuth
OAuth เป็นโปรโตคอลแบบเปิดที่สรุปง่ายๆ ก็คือแลกเปลี่ยนข้อมูลเข้าสู่ระบบ (เช่น ชื่อผู้ใช้และรหัสผ่าน) สำหรับโทเค็นเพื่อการเข้าถึง โทเค็นเพื่อการเข้าถึงเป็นสตริงแบบสุ่มขนาดยาวที่ส่งต่อผ่านไปป์ไลน์ข้อความได้ แม้จากแอปหนึ่งไปยังอีกแอปหนึ่ง โดยไม่กระทบต่อข้อมูลเข้าสู่ระบบเดิม โทเค็นเพื่อการเข้าถึงมักมีอายุการใช้งานสั้น จึงมีการสร้างโทเค็นใหม่ๆ อยู่เสมอ