คุณกําลังดูเอกสารประกอบของ Apigee Edge
ไปที่เอกสารประกอบของ Apigee X info
ส่วนนี้จะอธิบายวิธีเปิดใช้การเรียกข้อมูลและการเพิกถอนโทเค็นการเข้าถึง OAuth 2.0 ตามรหัสผู้ใช้ปลายทาง รหัสแอป หรือทั้ง 2 อย่าง ฟีเจอร์รหัสผู้ใช้ปลายทางต้องมีการตั้งค่าพิเศษตามที่อธิบายไว้ในหัวข้อนี้ ผู้ใช้ปลายทางหมายถึงผู้ใช้แอปที่เรียกใช้ API
กรณีที่ควรเปิดใช้การเข้าถึงรหัสผู้ใช้ปลายทาง
บางครั้งการจัดเก็บรหัสผู้ใช้ไว้ในโทเค็นการเข้าถึงก็มีประโยชน์ เปิดใช้ฟีเจอร์การเข้าถึงรหัสผู้ใช้ปลายทางก็ต่อเมื่อคุณมี Use Case ที่เหมาะสมเท่านั้น เช่น
- ฟีเจอร์สําหรับเว็บไซต์หรือแอปที่ผู้ใช้สามารถดูว่าแอปของบุคคลที่สามใดบ้างที่ได้รับสิทธิ์ และระบุตัวเลือกในการเพิกถอนสิทธิ์เข้าถึงแอปเหล่านั้น
- ฟีเจอร์ที่อนุญาตให้ผู้ใช้ที่ได้รับอนุญาตเพิกถอนโทเค็นการเข้าถึงทั้งหมดที่เชื่อมโยงกับแอปของนักพัฒนาแอปหนึ่งๆ
เกี่ยวกับโทเค็นการเข้าถึง 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 Hybrid
ระบบจะเปิดใช้การเข้าถึงโทเค็น OAuth 2.0 ตามรหัสผู้ใช้โดยค่าเริ่มต้น คุณมีหน้าที่รับผิดชอบในการกำหนดค่านโยบาย OAuth 2.0 เพื่อเพิ่มรหัสผู้ใช้ลงในโทเค็นการเข้าถึงเท่านั้น ดูข้อมูลเพิ่มเติมได้ที่ขั้นตอนที่ 5 ด้านล่าง
การเปิดใช้การเข้าถึงในระบบคลาวด์
ขั้นตอนที่ 1: เปิดใช้องค์กรเพื่อรองรับฟีเจอร์นี้
คุณต้องเปิดใช้ฟีเจอร์นี้สำหรับแต่ละองค์กรที่ต้องการรองรับฟีเจอร์นี้
โปรดติดต่อทีมสนับสนุนของ Apigee Edge เพื่อขอให้อัปเดตองค์กร
ขั้นตอน 2: ให้สิทธิ์ทรัพยากร oauth2 แก่บทบาท opsadmin และ orgadmin
เฉพาะบทบาท orgadmin และ opsadmin เท่านั้นที่ควรได้รับสิทธิ์ในการเรียกใช้การดึงข้อมูล (get
) และการเพิกถอน (put
) ทรัพยากร oauth2
ตามรหัสผู้ใช้ปลายทางหรือรหัสแอป
คุณสามารถใช้การเรียก API Get Permission
for a Resource เพื่อดูว่าบทบาทใดมีสิทธิ์ get
และ put
สำหรับทรัพยากร oauth2
หากต้องการเพิ่มหรือนำสิทธิ์ออก โปรดติดต่อทีมสนับสนุนของ Apigee Edge เพื่อขอให้ดำเนินการอัปเดต
ขั้นตอนที่ 3: คัดลอกโทเค็นการเข้าถึง OAuth 2.0 ที่มีอยู่ไปยังโหนด Cassandra
ดำเนินการโดยทีมสนับสนุนของ Apigee: ในขั้นตอนนี้ ระบบจะคัดลอกโทเค็นการเข้าถึง OAuth 2.0 ที่มีอยู่เดิมในองค์กรที่ได้รับผลกระทบและจัดเก็บไว้ในโหนด Cassandra ขั้นตอนนี้จะดำเนินการในโหนด Cassandra สำหรับแต่ละพ็อด Apigee Edge ซึ่งจะช่วยให้การเรียกข้อมูลและเพิกถอนการเรียก API ทํางานกับโทเค็นการเข้าถึง OAuth 2.0 ทั้งหมด ทั้งที่มีอยู่และที่สร้างขึ้นใหม่
ขั้นตอนที่ 4: กำหนดค่านโยบาย 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
- ใช้ตัวแปรโฟลว์ที่ให้รหัสผู้ใช้ปลายทาง