คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่เอกสารประกอบของ Apigee X ข้อมูล
สิ่งที่คุณจะได้เรียนรู้
- ดาวน์โหลดและทำให้พร็อกซี API ตัวอย่างใช้งานได้
- สร้างพร็อกซี API ที่ป้องกันด้วย OAuth
- สร้างผลิตภัณฑ์ นักพัฒนาซอฟต์แวร์ และแอป
- ข้อมูลเข้าสู่ระบบของ Exchange สำหรับโทเค็นเพื่อการเข้าถึง OAuth
- เรียกใช้ API ด้วยโทเค็นเพื่อการเข้าถึง
บทแนะนำนี้จะแสดงวิธีรักษาความปลอดภัยของ API ด้วย OAuth 2.0
OAuth เป็นโปรโตคอลการให้สิทธิ์ที่อนุญาตให้แอปเข้าถึงข้อมูลในนามของผู้ใช้ได้โดยไม่จำเป็นต้องให้ผู้ใช้เปิดเผยชื่อผู้ใช้และรหัสผ่าน
เมื่อใช้ OAuth ข้อมูลเข้าสู่ระบบความปลอดภัย (เช่น ชื่อผู้ใช้/รหัสผ่าน หรือคีย์/ข้อมูลลับ) จะแลกเปลี่ยนเป็นโทเค็นเพื่อการเข้าถึง เช่น
joe:joes_password
(username:password) หรือ
Nf2moHOASMJeUmXVdDhlMbPaXm2U7eMc:unUOXYpPe74ZfLEb
(key:secret)
ได้กลายเป็น
b0uiYwjRZLEo4lEu7ky2GGxHkanN
โทเค็นเพื่อการเข้าถึงเป็นสตริงอักขระแบบสุ่มและมีอายุใช้งานชั่วคราว (ควรหมดอายุหลังจากผ่านไปไม่นาน) ดังนั้นการส่งต่อโทเค็นเพื่อตรวจสอบสิทธิ์ผู้ใช้ในเวิร์กโฟลว์ของแอปจึงปลอดภัยกว่าการส่งต่อข้อมูลเข้าสู่ระบบจริงมาก
ข้อกำหนดของ OAuth 2.0 กำหนดกลไกต่างๆ ที่เรียกว่า "ประเภทการให้สิทธิ์" สำหรับการกระจายโทเค็นเพื่อการเข้าถึงสำหรับแอป ประเภทการให้สิทธิ์ขั้นพื้นฐานที่สุดที่กำหนดโดย OAuth 2.0 เรียกว่า "ข้อมูลเข้าสู่ระบบไคลเอ็นต์" ในการให้สิทธิ์ประเภทนี้ ระบบจะสร้างโทเค็นเพื่อการเข้าถึง OAuth เพื่อแลกเปลี่ยนกับข้อมูลเข้าสู่ระบบของไคลเอ็นต์ ซึ่งเป็นคู่คีย์ของผู้ใช้/ข้อมูลลับของผู้ใช้ ดังตัวอย่างข้างต้น
ประเภทการให้สิทธิ์ข้อมูลเข้าสู่ระบบไคลเอ็นต์ใน Edge มีการใช้งานโดยใช้นโยบายในพร็อกซี API ขั้นตอน OAuth โดยทั่วไปจะมี 2 ขั้นตอนดังนี้
- เรียกใช้พร็อกซี API 1 เพื่อสร้างโทเค็นเพื่อการเข้าถึง OAuth จากข้อมูลเข้าสู่ระบบของไคลเอ็นต์ นโยบาย OAuth เวอร์ชัน 2.0 ในพร็อกซี API จะจัดการเรื่องนี้
- เรียกพร็อกซี API 2 เพื่อส่งโทเค็นเพื่อการเข้าถึง OAuth ในการเรียก API พร็อกซี API จะยืนยันโทเค็นเพื่อการเข้าถึงโดยใช้นโยบาย OAuth v2.0
สิ่งที่ต้องมี
- บัญชี Apigee Edge หากยังไม่มี คุณลงชื่อสมัครใช้ได้โดยใช้คำแนะนำที่การสร้างบัญชี Apigee Edge
- cURL ที่ติดตั้งในเครื่องเพื่อเรียก API จากบรรทัดคำสั่ง
ดาวน์โหลดและทำให้พร็อกซี API ที่สร้างโทเค็นใช้งานได้
ในขั้นตอนนี้ คุณจะได้สร้างพร็อกซี API ที่สร้างโทเค็นเพื่อการเข้าถึง OAuth จากรหัสผู้ใช้และข้อมูลลับของผู้ใช้ที่ส่งในการเรียก API Apigee มีพร็อกซี API ตัวอย่างที่ช่วยให้ดำเนินการดังกล่าวได้ คุณจะต้องดาวน์โหลดและทำให้พร็อกซีใช้งานได้ตอนนี้ แล้วนำไปใช้ภายหลังในบทแนะนำ (คุณสามารถสร้างพร็อกซี API นี้ได้ง่ายๆ ด้วยตนเอง ขั้นตอนการดาวน์โหลดและทำให้ใช้งานได้นี้มีไว้เพื่อความสะดวกและเพื่อแสดงให้คุณเห็นว่าการแชร์พร็อกซีที่สร้างไว้แล้วนั้นทำได้ง่ายเพียงใด)
- ดาวน์โหลดไฟล์ ZIP ตัวอย่าง API ของ "oauth" ไปยังไดเรกทอรีใดก็ได้ในระบบไฟล์
- ไปที่ https://apigee.com/edge และลงชื่อเข้าใช้
- เลือกพัฒนา > พร็อกซี API ในแถบนำทางด้านซ้าย
- คลิก + พร็อกซี
- ในวิซาร์ดสร้างพร็อกซี ให้คลิกอัปโหลดกลุ่มพร็อกซี
- เลือกไฟล์
oauth.zip
ที่คุณดาวน์โหลดไว้ แล้วคลิกถัดไป - คลิกสร้าง
- หลังจากบิลด์เสร็จสมบูรณ์ ให้คลิกแก้ไขพร็อกซีเพื่อดูพร็อกซีใหม่ในตัวแก้ไขพร็อกซี API
- ในหน้าภาพรวมของตัวแก้ไขพร็อกซี API ให้คลิกเมนูแบบเลื่อนลงการทำให้ใช้งานได้ แล้วเลือกทดสอบ นี่คือสภาพแวดล้อมการทดสอบในองค์กรของคุณ
ที่ข้อความแจ้งให้ยืนยัน ให้คลิกติดตั้งใช้งาน
เมื่อคลิกเมนูแบบเลื่อนลง "การทำให้ใช้งานได้" อีกครั้ง ไอคอนสีเขียวจะระบุว่าระบบทำให้พร็อกซีใช้งานได้กับสภาพแวดล้อมการทดสอบแล้ว
เยี่ยมไปเลย คุณดาวน์โหลดและทำให้พร็อกซี API สร้างโทเค็นเพื่อการเข้าถึงใช้งานได้ในองค์กร Edge เรียบร้อยแล้ว
ดูขั้นตอนและนโยบาย OAuth
มาดูรายละเอียดว่าพร็อกซี API ประกอบด้วยอะไรบ้าง
- คลิกแท็บพัฒนาในเครื่องมือแก้ไขพร็อกซี API คุณจะเห็น 2 นโยบายในแผง Navigator ด้านซ้าย นอกจากนี้คุณจะเห็นขั้นตอน
POST
2 ขั้นตอนในส่วนProxy Endpoints
ด้วย -
คลิก AccessTokenClientCredential ภายใต้
Proxy Endpoints
ในมุมมองโค้ด XML คุณจะเห็น
Flow
ชื่อAccessTokenClientCredential
:<Flow name="AccessTokenClientCredential"> <Description/> <Request> <Step> <Name>GenerateAccessTokenClient</Name> </Step> </Request> <Response/> <Condition>(proxy.pathsuffix MatchesPath "/accesstoken") and (request.verb = "POST")</Condition> </Flow>
โฟลว์คือขั้นตอนการประมวลผลในพร็อกซี API ในกรณีนี้ ระบบจะทริกเกอร์โฟลว์เมื่อเป็นไปตามเงื่อนไขบางอย่าง (เรียกว่าขั้นตอนตามเงื่อนไข) เงื่อนไขที่กำหนดไว้ในองค์ประกอบ
<Condition>
ระบุว่าหากมีการเรียกพร็อกซี API ไปยังทรัพยากร/accesstoken
และกริยาคำขอคือPOST
ให้เรียกใช้นโยบายGenerateAccessTokenClient
ซึ่งจะสร้างโทเค็นเพื่อการเข้าถึง -
คราวนี้มาดูที่นโยบายซึ่งโฟลว์แบบมีเงื่อนไขจะเรียกให้แสดง คลิกไอคอนนโยบาย GenerateAccessTokenClient ในแผนภาพโฟลว์
ระบบจะโหลดการกำหนดค่า XML ต่อไปนี้ลงในมุมมองโค้ด<OAuthV2 name="GenerateAccessTokenClient"> <!-- This policy generates an OAuth 2.0 access token using the client_credentials grant type --> <Operation>GenerateAccessToken</Operation> <!-- This is in millseconds, so expire in an hour --> <ExpiresIn>3600000</ExpiresIn> <SupportedGrantTypes> <!-- This part is very important: most real OAuth 2.0 apps will want to use other grant types. In this case it is important to NOT include the "client_credentials" type because it allows a client to get access to a token with no user authentication --> <GrantType>client_credentials</GrantType> </SupportedGrantTypes> <GrantType>request.queryparam.grant_type</GrantType> <GenerateResponse/> </OAuthV2>
การกำหนดค่าประกอบด้วยรายการต่อไปนี้
<Operation>
ซึ่งอาจเป็นค่าใดค่าหนึ่งที่กำหนดไว้ล่วงหน้า เป็นตัวกำหนดว่านโยบายจะทำอะไร ในกรณีนี้ จะมีการสร้างโทเค็นเพื่อการเข้าถึง- โทเค็นนี้จะหมดอายุใน 1 ชั่วโมง (360,000 มิลลิวินาที) หลังจากที่สร้างขึ้น
- ใน
<SupportedGrantTypes>
OAuth<GrantType>
ที่คาดว่าจะใช้คือclient_credentials
(การแลกเปลี่ยนคีย์และข้อมูลลับของผู้ใช้สำหรับโทเค็น OAuth) - องค์ประกอบ
<GrantType>
ที่ 2 บอกนโยบายว่าจะดูที่ใดในการเรียก API สำหรับพารามิเตอร์ประเภทการให้สิทธิ์ ตามที่ข้อกำหนด OAuth 2.0 กำหนด (คุณจะเห็นสิ่งนี้ในการเรียก API ในภายหลัง) ส่งประเภทการให้สิทธิ์ในส่วนหัว HTTP (request.header.grant_type
) หรือส่งเป็นพารามิเตอร์ของแบบฟอร์ม (request.formparam.grant_type
) ได้ด้วย
คุณไม่จำเป็นต้องดำเนินการใดๆ กับพร็อกซี API ในขณะนี้ ในขั้นตอนถัดไป คุณจะใช้พร็อกซี API นี้เพื่อสร้างโทเค็นเพื่อการเข้าถึง OAuth แต่ก่อนอื่นคุณต้องทำบางสิ่งเพิ่มเติม
- สร้างพร็อกซี API ที่คุณต้องการรักษาความปลอดภัยด้วย OAuth
- สร้างอาร์ติแฟกต์อีก 2-3 รายการซึ่งจะส่งผลให้มีคีย์ผู้ใช้และข้อมูลลับของผู้ใช้ที่คุณต้องแลกเปลี่ยนกับโทเค็นเพื่อการเข้าถึง
สร้างพร็อกซี API ที่ป้องกันด้วย OAuth
คุณกำลังจะสร้างพร็อกซี API ที่ต้องการปกป้อง นี่คือการเรียก API ที่ส่งคืนสิ่งที่คุณต้องการ ในกรณีนี้ พร็อกซี API จะเรียกบริการ mocktarget ของ Apigee เพื่อแสดงผลที่อยู่ IP ของคุณ แต่คุณจะเห็นรายการนี้ได้ต่อเมื่อคุณส่งโทเค็นเพื่อการเข้าถึง OAuth ที่ถูกต้องพร้อมกับการเรียก API
พร็อกซี API ที่คุณสร้างที่นี่จะมีนโยบายที่ตรวจสอบโทเค็น OAuth ในคำขอ
- เลือกพัฒนา > พร็อกซี API ในแถบนำทางด้านซ้าย
- คลิก + พร็อกซี
- ในวิซาร์ด Build a Proxy ให้เลือก Reverseที่ให้ไว้ (ส่วนใหญ่) แล้วคลิก Next
- กำหนดค่าพร็อกซีด้วยข้อมูลต่อไปนี้
ในช่องนี้ สิ่งที่ต้องทำ ชื่อพร็อกซี ป้อน: helloworld_oauth2
เส้นทางฐานโปรเจ็กต์ เปลี่ยนเป็น:
/hellooauth2
เส้นทางหลักของโปรเจ็กต์เป็นส่วนหนึ่งของ URL ที่ใช้ในการส่งคำขอไปยังพร็อกซี API
API ที่มีอยู่ ป้อน:
https://mocktarget.apigee.net/ip
แอตทริบิวต์นี้กำหนด URL เป้าหมายที่ Apigee Edge เรียกใช้ในคำขอที่ส่งไปยังพร็อกซี API
คำอธิบาย ป้อน: hello world protected by OAuth
- คลิกถัดไป
- ในหน้านโยบายทั่วไป ให้ทำดังนี้
ในช่องนี้ สิ่งที่ต้องทำ ความปลอดภัย: การให้สิทธิ์ เลือก OAuth 2.0 - คลิกถัดไป
- ในหน้า Virtual Hosts ให้คลิก Next
- ในหน้า Build ให้ตรวจสอบว่าได้เลือกสภาพแวดล้อม test แล้ว จากนั้นคลิก Create and Deploy
- ในหน้าสรุป คุณจะเห็นการรับทราบว่าสร้างพร็อกซี API ใหม่เรียบร้อยแล้ว และทำให้พร็อกซี API ใช้งานได้กับสภาพแวดล้อมการทดสอบ
- คลิกแก้ไขพร็อกซีเพื่อแสดงหน้าภาพรวมสำหรับพร็อกซี API
โปรดทราบว่าในตอนนี้ระบบจะทำให้พร็อกซี API ใช้งานได้โดยอัตโนมัติ คลิกเมนูแบบเลื่อนลง "การทำให้ใช้งานได้" เพื่อให้แน่ใจว่ามีจุดการทำให้ใช้งานได้สีเขียวข้างสภาพแวดล้อม "ทดสอบ"
ดูนโยบาย
มาดูรายละเอียดเกี่ยวกับสิ่งที่คุณสร้างกัน
- คลิกแท็บพัฒนาในเครื่องมือแก้ไขพร็อกซี API คุณจะเห็นว่ามีการเพิ่มนโยบาย 2 รายการลงในโฟลว์คำขอของพร็อกซี API ดังนี้
- ยืนยันโทเค็นเพื่อการเข้าถึง OAuth v2.0 – ตรวจสอบการเรียก API เพื่อให้แน่ใจว่ามีโทเค็น OAuth ที่ถูกต้อง
- นำการให้สิทธิ์ส่วนหัวออก - นโยบาย AssignMessage ที่นำโทเค็นเพื่อการเข้าถึงออกหลังจากเลือกไว้ เพื่อไม่ให้มีการส่งโทเค็นนั้นไปยังบริการเป้าหมาย (หากบริการเป้าหมายจำเป็นต้องใช้โทเค็นเพื่อการเข้าถึง OAuth คุณก็ไม่ต้องใช้นโยบายนี้)
-
คลิกไอคอนยืนยันโทเค็นการเข้าถึง OAuth v2.0 ในมุมมองโฟลว์และดู XML ด้านล่างในแผงโค้ด
<OAuthV2 async="false" continueOnError="false" enabled="true" name="verify-oauth-v2-access-token"> <DisplayName>Verify OAuth v2.0 Access Token</DisplayName> <Operation>VerifyAccessToken</Operation> </OAuthV2>
โปรดสังเกตว่า
<Operation>
มีค่าเป็นVerifyAccessToken
การดำเนินการจะกำหนดสิ่งที่นโยบายควรทำ โดยในกรณีนี้เป็นการตรวจสอบโทเค็น OAuth ที่ถูกต้องในคำขอ
เพิ่มผลิตภัณฑ์ API
วิธีเพิ่มผลิตภัณฑ์ API โดยใช้ Apigee UI
- เลือกเผยแพร่ > ผลิตภัณฑ์ API
- คลิก +ผลิตภัณฑ์ API
- ป้อนรายละเอียดผลิตภัณฑ์สำหรับผลิตภัณฑ์ API ของคุณ
ฟิลด์ คำอธิบาย ชื่อ ชื่อภายในของผลิตภัณฑ์ API อย่าใส่สัญลักษณ์พิเศษในชื่อ
หมายเหตุ: คุณจะแก้ไขชื่อไม่ได้เมื่อสร้างผลิตภัณฑ์ API แล้ว เช่นhelloworld_oauth2-Product
ชื่อที่แสดง ชื่อที่แสดงสำหรับผลิตภัณฑ์ API ระบบจะใช้ชื่อที่แสดงใน UI ซึ่งคุณแก้ไขได้ทุกเมื่อ หากไม่ได้ระบุไว้ ระบบจะใช้ค่า "ชื่อ" ระบบจะเติมข้อมูลในช่องนี้โดยอัตโนมัติโดยใช้ค่า "ชื่อ" ซึ่งคุณจะแก้ไขหรือลบเนื้อหาได้ ชื่อที่แสดงมีสัญลักษณ์พิเศษได้ เช่น helloworld_oauth2-Product
คำอธิบาย คำอธิบายของผลิตภัณฑ์ API สภาพแวดล้อม สภาพแวดล้อมที่ผลิตภัณฑ์ API จะอนุญาตการเข้าถึง เลือกสภาพแวดล้อมที่คุณทำให้พร็อกซี API ใช้งานได้ เช่น test
การเข้าถึง เลือกสาธารณะ อนุมัติคำขอสิทธิ์เข้าถึงโดยอัตโนมัติ เปิดใช้การอนุมัติอัตโนมัติสำหรับคำขอคีย์สำหรับผลิตภัณฑ์ API นี้จากแอปใดก็ได้ โควต้า ไม่สนใจสำหรับบทแนะนำนี้ ขอบเขต OAuth ที่อนุญาต ไม่สนใจสำหรับบทแนะนำนี้ - ในช่องพร็อกซี API ให้เลือกพร็อกซี API ที่เพิ่งสร้าง
- ในช่องเส้นทาง ให้ป้อน "/" ไม่ต้องสนใจช่องอื่นๆ
- คลิกบันทึก
เพิ่มนักพัฒนาแอปและแอปไปยังองค์กร
ต่อไป คุณจะต้องจำลองเวิร์กโฟลว์ของนักพัฒนาซอฟต์แวร์ที่ลงชื่อสมัครใช้เพื่อใช้ API ของคุณ โดยหลักการแล้ว นักพัฒนาแอปจะต้องลงทะเบียนตัวเองและแอปผ่านพอร์ทัลนักพัฒนาแอป แต่ในขั้นตอนนี้ คุณจะต้องเพิ่มนักพัฒนาแอปและแอปในฐานะผู้ดูแลระบบ
นักพัฒนาซอฟต์แวร์จะมีแอปอย่างน้อย 1 แอปที่เรียกใช้ API ของคุณ และแต่ละแอปจะได้รับ รหัสผู้ใช้และข้อมูลลับของผู้ใช้ที่ไม่ซ้ำกัน คีย์/ข้อมูลลับต่อแอปนี้ยังมอบการควบคุมสิทธิ์เข้าถึง API แบบละเอียดยิ่งขึ้นให้คุณ และการรายงานข้อมูลวิเคราะห์เกี่ยวกับการรับส่งข้อมูล API ที่ละเอียดยิ่งขึ้นด้วย เนื่องจาก Edge รู้ว่านักพัฒนาแอปและแอปรายใดเป็นของโทเค็น OAuth รายการใด
สร้างนักพัฒนาซอฟต์แวร์
มาสร้างนักพัฒนาซอฟต์แวร์ชื่อ Nigel Tufnel กัน
- เลือกเผยแพร่ > นักพัฒนาซอฟต์แวร์ในเมนู
- คลิก + นักพัฒนาซอฟต์แวร์
- ป้อนข้อมูลต่อไปนี้ในหน้าต่างนักพัฒนาซอฟต์แวร์ใหม่
ในช่องนี้ Enter ชื่อ Nigel
นามสกุล Tufnel
ชื่อผู้ใช้ nigel
อีเมล nigel@example.com
- คลิกสร้าง
ลงทะเบียนแอป
มาสร้างแอปให้ไนเจลกัน
- เลือกเผยแพร่ > แอป
- คลิก + แอป
- ป้อนข้อมูลต่อไปนี้ในหน้าต่าง New App
ในช่องนี้ สิ่งที่ต้องทำ ชื่อและชื่อที่แสดง ป้อน: nigel_app
นักพัฒนาซอฟต์แวร์ คลิกนักพัฒนาซอฟต์แวร์ แล้วเลือก Nigel Tufnel (nigel@example.com)
URL เรียกกลับและหมายเหตุ เว้นว่างไว้ - ใต้ผลิตภัณฑ์ ให้คลิกเพิ่มผลิตภัณฑ์
- เลือก helloworld_oauth2-Product
- คลิกสร้าง
รับคีย์ผู้ใช้และข้อมูลลับของผู้ใช้
ตอนนี้คุณจะได้รับรหัสผู้ใช้และข้อมูลลับของผู้ใช้ที่จะแลกเปลี่ยนกับโทเค็นการเข้าถึง OAuth
- ตรวจสอบว่าหน้า nigel_app ปรากฏอยู่ หากไม่เห็น ให้คลิก nigel_app ในหน้าแอป (เผยแพร่ > แอป)
-
ในหน้า nigel_app ให้คลิก Show ในคอลัมน์ Key และ Secret โปรดสังเกตว่าคีย์/ข้อมูลลับนั้นเชื่อมโยงกับ "helloworld_oauth2-Product" ที่สร้างขึ้นโดยอัตโนมัติก่อนหน้านี้
- เลือกและคัดลอกคีย์และข้อมูลลับ วางลงในไฟล์ข้อความชั่วคราว คุณจะใช้รหัสผ่านในขั้นตอนต่อไปได้ ซึ่งคุณจะเรียกใช้พร็อกซี API ที่จะแลกเปลี่ยนข้อมูลเข้าสู่ระบบเหล่านี้กับโทเค็นเพื่อการเข้าถึง OAuth
ลองเรียกใช้ API เพื่อรับที่อยู่ IP (ไม่สำเร็จ!)
เพื่อเป็นการเริ่มต้น ให้ลองเรียกใช้พร็อกซี API ที่มีการป้องกันซึ่งควรส่งคืนที่อยู่ IP ของคุณ เรียกใช้คำสั่ง cURL ต่อไปนี้ในหน้าต่างเทอร์มินัล แทนชื่อองค์กร Edge คำว่า test
ใน URL คือสภาพแวดล้อมการทดสอบขององค์กร ซึ่งเป็นสภาพแวดล้อมที่คุณทำให้พร็อกซีใช้งานได้ เส้นทางฐานของพร็อกซีคือ /hellooauth2
ซึ่งเป็นเส้นทางฐานเดียวกันกับที่คุณระบุเมื่อสร้างพร็อกซี
โปรดทราบว่าคุณไม่ได้ผ่านโทเค็นเพื่อการเข้าถึง OAuth ในการโทร
curl https://ORG_NAME-test.apigee.net/hellooauth2
เนื่องจากพร็อกซี API มีนโยบายยืนยันโทเค็นเพื่อการเข้าถึง OAuth v2.0 เพื่อตรวจสอบโทเค็น OAuth ที่ถูกต้องในคำขอ การเรียกควรล้มเหลวโดยมีข้อความต่อไปนี้
{"fault":{"faultstring":"Invalid access token","detail":{"errorcode":"oauth.v2.InvalidAccessToken"}}}
ในกรณีนี้ ความล้มเหลวก็เป็นสิ่งที่ดี! ซึ่งหมายความว่าพร็อกซี API ของคุณมีความปลอดภัยมากขึ้น เฉพาะแอปที่เชื่อถือได้ซึ่งมีโทเค็นเพื่อการเข้าถึง OAuth ที่ถูกต้องเท่านั้นที่จะเรียกใช้ API นี้ได้
รับโทเค็นเพื่อการเข้าถึง OAuth
และตอนนี้เราได้มาถึงผลตอบแทนที่ยิ่งใหญ่ คุณกำลังจะใช้คีย์และข้อมูลลับที่คัดลอกและวางลงในไฟล์ข้อความและแลกเปลี่ยนกับโทเค็นเพื่อการเข้าถึง OAuth คุณจะทำการเรียก API ไปยังพร็อกซีตัวอย่าง API ที่คุณนำเข้า oauth ซึ่งจะสร้างโทเค็นเพื่อการเข้าถึง API
ใช้คีย์และข้อมูลลับนั้น เรียก cURL ต่อไปนี้ (โปรดทราบว่าโปรโตคอลคือ https
) แทนที่ชื่อองค์กร Edge, คีย์ และข้อมูลลับของคุณตามที่ระบุ
curl -X POST -H "Content-Type: application/x-www-form-urlencoded" \ "https://ORG_NAME-test.apigee.net/oauth/client_credential/accesstoken?grant_type=client_credentials" \ -d "client_id=CLIENT_KEY&client_secret=CLIENT_SECRET"
โปรดทราบว่าหากคุณใช้ไคลเอ็นต์ เช่น Postman ในการโทร client_id
และ client_secret
จะอยู่ในเนื้อหาของคำขอ และต้องเป็น x-www-form-urlencoded
คุณควรได้รับการตอบกลับดังนี้
{ "issued_at" : "1466025769306", "application_name" : "716bbe61-f14a-4d85-9b56-a62ff8e0d347", "scope" : "", "status" : "approved", "api_product_list" : "[helloworld_oauth2-Product]", "expires_in" : "3599", //--in seconds "developer.email" : "nigel@example.com", "token_type" : "BearerToken", "client_id" : "xNnREu1DNGfiwzQZ5HUN8IAUwZSW1GZW", "access_token" : "GTPY9VUHCqKVMRB0cHxnmAp0RXc0", "organization_name" : "myOrg", "refresh_token_expires_in" : "0", //--in seconds "refresh_count" : "0" }
คุณได้รับโทเค็นเพื่อการเข้าถึง OAuth แล้ว คัดลอกค่า access_token (ไม่มีเครื่องหมายคำพูด) แล้ววางค่าลงในไฟล์ข้อความ อีกสักครู่คุณจะใช้
เกิดอะไรขึ้น
จำได้ไหมว่าก่อนหน้านี้เมื่อคุณดูโฟลว์เงื่อนไขดังกล่าวในพร็อกซี oauth รายการที่บอกว่า URI ทรัพยากรคือ /accesstoken
และคำกริยาคำขอคือ POST
เพื่อเรียกใช้นโยบาย OAuth ของ GenerateAccessTokenClient
ที่สร้างโทเค็นการเข้าถึง คำสั่ง cURL เป็นไปตามเงื่อนไขเหล่านั้น ระบบจึงดำเนินการนโยบาย OAuth ซึ่งได้ยืนยันรหัสผู้ใช้และข้อมูลลับของผู้ใช้และแลกเปลี่ยนกับโทเค็น OAuth ที่จะหมดอายุภายใน 1 ชั่วโมง
เรียกใช้ API ด้วยโทเค็นเพื่อการเข้าถึง (สำเร็จ!)
เมื่อคุณมีโทเค็นเพื่อการเข้าถึงแล้ว คุณสามารถใช้โทเค็นดังกล่าวเพื่อเรียกใช้พร็อกซี API ได้ เรียก cURL ต่อไปนี้ แทนที่ชื่อองค์กร Edge และโทเค็นเพื่อการเข้าถึง
curl https://ORG_NAME-test.apigee.net/hellooauth2 -H "Authorization: Bearer TOKEN"
คุณควรได้รับการเรียกไปยังพร็อกซี API ที่แสดงที่อยู่ IP ของคุณได้สำเร็จ เช่น
{"ip":"::ffff:192.168.14.136"}
คุณสามารถเรียก API นั้นซ้ำได้อีกเกือบ 1 ชั่วโมง หลังจากนั้นโทเค็นเพื่อการเข้าถึงจะหมดอายุ หากต้องการโทรออกหลังจากผ่านไป 1 ชั่วโมง คุณจะต้องสร้างโทเค็นเพื่อการเข้าถึงใหม่โดยใช้ขั้นตอนก่อนหน้า
ยินดีด้วย คุณได้สร้างพร็อกซี API และปกป้องพร็อกซีโดยกำหนดให้ต้องมีโทเค็นเพื่อการเข้าถึง OAuth ที่ถูกต้องในการโทร
หัวข้อที่เกี่ยวข้อง
- หน้าแรกของ OAuth
- นโยบาย OAuthV2
- ดาวน์โหลดพร็อกซี API (ซึ่งแสดงวิธีรวมพร็อกซี API เข้ากับไฟล์ ZIP อย่างเช่นที่คุณดาวน์โหลดไว้)