คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่
เอกสารประกอบของ Apigee X info
Apigee Edge ช่วยให้คุณทำการเรียก Edge API ที่มีการตรวจสอบสิทธิ์ด้วยโทเค็น OAuth2 ได้ การรองรับ OAuth2 จะเปิดใช้โดยค่าเริ่มต้นในบัญชี Edge for the Cloud หากคุณใช้ Edge สำหรับ Private Cloud คุณจะใช้ OAuth2 ไม่ได้หากไม่ได้ ตั้งค่า SAML หรือ LDAP ก่อน
วิธีทำงานของ OAuth2 (กับ Apigee Edge API)
การเรียก Apigee Edge API ต้องมีการตรวจสอบสิทธิ์เพื่อให้มั่นใจว่าคุณเป็นบุคคลที่คุณอ้างว่าเป็น ในการตรวจสอบสิทธิ์ คุณต้องส่งโทเค็นเพื่อการเข้าถึง OAuth2 ไปพร้อมกับคำขอเข้าถึง API
ตัวอย่างเช่น หากต้องการดูรายละเอียดเกี่ยวกับองค์กรใน Edge คุณจะต้องส่งคำขอไปยัง URL ที่มีลักษณะดังนี้
https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval
แต่คุณจะส่งคำขอดังกล่าวโดยไม่บอกให้เรารู้ว่าคุณเป็นใครไม่ได้ มิเช่นนั้น ทุกคน จะเห็นรายละเอียดขององค์กรคุณ
OAuth2 จึงเข้ามามีบทบาทในส่วนนี้ โดยในการตรวจสอบสิทธิ์ คุณต้องส่ง โทเค็นเพื่อการเข้าถึง ไปพร้อมกับคำขอดังกล่าวด้วย โทเค็นเพื่อการเข้าถึงจะบอกให้เรารู้ว่าคุณเป็นใคร เพื่อให้เรามั่นใจว่าคุณได้รับอนุญาตให้ดูรายละเอียดขององค์กร
โชคดีที่คุณสามารถรับโทเค็นได้โดยส่งข้อมูลเข้าสู่ระบบไปยังบริการ Edge OAuth2 บริการจะตอบกลับด้วยโทเค็นเพื่อการเข้าถึงและโทเค็นการรีเฟรช
ขั้นตอน OAuth2: คำขอเริ่มต้น
รูปภาพต่อไปนี้แสดงขั้นตอน OAuth2 เมื่อคุณเข้าถึง Edge API เป็นครั้งแรก
เมื่อคุณส่งคำขอเริ่มต้นไปยัง Edge API สิ่งที่จะเกิดขึ้นมีดังนี้ (ตามที่แสดงในรูปที่ 1)
- คุณขอโทเค็นเพื่อการเข้าถึง คุณสามารถทำได้โดยใช้
Edge API, acurl, หรือ
get_tokenเช่นget_token Enter username:
ahamilton@apigee.comEnter the password for user 'ahamilton@apigee.com'[hidden input]Enter the six-digit code if 'ahamilton@apigee.com' is MFA enabled or press ENTER:123456 - บริการ Edge OAuth2 จะตอบกลับด้วยโทเค็นเพื่อการเข้าถึงและพิมพ์โทเค็นดังกล่าวไปยัง
stdout; เช่นDy42bGciOiJSUzI1NiJ9.eyJqdGkiOiJhM2YwNjA5ZC1lZTIxLTQ1YjAtOGQyMi04MTQ0MTYxNjNhNTMiLCJz AJpdGUiLCJhcHByb3ZhbHMubWUiLCJvYXV0aC5hcHByb3ZhbHMiXSwiY2xpZW50X2lkIjoiZWRnZWNsaSIsIm NjbGkiLCJhenAiOiJlZGdlY2xpIiwiZ3JhbnRfdHlwZSI6InBhc3N3b3JkIiwidXNlcl9pZCI6IjJkMWU3NDI GzQyMC1kYzgxLTQzMDQtOTM4ZS1hOGNmNmVlODZhNzkiLCJzY29wZSI6WyJzY2ltLm1lIiwib3BlbmlkIiwic ENC05MzhlLWE4Y2Y2ZWU4NmE3OSIsIm9yaWdpbiI6InVzZXJncmlkIiwidXNlcl9uYW1lIjoiZGFuZ2VyNDI0 RI6ImUyNTM2NWQyIiwiaWF0IjoxNTI4OTE2NDA5LCJleHAiOjE1Mjg5MTgyMDksImlzcyI6Imh0dHBzOi8vbG 420iLCJlbWFpbCI6ImRhbmdlcjQyNDJAeWFob28uY29tIiwiYXV0aF90aW1lIjoxNTI4OTE2NDA5LCJhbCI6M 2lLmNvbSIsInppZCI6InVhYSIsImF1ZCI6WyJlZGdlY2xpIiwic2NpbSIsIm9wZW5pZCIsInBhc3N3b3JkIiw
ยูทิลิตี
acurlและget_tokenจะบันทึกโทเค็นเพื่อการเข้าถึงและโทเค็นการรีเฟรชไปยัง~/.sso-cliโดยไม่แสดงข้อความใดๆ (ระบบจะไม่เขียนโทเค็นการรีเฟรชไปยังstdout) หากคุณใช้บริการ Edge OAuth2 เพื่อรับโทเค็น คุณจะต้องบันทึกโทเค็นไว้ใช้เองในภายหลัง - คุณส่งคำขอไปยัง Edge API พร้อมโทเค็นเพื่อการเข้าถึง
acurlจะแนบ โทเค็นโดยอัตโนมัติ เช่นacurl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval
หากคุณใช้ไคลเอ็นต์ HTTP อื่น โปรดตรวจสอบว่าได้เพิ่มโทเค็นเพื่อการเข้าถึงแล้ว เช่น
curl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval \ -H "Authorization: Bearer ACCESS_TOKEN"
- Edge API จะดำเนินการตามคำขอและโดยปกติจะแสดงการตอบกลับพร้อมข้อมูล
ขั้นตอน OAuth2: คำขอต่อๆ ไป
ในคำขอต่อๆ ไป คุณไม่จำเป็นต้องแลกข้อมูลเข้าสู่ระบบเป็นโทเค็น แต่คุณเพียงแค่ใส่โทเค็นเพื่อการเข้าถึงที่คุณมีอยู่แล้ว ตราบใดที่โทเค็นยังไม่หมดอายุ
เมื่อคุณมีโทเค็นเพื่อการเข้าถึงอยู่แล้ว สิ่งที่จะเกิดขึ้นมีดังนี้ (ตามที่แสดงในรูปที่ 2)
- คุณส่งคำขอไปยัง Edge API พร้อมโทเค็นเพื่อการเข้าถึง
acurlจะแนบโทเค็นโดยอัตโนมัติ หากคุณใช้เครื่องมืออื่นๆ คุณจะต้องเพิ่มโทเค็นด้วยตนเอง - Edge API จะดำเนินการตามคำขอและโดยปกติจะแสดงการตอบกลับพร้อมข้อมูล
ขั้นตอน OAuth2: เมื่อโทเค็นเพื่อการเข้าถึงหมดอายุ
เมื่อโทเค็นเพื่อการเข้าถึงหมดอายุ (หลังจากผ่านไป 12 ชั่วโมง) คุณสามารถใช้โทเค็นการรีเฟรชเพื่อรับโทเค็นเพื่อการเข้าถึงใหม่ได้
เมื่อโทเค็นเพื่อการเข้าถึงหมดอายุ สิ่งที่จะเกิดขึ้นมีดังนี้ (ตามที่แสดงในรูปที่ 3)
- คุณส่งคำขอไปยัง Edge API แต่โทเค็นเพื่อการเข้าถึงหมดอายุแล้ว
- Edge API จะปฏิเสธคำขอเนื่องจากไม่มีสิทธิ์
- คุณส่งโทเค็นการรีเฟรชไปยังบริการ Edge OAuth2 หากคุณใช้
acurlระบบจะดำเนินการนี้ให้คุณโดยอัตโนมัติ - บริการ Edge OAuth2 จะตอบกลับด้วยโทเค็นเพื่อการเข้าถึงใหม่
- คุณส่งคำขอไปยัง Edge API พร้อมโทเค็นเพื่อการเข้าถึงใหม่
- Edge API จะดำเนินการตามคำขอและโดยปกติจะแสดงการตอบกลับพร้อมข้อมูล
รับโทเค็น
หากต้องการรับโทเค็นเพื่อการเข้าถึงที่จะส่งไปยัง Edge API คุณสามารถใช้ยูทิลิตีต่อไปนี้ของ Apigee
นอกเหนือจากยูทิลิตีอย่างเช่น curl
- ยูทิลิตี get_token: แลกข้อมูลเข้าสู่ระบบ Apigee เป็นโทเค็นเพื่อการเข้าถึง และโทเค็นการรีเฟรชที่คุณใช้เรียก Edge API ได้
- ยูทิลิตี acurl: มี Wrapper ที่สะดวกสำหรับการเรียกใช้คำสั่งมาตรฐาน
curlสร้างคำขอ HTTP ไปยัง Edge API, รับโทเค็นเพื่อการเข้าถึงและโทเค็นการรีเฟรชจากget_tokenและส่งโทเค็นเพื่อการเข้าถึงไปยัง the Edge API - ปลายทางของโทเค็นในบริการ Edge OAuth2: แลก ข้อมูลเข้าสู่ระบบ Apigee เป็นโทเค็นเพื่อการเข้าถึงและโทเค็นการรีเฟรชผ่านการเรียก Edge API
ยูทิลิตีเหล่านี้จะแลกข้อมูลเข้าสู่ระบบบัญชี Apigee (อีเมลและ รหัสผ่าน) เป็นโทเค็นที่มีระยะเวลาดังนี้
- โทเค็นเพื่อการเข้าถึงจะหมดอายุใน 12 ชั่วโมง
- โทเค็นการรีเฟรชจะหมดอายุใน 30 วัน
ด้วยเหตุนี้ เมื่อคุณทำการเรียก API ด้วย acurl หรือ get_token,
สำเร็จแล้ว คุณจะใช้โทเค็นทั้ง 2 รายการต่อไปได้เป็นเวลา 30 วัน หลังจากโทเค็นหมดอายุ คุณต้องป้อนข้อมูลเข้าสู่ระบบของคุณ
อีกครั้งและรับโทเค็นใหม่
เข้าถึง Edge API ด้วย OAuth2
หากต้องการเข้าถึง Edge API ให้ส่งคำขอไปยังปลายทาง API และใส่โทเค็นเพื่อการเข้าถึง
คุณสามารถทำได้โดยใช้ไคลเอ็นต์ HTTP ใดก็ได้ ซึ่งรวมถึงยูทิลิตีบรรทัดคำสั่ง เช่น curl,
UI ที่ใช้เบราว์เซอร์ เช่น Postman หรือยูทิลิตี Apigee เช่น acurl
การเข้าถึง Edge API ด้วย acurl และ curl มีอธิบายไว้ใน
ส่วนต่อไปนี้
ใช้ acurl
หากต้องการเข้าถึง Edge API ด้วย acurl คำขอเริ่มต้นต้องมี
ข้อมูลเข้าสู่ระบบ บริการ Edge OAuth2 จะตอบกลับด้วยโทเค็นเพื่อการเข้าถึงและโทเค็นการรีเฟรช acurl
จะบันทึกโทเค็นไว้ในเครื่อง
ในคำขอต่อๆ ไป acurl จะใช้โทเค็นที่บันทึกไว้ใน ~/.sso-cli เพื่อให้คุณไม่ต้องใส่ข้อมูลเข้าสู่ระบบอีกจนกว่าโทเค็นจะหมดอายุ
ตัวอย่างต่อไปนี้แสดงคำขอ acurl เริ่มต้นที่รับรายละเอียดสำหรับ
"ahamilton-eval" องค์กร:
acurl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval \ -u ahamilton@apigee.com Enter the password for user 'ahamilton@apigee.com'[hidden input]Enter the six-digit code (no spaces) if 'ahamilton@apigee.com' is MFA-enabled or press ENTER:1a2b3c{ "createdAt" : 1491854501264, "createdBy" : "noreply_iops@apigee.com", "displayName" : "ahamilton", "environments" : [ "prod", "test" ], "lastModifiedAt" : 1491854501264, "lastModifiedBy" : "noreply_iops@apigee.com", "name" : "ahamilton", "properties" : { "property" : [ { "name" : "features.isSmbOrganization", "value" : "false" }, { "name" : "features.isCpsEnabled", "value" : "true" } ] }, "type" : "trial" }acurl https://api.enterprise.apigee.com/v1/o/ahamilton-eval/apis/helloworld/revisions/1/policies[ "SOAP-Message-Validation-1", "Spike-Arrest-1", "XML-to-JSON-1" ]
นอกเหนือจากการรับรายละเอียดเกี่ยวกับองค์กรแล้ว ตัวอย่างนี้ยังแสดงคำขอที่ 2 ที่รับรายการนโยบายภายในพร็อกซี API "helloworld" คำขอที่ 2 ใช้ตัวย่อ "o" สำหรับ "organizations" ใน URL
โปรดทราบว่า acurl จะส่งโทเค็นเพื่อการเข้าถึงในคำขอที่ 2 โดยอัตโนมัติ คุณไม่จำเป็นต้องส่งข้อมูลเข้าสู่ระบบของผู้ใช้เมื่อ acurl จัดเก็บโทเค็น OAuth2 แล้ว โดยจะรับโทเค็นจาก ~/.sso-cli สำหรับการเรียกต่อๆ ไป
ดูข้อมูลเพิ่มเติมได้ที่ การใช้ acurl เพื่อเข้าถึง Edge API
ใช้ curl
คุณสามารถใช้ curl เพื่อเข้าถึง Edge API ได้ โดยคุณต้องรับโทเค็นเพื่อการเข้าถึงและโทเค็นการรีเฟรชก่อน
คุณสามารถรับโทเค็นเหล่านี้ได้โดยใช้ยูทิลิตี เช่น get_token หรือ
บริการ Edge OAuth2
หลังจากบันทึกโทเค็นเพื่อการเข้าถึงเรียบร้อยแล้ว ให้ส่งโทเค็นดังกล่าวในส่วนหัว
Authorization ของการเรียก Edge API ดังที่แสดงในตัวอย่างต่อไปนี้
curl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval \ -H "Authorization: Bearer ACCESS_TOKEN"
โทเค็นเพื่อการเข้าถึงจะใช้งานได้เป็นเวลา 12 ชั่วโมงหลังจากออกโทเค็น หลังจากโทเค็นเพื่อการเข้าถึงหมดอายุแล้ว คุณสามารถใช้โทเค็นการรีเฟรชได้เป็นเวลา 30 วันเพื่อออก โทเค็นเพื่อการเข้าถึงอื่นโดยไม่ต้องใช้ข้อมูลเข้าสู่ระบบ Apigee ขอแนะนำให้ขอโทเค็นเพื่อการเข้าถึงใหม่หลังจากโทเค็นการรีเฟรชหมดอายุแล้วเท่านั้น แทนที่จะ ป้อนข้อมูลเข้าสู่ระบบและส่งคำขอใหม่ทุกครั้งที่เรียก API
การหมดอายุของโทเค็น
เมื่อโทเค็นเพื่อการเข้าถึงหมดอายุแล้ว คุณสามารถใช้โทเค็นการรีเฟรชเพื่อรับโทเค็นเพื่อการเข้าถึงใหม่ได้โดยไม่ต้อง ส่งข้อมูลเข้าสู่ระบบอีกครั้ง
วิธีรีเฟรชโทเค็นเพื่อการเข้าถึงจะขึ้นอยู่กับเครื่องมือที่คุณใช้ ดังนี้
acurl: ไม่จำเป็นต้องดำเนินการใดๆacurlจะรีเฟรชโทเค็นเพื่อการเข้าถึงโดยอัตโนมัติ เมื่อคุณส่งคำขอที่มีโทเค็นที่ล้าสมัยget_token: เรียกget_tokenเพื่อรีเฟรชโทเค็นเพื่อการเข้าถึง- บริการ Edge OAuth2: ส่งคำขอที่มีข้อมูลต่อไปนี้
- โทเค็นการรีเฟรช
- พารามิเตอร์แบบฟอร์ม
grant_typeที่ตั้งค่าเป็น "refresh_token"
OAuth2 สำหรับผู้ใช้ที่เป็นเครื่อง
คุณสามารถใช้ยูทิลิตี acurl และ get_token เพื่อเขียนสคริปต์การเข้าถึง Edge API โดยอัตโนมัติด้วยการตรวจสอบสิทธิ์ OAuth2 สำหรับผู้ใช้ที่เป็นเครื่อง ตัวอย่างต่อไปนี้แสดงวิธีใช้ get_token เพื่อขอโทเค็นเพื่อการเข้าถึง แล้วเพิ่มค่าโทเค็นลงในการเรียก curl
USER=me@example.comPASS=not-that-secretTOKEN=$(get_token -u $USER:$PASS -m '')curl -H "Authorization: Bearer $TOKEN" 'https://api.enterprise.apigee.com/v1/organizations/...'
หรือคุณจะรวมคำขอโทเค็นและการเรียก curl เข้าด้วยกันโดยใช้ยูทิลิตี acurl ก็ได้
เช่น
USER=me@example.comPASS=not-that-secretacurl -u $USER:$PASS -m '' 'https://api.enterprise.apigee.com/v1/organizations/...'
ในทั้ง 2 ตัวอย่าง การตั้งค่า -m เป็นสตริงว่างจะป้องกันไม่ให้ผู้ใช้ที่เป็นเครื่อง
ถูกแจ้งให้ป้อนรหัส MFA