รักษาความปลอดภัย API ด้วย OAuth

คุณกำลังดูเอกสารประกอบ Apigee Edge
ไปที่ เอกสารประกอบเกี่ยวกับ Apigee X.
ข้อมูล

สิ่งที่คุณจะได้เรียนรู้

  • ดาวน์โหลดและทำให้พร็อกซี API ตัวอย่างใช้งานได้
  • สร้างพร็อกซี API ที่ป้องกันด้วย OAuth
  • สร้างผลิตภัณฑ์ นักพัฒนาแอป และแอป
  • ข้อมูลเข้าสู่ระบบของ Exchange สำหรับโทเค็นเพื่อการเข้าถึง OAuth
  • เรียก API ด้วยโทเค็นเพื่อการเข้าถึง

บทแนะนำนี้จะแสดงวิธีรักษาความปลอดภัยของ API ด้วย OAuth 2.0

OAuth เป็นโปรโตคอลการให้สิทธิ์ที่อนุญาตให้แอปเข้าถึงข้อมูลในนามของ ผู้ใช้ได้โดยที่ผู้ใช้ไม่ต้องเปิดเผยชื่อผู้ใช้และรหัสผ่าน

เมื่อใช้ OAuth ระบบจะแลกเปลี่ยนข้อมูลเข้าสู่ระบบด้านความปลอดภัย (เช่น ชื่อผู้ใช้/รหัสผ่านหรือคีย์/ข้อมูลลับ) สำหรับโทเค็นเพื่อการเข้าถึง เช่น

joe:joes_password (username:password) หรือ
Nf2moHOASMJeUmXVdDhlMbPaXm2U7eMc:unUOXYpPe74ZfLEb (คีย์:ลับ)

จะกลายเป็น

b0uiYwjRZLEo4lEu7ky2GGxHkanN

โทเค็นเพื่อการเข้าถึงเป็นสตริงอักขระที่สุ่มขึ้นและเป็นแบบชั่วคราว (โทเค็นควรหมดอายุหลังจาก ค่อนข้างสั้น) ดังนั้นการส่งต่อเพื่อตรวจสอบสิทธิ์ผู้ใช้ในเวิร์กโฟลว์ของแอปจึง มีความปลอดภัยมากกว่าการส่งต่อข้อมูลเข้าสู่ระบบจริง

OAuth 2.0 ข้อกำหนดเฉพาะ จะกำหนดกลไกที่แตกต่างกัน ซึ่งเรียกว่า "ประเภทการให้สิทธิ์" สำหรับการแจกจ่ายการเข้าถึง โทเค็นสำหรับแอป ประเภทการให้สิทธิ์ขั้นพื้นฐานที่สุดที่กำหนดโดย OAuth 2.0 เรียกว่า "ไคลเอ็นต์ ข้อมูลเข้าสู่ระบบ" ในการให้สิทธิ์ประเภทนี้ ระบบจะสร้างโทเค็นเพื่อการเข้าถึง OAuth เพื่อแลกเปลี่ยนกับไคลเอ็นต์ ข้อมูลเข้าสู่ระบบ ซึ่งก็คือคู่คีย์ของผู้ใช้/ข้อมูลลับของผู้ใช้ดังตัวอย่างด้านบน

ระบบนำประเภทการให้สิทธิ์ข้อมูลเข้าสู่ระบบไคลเอ็นต์ใน Edge ไปใช้ด้วยนโยบายในพร็อกซี API ต ขั้นตอนการใช้งาน OAuth โดยทั่วไปมี 2 ขั้นตอนดังนี้

  • เรียกใช้พร็อกซี API 1 เพื่อสร้างโทเค็นเพื่อการเข้าถึง OAuth จากไคลเอ็นต์ ข้อมูลเข้าสู่ระบบ ซึ่งนโยบาย OAuth v2.0 ในพร็อกซี API จะจัดการเรื่องนี้เอง
  • เรียกใช้พร็อกซี API 2 เพื่อส่งโทเค็นการเข้าถึง OAuth ในการเรียก API พร็อกซี API จะยืนยันโทเค็นเพื่อการเข้าถึงโดยใช้นโยบาย OAuth v2.0

