คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่เอกสารประกอบของ Apigee X ข้อมูล
Apigee Edge ช่วยให้คุณเรียก Edge API ที่มีการตรวจสอบสิทธิ์ด้วยโทเค็น OAuth2 ได้ การรองรับ OAuth2 จะเปิดใช้โดยค่าเริ่มต้นใน Edge สำหรับบัญชีระบบคลาวด์ หากใช้ 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 เป็นครั้งแรก
ตามที่รูปที่ 1 แสดงให้เห็น เมื่อคุณส่งคำขอเริ่มต้นไปยัง Edge API จะมีลักษณะดังนี้
- คุณขอโทเค็นเพื่อการเข้าถึง ซึ่งทำได้โดยใช้ Edge API, acurl หรือ
get_token
ตัวอย่างเช่นget_token Enter username:
ahamilton@apigee.com
Enter 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 Ulility: มี Wrapper ความสะดวกสบายตามคำสั่ง
curl
มาตรฐาน สร้างคำขอ HTTP ไปยัง Edge API, รับการเข้าถึงและรีเฟรชโทเค็นจากget_token
รวมถึงส่งโทเค็นเพื่อการเข้าถึงไปยัง Edge API - ปลายทางของโทเค็นในบริการ Edge OAuth2: แลกเปลี่ยนข้อมูลเข้าสู่ระบบ Apigee ของโทเค็นเพื่อการเข้าถึงและรีเฟรชผ่านการเรียก Edge API
ยูทิลิตีเหล่านี้จะแลกเปลี่ยนข้อมูลเข้าสู่ระบบของบัญชี Apigee (อีเมลและรหัสผ่าน) ของคุณกับโทเค็นต่างๆ ที่มีระยะเวลาดังต่อไปนี้
- โทเค็นเพื่อการเข้าถึงจะหมดอายุใน 12 ชั่วโมง
- โทเค็นการรีเฟรชจะหมดอายุใน 30 วัน
ดังนั้น เมื่อเรียก API ด้วย acurl
หรือ get_token
สำเร็จแล้ว คุณจะใช้คู่โทเค็นต่อไปได้อีก 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" แบบย่อสำหรับ "องค์กร" ใน 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.com
PASS=not-that-secret
TOKEN=$(get_token -u $USER:$PASS -m '')
curl -H "Authorization: Bearer $TOKEN" 'https://api.enterprise.apigee.com/v1/organizations/...'
หรือจะรวมคำขอโทเค็นและการเรียกใช้ curl
โดยใช้ยูทิลิตี acurl
ก็ได้
เช่น
USER=me@example.com
PASS=not-that-secret
acurl -u $USER:$PASS -m '' 'https://api.enterprise.apigee.com/v1/organizations/...'
ในทั้ง 2 ตัวอย่างนี้ การตั้งค่า -m
เป็นสตริงว่างเปล่าจะป้องกันไม่ให้ผู้ใช้เครื่องได้รับแจ้งให้ใส่รหัส MFA