คุณกําลังดูเอกสารประกอบของ Apigee Edge
ไปที่เอกสารประกอบของ Apigee X info
หัวข้อนี้จะกล่าวถึงวิธีสร้างบทบาทที่กำหนดเองและกำหนดบทบาทให้กับผู้ใช้ผ่าน API การจัดการ นอกจากนี้ เรายังแสดงวิธีทดสอบการมอบหมายบทบาทผ่าน API (ดูภาพรวมของบทบาทที่กําหนดเองได้ที่หัวข้อการสร้างบทบาทที่กําหนดเองใน UI)
เกี่ยวกับการตั้งค่าสิทธิ์
สิทธิ์ของบทบาทจะกำหนดใน URI ของ API การจัดการ (ไม่ใช่ URI ของ UI การจัดการ) ตัวอย่างเช่น หากคุณ
ต้องการตั้งค่าสิทธิ์ PUT, GET และ/หรือลบสิทธิ์สำหรับเอนทิตีนักพัฒนาแอปใน Edge
คุณก็ควรตั้งค่าสิทธิ์สำหรับทรัพยากร /developers
เนื่องจาก
เส้นทาง API การจัดการสำหรับนักพัฒนาซอฟต์แวร์คือ
https://api.enterprise.apigee.com/v1/organizations/{org_name}/developers
(คุณไม่จําเป็นต้องใส่ส่วนองค์กรของเส้นทางเมื่อกําหนดสิทธิ์ เนื่องจากสิทธิ์จะมีขอบเขตเป็นองค์กรที่เฉพาะเจาะจง ดังที่การเรียก API การจัดการในหัวข้อนี้แสดง)
นอกจากนี้ คุณยังตั้งค่าสิทธิ์ในเอนทิตีที่เฉพาะเจาะจงได้ด้วย เช่น
- หากต้องการตั้งค่าสิทธิ์สำหรับนักพัฒนาซอฟต์แวร์รายเดียว ให้ตั้งค่าสิทธิ์เป็น
/developers/steve@example.com
- สำหรับผลิตภัณฑ์ API ที่เฉพาะเจาะจง เช่น free-api-product ให้ตั้งค่าเป็น
/apiproducts/free-api-product
- สําหรับแมปค่าคีย์ในสภาพแวดล้อมที่เฉพาะเจาะจง คุณต้องตั้งค่าสิทธิ์ในรายการอย่าง
/environments/test/keyvaluemaps/fooMap
หรือ/environments/test/keyvaluemaps/*
สําหรับแมปค่าคีย์ทั้งหมดในสภาพแวดล้อมการทดสอบ
สิทธิ์ที่คุณตั้งค่าโดยใช้ API
- อนุญาตให้ผู้ใช้ในบทบาทที่กําหนดเองทําการเรียกใช้ API การจัดการตามสิทธิ์ ตัวอย่างเช่น หากบทบาทหนึ่งอนุญาตให้เข้าถึงพร็อกซี API ทั้งหมดแบบอ่านอย่างเดียว ผู้ใช้ในบทบาทดังกล่าวจะใช้ API แสดงรายการพร็อกซี API ได้ แต่จะไม่สามารถเข้าถึง API สร้างพร็อกซี API
- กำหนดสิ่งที่ผู้ใช้ในบทบาทที่กำหนดเองจะดูและดำเนินการได้ใน UI การจัดการ ตัวอย่างเช่น สิทธิ์การอ่านอย่างเดียวสำหรับพร็อกซี API จะปิดการเข้าถึงปุ่ม +API Proxy และ Delete ในหน้าพร็อกซี API
หากต้องการดูทรัพยากรและเส้นทางที่คุณสามารถตั้งค่าสิทธิ์ได้ โปรดดูเอกสารอ้างอิง API การจัดการใน URL ทรัพยากรต่างๆ
ดูข้อมูลอ้างอิงทั้งหมดเกี่ยวกับการจัดการบทบาทได้ที่ User roles API
ไวยากรณ์และลําดับความสําคัญ
คุณสามารถใช้เครื่องหมายดอกจัน (*) แทน (*) เพื่อระบุ "ทุกอย่างที่อยู่หลัง" ได้ ในการตั้งค่าสิทธิ์ อย่างไรก็ตาม หากคุณตั้งค่าสิทธิ์ในทรัพยากรหลักเท่านั้น (เช่น ใน /developers) โดยไม่ตั้งค่าสิทธิ์ที่เฉพาะเจาะจงมากขึ้น (เช่น /developers/*) สิทธิ์ดังกล่าวจะมีผลกับทุกอย่างตั้งแต่ /developers เป็นต้นไป
PUT ยังทำหน้าที่เป็น POST ในสิทธิ์ด้วย
คุณผสมสิทธิ์ทั่วไปกับสิทธิ์ที่ละเอียดยิ่งขึ้นในทรัพยากรได้ การตั้งค่าที่ละเอียดยิ่งขึ้นจะมีลำดับความสำคัญสูงกว่าในกรณีที่มีสิทธิ์ทับซ้อนกัน ตัวอย่างเช่น สมมติข้อมูลต่อไปนี้ มีการตั้งค่าสิทธิ์ ใน "ผู้ดูแลระบบนักพัฒนาซอฟต์แวร์" บทบาท:
- PUT ใน /developers
- GET ใน /developers/*
ซึ่งหมายความว่าผู้ดูแลระบบนักพัฒนาซอฟต์แวร์จะทำสิ่งต่อไปนี้ได้
- สร้างนักพัฒนาซอฟต์แวร์ แต่ไม่อัปเดตนักพัฒนาซอฟต์แวร์คนใดคนหนึ่งหรือเอนทิตีย่อยใดๆ (เนื่องจาก ก็จะได้รับสิทธิ์ GET ที่เฉพาะเจาะจงมากขึ้นในเส้นทางนั้น)
- รับข้อมูลนักพัฒนาแอปหรือนิติบุคคลย่อย แต่ไม่รับรายชื่อนักพัฒนาแอปทั้งหมด
ดูรายการสิทธิ์ทั้งหมดที่คุณตั้งค่าได้ด้วย API ได้ที่ข้อมูลอ้างอิงเกี่ยวกับสิทธิ์
สร้างบทบาทที่กำหนดเองใหม่ชื่อ "การพัฒนา"
สร้างบทบาท "การพัฒนา" เพื่อให้นักพัฒนาแอปดู สร้าง และอัปเดตพร็อกซี API ได้
$ curl -u email:password https://api.enterprise.apigee.com/v1/o/{org_name}/userroles -H "Content-type:application/json" -X POST -d'{ "role" : [ { "name" : "development" } ] }'
เพิ่มสิทธิ์ให้กับบทบาทการพัฒนาซอฟต์แวร์
สิทธิ์ที่ตั้งได้ให้กับอาร์ติแฟกต์ Edge ทั้งกลุ่ม (เช่น /apps, /apis, /apiproducts และอื่นๆ) รวมถึงอาร์ติแฟกต์แต่ละรายการ (เช่น แอปเฉพาะ, API พร็อกซีหรือผลิตภัณฑ์ API) ได้แก่ GET, PUT และ DELETE
GET ช่วยให้ผู้ใช้ดู API ต่างๆ ได้ ซึ่งรวมถึงไฟล์การกําหนดค่าพร็อกซี API, นโยบายที่เกี่ยวข้อง, JavaScript, ไฟล์ XSLT และอื่นๆ สิทธิ์ PUT บน API ทำให้นักพัฒนาซอฟต์แวร์สามารถ สร้าง แก้ไข นำเข้า ส่งออก ทำให้ใช้งานได้ และยกเลิกการทำให้พร็อกซี API ใช้งานได้
แอตทริบิวต์ path ระบุอาร์ติแฟกต์ที่คุณตั้งค่าสิทธิ์ ตัวอย่างเช่น /applications, /apps, /apiproducts, /developers หรือ /reports
curl -u email:password https://api.enterprise.apigee.com/v1/o/{org_name}/userroles/development/permissions -H "Content-type:application/json" -X POST -d'{"path" : "/applications","permissions" : [ "put", "get" ]}'
สร้างบทบาท: การทดสอบ
สร้าง "การทดสอบ" เพื่อช่วยให้วิศวกรคุณภาพสามารถดูพร็อกซี API และเนื้อหาของพร็อกซีได้ (เช่น นโยบาย)
$ curl -u email:password https://api.enterprise.apigee.com/v1/o/{org_name}/userroles -H "Content-type:application/json" -X POST -d'{ "role" : [ { "name" : "testing" } ] }'
เพิ่มสิทธิ์ให้กับบทบาทการทดสอบ
GET ช่วยให้ผู้ใช้ดู API ใดก็ได้ รวมถึงไฟล์การกําหนดค่า รวมถึงนโยบายที่เกี่ยวข้อง, JavaScript, ไฟล์ XSLT และอื่นๆ การเพิ่มสิทธิ์นี้ลงในบทบาท "การทดสอบ" จะช่วยให้วิศวกรคุณภาพดูเนื้อหาของ API ที่ตนกำลังทดสอบได้ อย่างไรก็ตาม ผู้ใช้ในบทบาทนี้จะไม่สามารถสร้าง แก้ไข นำเข้า ส่งออก และทำให้ใช้งานได้ และยกเลิกการทำให้พร็อกซี API ใช้งานได้
$ curl -u email:password https://api.enterprise.apigee.com/v1/o/{org_name}/userroles/testing/permissions -H "Content-type:application/json" -X POST -d'{"path" : "/applications","permissions" : [ "get" ]}'
สำหรับการติดตั้ง Edge ภายในองค์กร ชุดสิทธิ์ขั้นต่ำที่ต้องกำหนดเป็น อนุญาตให้ผู้ใช้เข้าสู่ระบบ Edge UI ได้ ได้แก่
{"path" : "/","permissions" : [ "get" ]} {"path" : "/*","permissions" : [ ]} {"path" : "/environments","permissions" : [ "get" ]} {"path" : "/userroles","permissions" : [ "get" ]}
ใช้คำสั่ง cURL ต่อไปนี้เพื่อตั้งค่าสิทธิ์เหล่านี้
curl -H "Content-Type:application/json" -u email:password \ -X POST \ http://<ms-IP>:8080/v1/organizations/{org_name}/userroles/testing/resourcepermissions \ -d '{ "resourcePermission" : [ { "path" : "/", "permissions" : [ "get" ] }, { "path" : "/*", "permissions" : [] }, { "path" : "/environments", "permissions" : [ "get" ] }, { "path" : "/userroles", "permissions" : [ "get"] } ] }'
โดยที่ <ms-IP> คือที่อยู่ IP หรือชื่อ DNS ของเซิร์ฟเวอร์การจัดการ Edge
เพิ่มผู้ใช้ในบทบาทการทดสอบ
วิธีจัดสรรบทบาทของผู้ใช้
$ curl -u email:password https://api.enterprise.apigee.com/v1/o/{org_name}/users/justauser@apigee.com/userroles -H "Content-type:application/json" -X POST -d'{"role" : [ {"name" : "testing"} ] }'
ดู API ในฐานะผู้ใช้
แอบอ้างเป็นผู้ใช้และส่งคำขอไปยัง API บริการเพื่อดูพร็อกซี API ผู้ใช้ควรดู API รวมถึงเนื้อหาของ API ได้$ curl -u justauser@apigee.com:secret https://api.enterprise.apigee.com/v1/o/{org_name}/apis
$ curl -u justauser@apigee.com:secret https://api.enterprise.apigee.com/v1/o/{org_name}/apis/{api_name}/policies
สร้าง API ในฐานะผู้ใช้ในบทบาทการทดสอบ
แอบอ้างเป็นผู้ใช้และส่งคําขอไปยังบริการ API เพื่อสร้างพร็อกซี API คำขอ จะถูกปฏิเสธโดยบริการ API เนื่องจากบทบาท "การทดสอบ" ไม่อนุญาตให้ผู้ใช้สร้าง API
$ curl -u justauser@apigee.com:secret -H "Content-Type: application/json" https://api.enterprise.apigee.com/v1/o/{org_name}/apis -X POST -d'{"name" : "rbacTestApi"}'
เพิ่มผู้ใช้ในบทบาทการพัฒนา
จากนั้นจัดสรรผู้ใช้ที่มีบทบาท "การพัฒนา"
$ curl -u email:password https://api.enterprise.apigee.com/v1/o/{org_name}/users/justauser@apigee.com/userroles -H "Content-type:application/json" -X POST -d'{"role" : [ {"name" : "development"} ] }'
สร้าง API ในฐานะผู้ใช้ในบทบาทการพัฒนา
ปลอมเป็นผู้ใช้และส่งคําขอไปยังแพลตฟอร์ม API อีกครั้งเพื่อสร้างพร็อกซี API ได้สำเร็จ เนื่องจากบทบาท "การพัฒนา" อนุญาตให้ผู้ใช้สร้าง API
$ curl -u justauser@apigee.com:secret -H "Content-Type: application/json" https://api.enterprise.apigee.com/v1/o/{org_name}/apis -X POST -d'{"name" : "rbacTestApi"}'
ดูบทบาทของผู้ใช้
ในฐานะผู้ดูแลระบบขององค์กร คุณสามารถตรวจสอบรายการบทบาทของผู้ใช้สำหรับผู้ใช้ (ใน องค์กร) ได้ตลอดเวลา:
$ curl -u email:password -X GET https://api.enterprise.apigee.com/v1/users/justauser@apigee.com/userroles