เปิดใช้การเรียกและการเพิกถอนโทเค็นเพื่อการเข้าถึง OAuth 2.0 โดยใช้รหัสผู้ใช้ปลายทาง รหัสแอป หรือทั้งสองอย่าง

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

หัวข้อนี้จะอธิบายวิธีเปิดใช้การดึงและการเพิกถอนโทเค็นเพื่อการเข้าถึง OAuth 2.0 ด้วยวิธี รหัสผู้ใช้ปลายทาง รหัสแอป หรือทั้ง 2 อย่าง ฟีเจอร์ User-ID ต้องใช้การตั้งค่าพิเศษตามที่อธิบายไว้ใน หัวข้อ ผู้ใช้ปลายทางหมายถึงผู้ใช้แอปที่เรียกใช้ API

กรณีที่ควรเปิดใช้การเข้าถึงรหัสผู้ใช้ปลายทาง

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

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

เกี่ยวกับโทเค็นเพื่อการเข้าถึง OAuth

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

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

โดยค่าเริ่มต้น เมื่อ Edge สร้างโทเค็นเพื่อการเข้าถึง OAuth 2.0 โทเค็นจะมีรูปแบบที่แสดงไว้ ด้านล่าง

{
 "issued_at" : "1421847736581",
 "application_name" : "a68d01f8-b15c-4be3-b800-ceae8c456f5a",
 "scope" : "READ",
 "status" : "approved",
 "api_product_list" : "[PremiumWeatherAPI]",
 "expires_in" : "3599", //--in seconds
 "developer.email" : "tesla@weathersample.com",
 "organization_id" : "0",
 "token_type" : "BearerToken",
 "client_id" : "k3nJyFJIA3p62DWOkLO6OJNi87GYXFmP",
 "access_token" : "7S22UqXGJDTuUADGzJzjXzXSaGJL",
 "organization_name" : "myorg",
 "refresh_token_expires_in" : "0", //--in seconds
 "refresh_count" : "0"
}

โปรดทราบดังต่อไปนี้

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

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

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

{
 "issued_at" : "1421847736581",
 "application_name" : "a68d01f8-b15c-4be3-b800-ceae8c456f5a",
 "scope" : "READ",
 "app_enduser" : "6ZG094fgnjNf02EK",
 "status" : "approved",
 "api_product_list" : "[PremiumWeatherAPI]",
 "expires_in" : "3599", //--in seconds
 "developer.email" : "tesla@weathersample.com",
 "organization_id" : "0",
 "token_type" : "BearerToken",
 "client_id" : "k3nJyFJIA3p62DWOkLO6OJNi87GYXFmP",
 "access_token" : "7S22UqXGJDTuUADGzJzjXzXSaGJL",
 "organization_name" : "myorg",
 "refresh_token_expires_in" : "0", //--in seconds
 "refresh_count" : "0"
}

หากต้องการดูวิธีเรียกใช้ API ที่ดำเนินการเรียกข้อมูลและการเพิกถอนเหล่านี้ โปรดดู Smart Docs ดังต่อไปนี้

เปิดใช้งานการเข้าถึงโทเค็น OAuth 2.0 โดย รหัสผู้ใช้และรหัสแอป

วิธีเปิดใช้การเข้าถึงโทเค็น OAuth 2.0 ด้วยรหัสผู้ใช้และรหัสแอปจะขึ้นอยู่กับวิธีการติดตั้งใช้งาน ขอบ:

  • การติดตั้งใช้งานในระบบคลาวด์

    การติดตั้งใช้งาน Edge ในระบบคลาวด์หมายความว่า Apigee จะเป็นผู้จัดการการกำหนดค่าส่วนใหญ่ คุณ รับผิดชอบเฉพาะการกำหนดค่านโยบาย OAuth 2.0 เพื่อเพิ่ม User-ID ในการเข้าถึง โทเค็น โปรดดูขั้นตอนด้านล่างนี้สำหรับข้อมูลเพิ่มเติม

  • Edge สำหรับการติดตั้งใช้งาน Private Cloud

    ใน Apigee Edge สำหรับ Private Cloud (ภายในองค์กร) คุณจะต้องเป็นผู้รับผิดชอบทั้งหมด การกำหนดค่า สำหรับข้อมูลเพิ่มเติม โปรดดูการดำเนินการและ การกำหนดค่า

  • Apigee แบบผสม

    การเข้าถึงโทเค็น OAuth 2.0 ด้วยรหัสผู้ใช้จะเปิดใช้โดยค่าเริ่มต้น คุณ รับผิดชอบเฉพาะการกำหนดค่านโยบาย OAuth 2.0 เพื่อเพิ่ม User-ID ในการเข้าถึง โทเค็น โปรดดูข้อมูลเพิ่มเติมในขั้นตอนที่ 5 ของกระบวนการด้านล่าง