สิ่งที่ต้องมี

  • บัญชี Apigee Edge หากยังไม่มี คุณสามารถลงชื่อสมัครใช้พร้อมคำแนะนำ ที่การสร้าง Apigee บัญชี Edge
  • cURL ที่ติดตั้งไว้ในเครื่องของคุณเพื่อ เรียก API จากบรรทัดคำสั่ง

ดาวน์โหลดและทำให้ API สร้างโทเค็นใช้งานได้ พร็อกซี

ในขั้นตอนนี้ คุณจะสร้างพร็อกซี API ที่สร้างโทเค็นเพื่อการเข้าถึง OAuth จาก รหัสผู้ใช้และข้อมูลลับของผู้ใช้ที่ส่งในการเรียก API Apigee ให้ตัวอย่างพร็อกซี API ที่ ทำเช่นนี้ได้ คุณจะดาวน์โหลดพร็อกซีและทำให้ใช้งานได้ในตอนนี้ จากนั้นใช้พร็อกซีภายหลังในบทแนะนำ (คุณ สามารถสร้างพร็อกซี API นี้ได้อย่างง่ายดายด้วยตนเอง ขั้นตอนการดาวน์โหลดและติดตั้งใช้งานนี้มีไว้เพื่ออำนวยความสะดวก และเพื่อแสดงให้เห็นว่าการแชร์พร็อกซีที่สร้างไว้แล้วนั้นทำได้ง่ายเพียงใด)

  1. ดาวน์โหลด "oauth" ตัวอย่างไฟล์ ZIP ของพร็อกซี API ไปยังไดเรกทอรีใดก็ได้ในไฟล์ ระบบ
  2. ไปที่ https://apigee.com/edge และลงชื่อเข้าใช้
  3. เลือก Develop > พร็อกซี API ในแถบนำทางด้านซ้าย
  4. คลิก + พร็อกซี
    ปุ่มสร้างพร็อกซี
  5. ในวิซาร์ดสร้างพร็อกซี ให้คลิกอัปโหลดแพ็กเกจพร็อกซี
  6. เลือกไฟล์ oauth.zip ที่คุณดาวน์โหลดไว้ แล้วคลิก ถัดไป
  7. คลิกสร้าง
  8. หลังจากบิลด์เสร็จสมบูรณ์ ให้คลิกแก้ไขพร็อกซีเพื่อดูพร็อกซีใหม่ ในตัวแก้ไขพร็อกซี API
  9. ในหน้าภาพรวมของเครื่องมือแก้ไขพร็อกซี API ให้คลิกเมนูแบบเลื่อนลงการทำให้ใช้งานได้ แล้วเลือกทดสอบ นี่คือสภาพแวดล้อมการทดสอบในองค์กรของคุณ

    เมื่อมีข้อความแจ้งการยืนยัน ให้คลิกติดตั้งใช้งาน
    เมื่อคุณคลิกเมนูแบบเลื่อนลง "การทำให้ใช้งานได้" อีกครั้ง ไอคอนสีเขียวแสดงว่าพร็อกซี ที่ใช้กับสภาพแวดล้อมการทดสอบแล้ว

เยี่ยมไปเลย คุณดาวน์โหลดและใช้งาน API การสร้างโทเค็นเพื่อการเข้าถึงเรียบร้อยแล้ว พร็อกซีให้กับองค์กร Edge

ดูขั้นตอนและนโยบาย OAuth

มาดูรายละเอียดเกี่ยวกับพร็อกซี API กัน

  1. ในตัวแก้ไขพร็อกซี API ให้คลิกแท็บพัฒนา ด้านซ้าย ตัวนำทาง คุณจะเห็นนโยบาย 2 รายการ คุณจะเห็น POST 2 ตัวด้วย ในส่วน Proxy Endpoints
  2. คลิก 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 ซึ่งจะสร้างสิทธิ์เข้าถึง โทเค็น

  3. ตอนนี้เรามาดูที่นโยบายที่ขั้นตอนแบบมีเงื่อนไขจะทริกเกอร์ คลิก ไอคอนนโยบาย 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

