คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่
เอกสารประกอบของ Apigee X info
ประเภทการให้สิทธิ์รหัสผ่านของเจ้าของทรัพยากร (หรือ "รหัสผ่าน") ส่วนใหญ่จะใช้ในกรณีที่แอป มีความน่าเชื่อถือสูง ในการกำหนดค่านี้ ผู้ใช้จะให้ข้อมูลเข้าสู่ระบบของเซิร์ฟเวอร์ทรัพยากร (ชื่อผู้ใช้/รหัสผ่าน) แก่แอปไคลเอ็นต์ ซึ่งจะส่งข้อมูลดังกล่าวในคำขอโทเค็นเพื่อการเข้าถึงไปยัง Apigee Edge เซิร์ฟเวอร์ระบุตัวตนจะตรวจสอบข้อมูลเข้าสู่ระบบ และหากข้อมูลถูกต้อง Edge จะสร้าง โทเค็นเพื่อการเข้าถึงและส่งคืนโทเค็นดังกล่าวไปยังแอป
เกี่ยวกับหัวข้อนี้
หัวข้อนี้จะอธิบายและให้ภาพรวมทั่วไปเกี่ยวกับโฟลว์ประเภทการให้สิทธิ์รหัสผ่านของเจ้าของทรัพยากร OAuth 2.0 รวมถึงอธิบายวิธีติดตั้งใช้งานโฟลว์นี้ใน Apigee Edge
ตัวอย่างที่คุณอาจพบว่ามีประโยชน์
- การขอ โทเค็นเพื่อการเข้าถึง: ประเภทการให้สิทธิ์รหัสผ่าน: แสดงวิธีสร้างคำขอโทเค็น กำหนดค่านโยบาย OAuthV2 สำหรับประเภทการให้สิทธิ์รหัสผ่าน และวิธีกำหนดค่าปลายทางสำหรับนโยบายใน Edge
- oauth-validate-key-secret: พร็อกซีตัวอย่างใน GitHub ที่คุณสามารถติดตั้งใช้งานใน Edge และลองใช้ ได้ ซึ่งเป็นตัวอย่างแบบครบวงจรที่มีประเภทการให้สิทธิ์รหัสผ่าน และแสดงแนวทางปฏิบัติแนะนำในการตรวจสอบสิทธิ์ข้อมูลเข้าสู่ระบบ (คีย์/รหัสลับ) ของแอปไคลเอ็นต์ก่อนที่จะส่งข้อมูลเข้าสู่ระบบของผู้ใช้ไปยังผู้ให้บริการข้อมูลประจำตัว
วิดีโอ
วิดีโอ: ดูวิดีโอนี้เกี่ยวกับการติดตั้งใช้งานประเภทการให้สิทธิ์รหัสผ่าน
กรณีการใช้งาน
ประเภทการให้สิทธิ์นี้มีไว้สำหรับแอปที่มีความน่าเชื่อถือสูงหรือแอปที่มีสิทธิ์พิเศษ เนื่องจากผู้ใช้ต้องให้ข้อมูลเข้าสู่ระบบของเซิร์ฟเวอร์ทรัพยากรแก่แอป โดยปกติแล้วแอปจะมีหน้าจอเข้าสู่ระบบให้ผู้ใช้ป้อนข้อมูลเข้าสู่ระบบ
แผนผังโฟลว์
แผนผังโฟลว์ต่อไปนี้แสดงโฟลว์ประเภทการให้สิทธิ์รหัสผ่านของเจ้าของทรัพยากร โดยมี Apigee Edge เป็นเซิร์ฟเวอร์การให้สิทธิ์
เคล็ดลับ: หากต้องการดูแผนผังเวอร์ชันที่ใหญ่ขึ้น ให้คลิกขวาที่แผนผังแล้วเปิดใน แท็บใหม่ หรือบันทึกแล้วเปิดในโปรแกรมดูรูปภาพ

