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