เกี่ยวกับ "mocktarget"

บริการ mocktarget โฮสต์ที่ Apigee และแสดงผลข้อมูลแบบง่าย ใน คุณสามารถเข้าถึงหน้าเว็บได้ในเว็บเบราว์เซอร์ ลองใช้โดยคลิกตัวเลือกต่อไปนี้

http://mocktarget.apigee.net/ip

เป้าหมายจะแสดงสิ่งที่คุณควรเห็นเมื่อคุณเรียกใช้พร็อกซี API นี้ในท้ายที่สุด

คุณยังสามารถกด http://mocktarget.apigee.net/help เพื่อดูทรัพยากร API อื่นๆ ที่ ที่มีอยู่ใน mocktarget

ตอนนี้คุณจะสร้างพร็อกซี API ที่ต้องการปกป้อง นี่คือการเรียก API ส่งคืนผลลัพธ์ที่คุณต้องการ ในกรณีนี้ พร็อกซี API จะเรียกใช้บริการจำลองของ Apigee เพื่อส่งคืนที่อยู่ IP ของคุณ แต่จะเห็นรหัสผ่านดังกล่าวก็ต่อเมื่อมีสิทธิ์เข้าถึง OAuth ที่ถูกต้องเท่านั้น ด้วยการเรียก API

พร็อกซี API ที่คุณสร้างที่นี่จะมีนโยบายที่ตรวจหาโทเค็น OAuth ใน อีกครั้ง

  1. เลือก Develop > พร็อกซี API ในแถบนำทางด้านซ้าย
  2. คลิก + พร็อกซี
    ปุ่มสร้างพร็อกซี
  3. ในวิซาร์ดสร้างพร็อกซี ให้เลือกย้อนกลับพร็อกซี (ใช้บ่อยที่สุด) และคลิกถัดไป
  4. กำหนดค่าพร็อกซีด้วยข้อมูลต่อไปนี้
    ในฟิลด์นี้ สิ่งที่ควรทำ
    ชื่อพร็อกซี ป้อน helloworld_oauth2
    เส้นทางฐานของโปรเจ็กต์

    เปลี่ยนเป็น: /hellooauth2

    เส้นทางฐานของโปรเจ็กต์เป็นส่วนหนึ่งของ URL ที่ใช้ในการส่งคำขอไปยัง API พร็อกซี

    API ที่มีอยู่

    ป้อน https://mocktarget.apigee.net/ip

    ซึ่งระบุ URL เป้าหมายที่ Apigee Edge เรียกใช้ในคำขอที่ส่งไปยัง API พร็อกซี

    คำอธิบาย ป้อน hello world protected by OAuth
  5. คลิกถัดไป
  6. ในหน้านโยบายทั่วไป ให้ทำดังนี้
    ในฟิลด์นี้ สิ่งที่ควรทำ
    การรักษาความปลอดภัย: การให้สิทธิ์ เลือก: OAuth 2.0
  7. คลิกถัดไป
  8. ในหน้าโฮสต์เสมือน ให้คลิกถัดไป
  9. ในหน้าสร้าง ให้ตรวจสอบว่าเลือกสภาพแวดล้อมการทดสอบแล้ว และ ให้คลิกสร้างและทำให้ใช้งานได้
  10. ในหน้าสรุป คุณจะเห็นการรับทราบว่าพร็อกซี API ใหม่ สร้างสำเร็จแล้ว และพร็อกซี API ใช้งานได้กับการทดสอบของคุณ ของคุณ
  11. คลิกแก้ไขพร็อกซีเพื่อแสดงหน้าภาพรวมสำหรับพร็อกซี API
    โปรดสังเกตว่าตอนนี้ระบบจะทำให้พร็อกซี API ใช้งานได้โดยอัตโนมัติ คลิกการทำให้ใช้งานได้ เพื่อดูว่ามีจุดการทำให้ใช้งานได้สีเขียวอยู่ข้าง "ทดสอบ" ของคุณ