ขั้นตอนในโฟลว์ประเภทการให้สิทธิ์รหัสผ่าน
ต่อไปนี้เป็นข้อมูลสรุปขั้นตอนที่ต้องใช้ในการติดตั้งใช้งานประเภทการให้สิทธิ์รหัสผ่าน โดยมี Apigee Edge เป็นเซิร์ฟเวอร์การให้สิทธิ์
ข้อกำหนดเบื้องต้น: แอปไคลเอ็นต์ต้องลงทะเบียนกับ Apigee Edge เพื่อ รับคีย์รหัสไคลเอ็นต์และรหัสลับไคลเอ็นต์ ดูรายละเอียดได้ที่การลงทะเบียนแอปไคลเอ็นต์สำหรับ
1. ผู้ใช้ เริ่มโฟลว์และป้อนข้อมูลเข้าสู่ระบบ
เมื่อแอปต้องเข้าถึงทรัพยากรที่ได้รับการปกป้องของผู้ใช้ (เช่น ผู้ใช้คลิกปุ่ม ในแอป) ระบบจะเปลี่ยนเส้นทางผู้ใช้ไปยังแบบฟอร์มเข้าสู่ระบบ
2. แอปขอโทเค็นเพื่อการเข้าถึงจาก Apigee Edge
แอปจะส่งคำขอโทเค็นเพื่อการเข้าถึง ซึ่งรวมถึงข้อมูลเข้าสู่ระบบของผู้ใช้ ไปยัง ปลายทาง GenerateAccessToken ใน Apigee Edge
ต่อไปนี้เป็นคำขอ POST ตัวอย่าง ซึ่งรวมถึงพารามิเตอร์ที่จำเป็นสำหรับประเภทการให้สิทธิ์นี้
$ curl -i \ -X POST \ -H 'Content-Type: application/x-www-form-urlencoded' \ -H 'Authorization: Basic c3FIOG9vSGV4VHo4QzAySVg5T1JvNnJoZ3ExaVNyQWw6WjRsanRKZG5lQk9qUE1BVQ' \ -d 'grant_type=password&username=the-user-name&password=the-users-password' \ https://docs-test.apigee.net/oauth/token
หรือคุณจะใช้คำสั่งดังกล่าวในรูปแบบต่อไปนี้ โดยใช้ตัวเลือก -u กับ curl เพื่อสร้างส่วนหัวการตรวจสอบสิทธิ์ขั้นพื้นฐานที่เข้ารหัสแบบ Base64 ให้คุณ
$ curl -i \ -X POST \ -H 'Content-Type: application/x-www-form-urlencoded' \ -u sqH8ooHexTz8C02IX9ORo6rhgq1iSrAl:Z4ljtJdneBOjPMAU \ -d 'grant_type=password&username=the-user-name&password=the-users-password' \ https://docs-test.apigee.net/oauth/token
(คำสั่งแต่ละรายการควรอยู่ในบรรทัดเดียว)
ข้อมูลเข้าสู่ระบบของผู้ใช้จะอยู่ในพารามิเตอร์แบบฟอร์ม ส่วนข้อมูลเข้าสู่ระบบของไคลเอ็นต์จะ เข้ารหัสในส่วนหัวการตรวจสอบสิทธิ์ขั้นพื้นฐานของ HTTP ดูคำอธิบายโดยละเอียดเกี่ยวกับการเรียก API นี้ ซึ่งรวมถึงรายละเอียดเกี่ยวกับส่วนหัวการตรวจสอบสิทธิ์ขั้นพื้นฐานที่จำเป็นได้ที่ส่วนการให้สิทธิ์รหัสผ่านของ "การขอโทเค็นเพื่อการเข้าถึงและรหัสการให้สิทธิ์"
3. Edge จะตรวจสอบแอปไคลเอ็นต์
ก่อนที่จะส่งชื่อผู้ใช้และรหัสผ่านของผู้ใช้ไปยังผู้ให้บริการข้อมูลประจำตัว Edge ต้องทราบ ว่าแอปไคลเอ็นต์ที่ส่งคำขอเป็นแอปที่ถูกต้องและเชื่อถือได้ วิธีหนึ่งในการดำเนินการนี้คือการใช้การตรวจสอบสิทธิ์คีย์ API ในการเรียก API ในบางกรณี คุณอาจต้องการตรวจสอบทั้งคีย์และรหัสลับของไคลเอ็นต์ โดยมีพร็อกซีตัวอย่างที่แสดงเทคนิคทางเลือกนี้ใน ที่เก็บ api-platform-samples ใน GitHub
4. Edge จะประมวลผลข้อมูลเข้าสู่ระบบ
หลังจากตรวจสอบแอปไคลเอ็นต์แล้ว คุณสามารถใช้นโยบาย Service Callout หรือ JavaScript เพื่อเรียกใช้ บริการระบุตัวตน โดยส่งข้อมูลเข้าสู่ระบบของผู้ใช้ เช่น บริการ LDAP หรือบริการใดก็ตามที่คุณต้องการใช้เพื่อตรวจสอบข้อมูลเข้าสู่ระบบ ดูรายละเอียดเกี่ยวกับนโยบายเหล่านี้ได้ที่ นโยบาย Extract Variables และนโยบาย JavaScript
หากบริการระบุตัวตนตรวจสอบข้อมูลเข้าสู่ระบบและแสดงการตอบกลับ 200 Edge จะ ประมวลผลคำขอต่อไป มิเช่นนั้น Edge จะหยุดประมวลผลและแสดงข้อผิดพลาดไปยัง แอปไคลเอ็นต์
5. นโยบาย OAuthV2 จะทำงาน
หากข้อมูลเข้าสู่ระบบถูกต้อง ขั้นตอนการประมวลผลถัดไปคือการใช้นโยบาย OAuthV2 ที่กำหนดค่าไว้สำหรับประเภทการให้สิทธิ์รหัสผ่าน ดังตัวอย่างต่อไปนี้ องค์ประกอบ <UserName> และ <PassWord> เป็นองค์ประกอบที่จำเป็น และคุณสามารถดึงข้อมูลดังกล่าวจากตัวแปรโฟลว์ที่ บันทึกไว้ด้วยนโยบาย ExtractVariables ดูข้อมูลอ้างอิงโดยละเอียดเกี่ยวกับนโยบายนี้ได้ที่ ดู นโยบาย OAuthV2
<OAuthV2 name="GetAccessToken"> <Operation>GenerateAccessToken</Operation> <ExpiresIn>360000000</ExpiresIn> <SupportedGrantTypes> <GrantType>password</GrantType> </SupportedGrantTypes> <GrantType>request.queryparam.grant_type</GrantType> <UserName>login</UserName> <PassWord>password</PassWord> <GenerateResponse/> </OAuthV2>
หากนโยบายนี้สำเร็จ ระบบจะสร้างการตอบกลับกลับไปยังไคลเอ็นต์ซึ่งมีโทเค็นเพื่อการเข้าถึง การตอบกลับจะอยู่ในรูปแบบ JSON ดังตัวอย่างต่อไปนี้ โปรดทราบว่า access_token เป็นหนึ่งใน องค์ประกอบ
{ "issued_at": "1420258685042", "scope": "READ", "application_name": "ce1e94a2-9c3e-42fa-a2c6-1ee01815476b", "refresh_token_issued_at": "1420258685042", "status": "approved", "refresh_token_status": "approved", "api_product_list": "[PremiumWeatherAPI]", "expires_in": "1799", "developer.email": "tesla@weathersample.com", "organization_id": "0", "token_type": "BearerToken", "refresh_token": "IFl7jlijYuexu6XVSSjLMJq8SVXGOAAq", "client_id": "5jUAdGv9pBouF0wOH5keAVI35GBtx3dT", "access_token": "I6daIgMSiUgYX1K2qgQWPi37ztS6", "organization_name": "docs", "refresh_token_expires_in": "0", "refresh_count": "0" }
6. ไคลเอ็นต์เรียกใช้ API ที่ได้รับการปกป้อง
ตอนนี้ไคลเอ็นต์สามารถเรียกใช้ API ที่ได้รับการปกป้องได้แล้วด้วยรหัสการเข้าถึงที่ถูกต้อง ในสถานการณ์นี้ ระบบจะส่งคำขอไปยัง Apigee Edge (พร็อกซี) และ Edge มีหน้าที่ตรวจสอบ โทเค็นเพื่อการเข้าถึงก่อนที่จะส่งต่อการเรียก API ไปยังเซิร์ฟเวอร์ทรัพยากรเป้าหมาย โดยจะส่งโทเค็นเพื่อการเข้าถึง ในส่วนหัวการให้สิทธิ์ เช่น
$ curl -H "Authorization: Bearer I6daIgMSiUgYX1K2qgQWPi37ztS6 " http://{org_name}-test.apigee.net/weather/forecastrss?w=12797282