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

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

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

ควรเปิดใช้งานการเข้าถึง ID ผู้ใช้ปลายทางเมื่อใด

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

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

เกี่ยวกับโทเค็นเพื่อการเข้าถึง 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 ที่ดึงข้อมูลและการเพิกถอน โปรดดูเอกสารอัจฉริยะต่อไปนี้

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

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

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

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

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

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

  • Apigee แบบผสมผสาน

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

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

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

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

โปรดติดต่อฝ่ายสนับสนุนของ Apigee Edge เพื่อขอให้อัปเดตองค์กรของคุณ

ขั้นตอนที่ 2: ให้สิทธิ์ทรัพยากร oauth2 แก่บทบาทผู้ดูแลระบบ opsadmin และ org

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

คุณสามารถใช้การเรียก 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 ที่ใช้สร้างโทเค็นเพื่อการเข้าถึงเพื่อรวมรหัสผู้ใช้ปลายทางไว้ในโทเค็น เมื่อใส่รหัสผู้ใช้ปลายทางไว้ในโทเค็นเพื่อการเข้าถึงแล้ว คุณจะดึงข้อมูลและเพิกถอนตามรหัสผู้ใช้ปลายทางได้

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