ดูนโยบาย

มาดูรายละเอียดสิ่งที่คุณสร้างกัน

  1. ในตัวแก้ไขพร็อกซี API ให้คลิกแท็บพัฒนา คุณจะเห็น เพิ่มนโยบายลงในขั้นตอนคำขอของพร็อกซี API แล้ว:
    • ยืนยันโทเค็นเพื่อการเข้าถึง OAuth v2.0 – ตรวจสอบการเรียก API ตรวจสอบว่ามีโทเค็น OAuth ที่ถูกต้อง
    • Remove Header Authorization – นโยบาย AssignMessage ที่ นำโทเค็นเพื่อการเข้าถึงออกหลังจากที่ทำเครื่องหมายแล้ว เพื่อไม่ให้มีการส่งต่อไป บริการเป้าหมาย (หากบริการเป้าหมายต้องการโทเค็นเพื่อการเข้าถึง OAuth คุณจะไม่ใช้ นโยบายนี้)
  2. คลิกไอคอนยืนยันโทเค็นเพื่อการเข้าถึง 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

  1. เลือกเผยแพร่ > ผลิตภัณฑ์ API
  2. คลิก +ผลิตภัณฑ์ API
  3. ป้อนรายละเอียดผลิตภัณฑ์สำหรับผลิตภัณฑ์ API
    ช่อง รายละเอียด
    ชื่อ ชื่อภายในของผลิตภัณฑ์ API อย่าใส่สัญลักษณ์พิเศษในชื่อ
    หมายเหตุ: คุณจะแก้ไขชื่อไม่ได้เมื่อสร้างผลิตภัณฑ์ API แล้ว เช่น helloworld_oauth2-Product
    ชื่อที่แสดง ชื่อที่แสดงสำหรับผลิตภัณฑ์ API ชื่อที่แสดงจะใช้ใน UI และคุณแก้ไขได้ ได้ทุกเมื่อ หากไม่ได้ระบุไว้ ระบบจะใช้ค่า "ชื่อ" ระบบจะเติมข้อมูลในช่องนี้โดยอัตโนมัติ โดยใช้ค่า "ชื่อ" คุณจะแก้ไขหรือลบเนื้อหาก็ได้ ชื่อที่แสดงอาจมี สัญลักษณ์พิเศษ เช่น helloworld_oauth2-Product
    คำอธิบาย คำอธิบายผลิตภัณฑ์ API
    สภาพแวดล้อม สภาพแวดล้อมที่ผลิตภัณฑ์ API จะอนุญาตให้เข้าถึง เลือกสภาพแวดล้อม ที่คุณทำให้พร็อกซี API ใช้งานได้ เช่น test
    การเข้าถึง เลือกสาธารณะ
    อนุมัติคำขอสิทธิ์เข้าถึงโดยอัตโนมัติ เปิดใช้การอนุมัติคำขอคีย์สำหรับผลิตภัณฑ์ API นี้โดยอัตโนมัติจากแอปใดก็ได้
    โควต้า ละเว้นสำหรับบทแนะนำนี้
    ขอบเขต OAuth ที่อนุญาต ละเว้นสำหรับบทแนะนำนี้
  4. ในช่องพร็อกซี API ให้เลือกพร็อกซี API ที่คุณเพิ่งสร้าง
  5. ป้อน "/" ในช่องเส้นทาง ไม่ต้องสนใจช่องอื่นๆ
  6. คลิกบันทึก

เพิ่มนักพัฒนาแอปและแอปลงใน องค์กร