เปิดการเข้าถึงในระบบคลาวด์

ขั้นตอนที่ 1: เปิดใช้องค์กรเพื่อ รองรับฟีเจอร์นี้

ต้องเปิดใช้ฟีเจอร์นี้สำหรับแต่ละองค์กรที่คุณต้องการรองรับฟีเจอร์นี้

โปรดติดต่อทีมสนับสนุนของ Apigee Edge เพื่อให้อัปเดตองค์กร

ก้าว 2: มอบสิทธิ์ทรัพยากร oauth2 ให้กับบทบาท opsadmin และ orgadmin

คุณควรมอบเฉพาะบทบาท orgadmin และ opsadmin เท่านั้น สิทธิ์เหล่านี้ในการเรียก (get) และเพิกถอน (put) การเรียก ทรัพยากร oauth2 รายการตามรหัสผู้ใช้ปลายทางหรือรหัสแอป

คุณสามารถใช้ปุ่มรับสิทธิ์ สำหรับการเรียก Resource API เพื่อดูว่าบทบาทใดมี get และ put สำหรับทรัพยากร oauth2

หากต้องการเพิ่มหรือนำสิทธิ์ออก โปรดติดต่อทีมสนับสนุนของ Apigee Edge เพื่อ ให้ผู้ดูแลระบบทำการอัปเดต

ก้าว 3: คัดลอกโทเค็นเพื่อการเข้าถึง OAuth 2.0 ที่มีอยู่ไปยังโหนด Cassandra

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

ขั้นตอนที่ 4: เพิ่มพร็อพเพอร์ตี้ oauth_max_search_limit ลงในเซิร์ฟเวอร์การจัดการและข้อความ ผู้ประมวลผลข้อมูล

ในงานนี้ ไฟล์ keymanagement.properties สำหรับเซิร์ฟเวอร์การจัดการและ เครื่องมือประมวลผลข้อความจะได้รับการอัปเดตให้รวมคุณสมบัตินี้: oauth_max_search_limit = 100 100 คือค่าที่แนะนำของ Apigee แต่ก็ตั้งค่าได้ตามความเหมาะสม

โปรดติดต่อทีมสนับสนุนของ Apigee Edge เพื่อให้ทำการเพิ่มได้

ขั้นตอนที่ 5: กําหนดค่านโยบาย OAuth 2.0 เพื่อสร้างโทเค็นเพื่อการเข้าถึงที่มีรหัสผู้ใช้ปลายทาง

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

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

นโยบาย OAuth 2.0 ด้านล่างที่ชื่อ GenerateAccessTokenClient จะสร้าง OAuth โทเค็นเพื่อการเข้าถึง 2.0 โปรดสังเกตการเพิ่มแท็ก <AppEndUser> เป็นตัวหนาดังนี้

<OAuthV2 async="false" continueOnError="false" enabled="true" name="GenerateAccessTokenClient">
  <DisplayName>OAuth 2.0.0 1</DisplayName>
  <ExternalAuthorization>false</ExternalAuthorization>
  <Operation>GenerateAccessToken</Operation>
  <SupportedGrantTypes>
    <GrantType>client_credentials</GrantType>
  </SupportedGrantTypes>
  <GenerateResponse enabled="true"/>
  <GrantType>request.queryparam.grant_type</GrantType>
  <AppEndUser>request.header.appuserID</AppEndUser>
  <ExpiresIn>960000</ExpiresIn>
</OAuthV2>

จากนั้นคุณสามารถใช้คำสั่ง cURL ต่อไปนี้เพื่อสร้างโทเค็นเพื่อการเข้าถึง OAuth 2.0 โดยส่ง รหัสผู้ใช้เป็น appuserID ส่วนหัว:

curl -H "appuserID:6ZG094fgnjNf02EK" /
  https://myorg-test.apigee.net/oauth/client_credential/accesstoken?grant_type=client_credentials /
  -X POST /
  -d 'client_id=k3nJyFJIA3p62TKIkLO6OJNi87GYXFmP&client_secret=gk58jK5lIp943AY4'

ในตัวอย่างนี้ appuserID เป็นส่วนหัวของคำขอ คุณส่งข้อมูลให้เป็นส่วนหนึ่งของคำขอได้หลายวิธี สำหรับ อีกทางเลือกหนึ่งคือ

  • ใช้ตัวแปรพารามิเตอร์แบบฟอร์ม: request.formparam.appuserID
  • ใช้ตัวแปรโฟลว์ที่ระบุรหัสผู้ใช้ปลายทาง