คุณกำลังดูเอกสารประกอบ 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ยูทิลิตี: ให้ Wrapper ของฟังก์ชันมาตรฐาน
คำสั่ง
curl
สร้างคำขอ HTTP ไปยัง Edge API จะได้รับสิทธิ์เข้าถึงและรีเฟรชโทเค็นจากget_token
และส่งผ่านโทเค็นเพื่อการเข้าถึงไปยัง Edge API - ปลายทางโทเค็นในบริการ Edge OAuth2: Exchange your ข้อมูลเข้าสู่ระบบ 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 ด้วย ที่รับรายการนโยบายภายใน "helloworld" พร็อกซี API คำขอที่ 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