ต่อไป คุณจะจำลองเวิร์กโฟลว์ของนักพัฒนาซอฟต์แวร์ที่ลงชื่อสมัครใช้เพื่อใช้ API ของคุณ โดยหลักการแล้ว นักพัฒนาแอปจะลงทะเบียนตนเองและแอปผ่านพอร์ทัลนักพัฒนาแอปของคุณ ด้วยวิธีนี้ คุณจะต้องเพิ่มนักพัฒนาซอฟต์แวร์และแอปเป็นผู้ดูแลระบบ

นักพัฒนาซอฟต์แวร์จะมีแอปอย่างน้อย 1 แอปที่เรียกใช้ API ของคุณ และแต่ละแอปจะได้รับ รหัสผู้ใช้และข้อมูลลับของผู้ใช้ คีย์/ข้อมูลลับต่อแอปนี้ยังให้ผู้ให้บริการ API แก่คุณด้วย การควบคุมการเข้าถึง API แบบละเอียดยิ่งขึ้นและการรายงานการวิเคราะห์ใน API ที่ละเอียดยิ่งขึ้น เนื่องจาก Edge จะรู้ว่านักพัฒนาซอฟต์แวร์และแอปใดเป็นของโทเค็น OAuth ใด

สร้างนักพัฒนาซอฟต์แวร์

มาสร้างนักพัฒนาซอฟต์แวร์ชื่อ Nigel Tufnel กัน

  1. เลือกเผยแพร่ > นักพัฒนาซอฟต์แวร์ในเมนู
  2. คลิก + นักพัฒนาซอฟต์แวร์
  3. ป้อนข้อมูลต่อไปนี้ในหน้าต่างนักพัฒนาซอฟต์แวร์ใหม่
    ในฟิลด์นี้ Enter
    ชื่อ Nigel
    นามสกุล Tufnel
    ชื่อผู้ใช้ nigel
    อีเมล nigel@example.com
  4. คลิกสร้าง

ลงทะเบียนแอป

มาสร้างแอปสำหรับไนเจลกัน

  1. เลือกเผยแพร่ > แอป
  2. คลิก + แอป
  3. ป้อนข้อมูลต่อไปนี้ในหน้าต่างแอปใหม่
    ในฟิลด์นี้ สิ่งที่ควรทำ
    ชื่อและชื่อที่แสดง ป้อน nigel_app
    นักพัฒนาซอฟต์แวร์ คลิกนักพัฒนาซอฟต์แวร์ แล้วเลือก Nigel Tufnel (nigel@example.com)
    URL เรียกกลับและหมายเหตุ เว้นว่างไว้
  4. ในส่วนผลิตภัณฑ์ ให้คลิกเพิ่มผลิตภัณฑ์
  5. เลือก helloworld_oauth2-Product
  6. คลิกสร้าง

รับ รหัสผู้ใช้และข้อมูลลับของผู้ใช้

ตอนนี้คุณจะได้รับรหัสผู้ใช้และข้อมูลลับของผู้ใช้ที่จะแลกเปลี่ยนกับ OAuth โทเค็นเพื่อการเข้าถึง

  1. ตรวจสอบว่าหน้า nigel_app ปรากฏขึ้น หากไม่เป็นเช่นนั้น ในหน้าแอป (เผยแพร่ > แอป) ให้คลิก nigel_app
  2. ในหน้า nigel_app ให้คลิก Show ใน Key และ Secret โปรดสังเกตว่าคีย์/ข้อมูลลับ ที่เชื่อมโยงกับ " Helloworld_oauth2-Product" ที่สร้างขึ้นโดยอัตโนมัติ ก่อนหน้านี้

  3. เลือกและคัดลอกคีย์และข้อมูลลับ วางหน่วยโฆษณาชั่วคราว ไฟล์ข้อความ คุณจะใช้พร็อกซีในขั้นตอนถัดไป ซึ่งจะเรียกใช้พร็อกซี 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 เพื่อเรียกใช้ GenerateAccessTokenClient นโยบาย OAuth ที่สร้างโทเค็นเพื่อการเข้าถึงไหม 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 จะรวมอยู่ในการโทร

หัวข้อที่เกี่ยวข้อง