คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่
เอกสารประกอบของ Apigee X info
ส่วนนี้อธิบายวิธีเปิดใช้การดึงข้อมูลและการเพิกถอนโทเค็นเพื่อการเข้าถึง OAuth 2.0 ด้วย รหัสผู้ใช้ปลายทาง รหัสแอป หรือทั้ง 2 อย่าง ฟีเจอร์รหัสผู้ใช้ปลายทางต้องมีการตั้งค่าพิเศษตามที่อธิบายไว้ในหัวข้อนี้ คำว่า "ผู้ใช้ปลายทาง" ในที่นี้หมายถึงผู้ใช้แอปที่เรียกใช้ 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 field จะมีค่าโทเค็นเพื่อการเข้าถึง 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 ต่อไปนี้
- เพิกถอนโทเค็นเพื่อการเข้าถึง OAuth2 ด้วยรหัสผู้ใช้ปลายทางหรือรหัสแอป
- รับโทเค็นเพื่อการเข้าถึง OAuth2 ด้วยรหัสผู้ใช้ปลายทางหรือรหัสแอป
การเปิดใช้การเข้าถึงโทเค็น OAuth 2.0 ด้วย รหัสผู้ใช้และรหัสแอป
วิธีเปิดใช้การเข้าถึงโทเค็น OAuth 2.0 ด้วยรหัสผู้ใช้และรหัสแอปจะขึ้นอยู่กับวิธีที่คุณติดตั้งใช้งาน Edge
การติดตั้งใช้งานบนระบบคลาวด์
การติดตั้งใช้งาน Edge บนระบบคลาวด์หมายความว่า Apigee จะจัดการการกำหนดค่าส่วนใหญ่ คุณ มีหน้าที่รับผิดชอบในการกำหนดค่านโยบาย OAuth 2.0 เพื่อเพิ่มรหัสผู้ใช้ลงในโทเค็นเพื่อการเข้าถึง เท่านั้น ดูข้อมูลเพิ่มเติมได้ในขั้นตอนด้านล่าง
การติดตั้งใช้งาน Edge for Private Cloud
ใน Apigee Edge for 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 และ 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
- ใช้ตัวแปรโฟลว์ที่ให้รหัสผู้ใช้ปลายทาง