การสร้างบทบาทด้วย API

คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่เอกสารประกอบของ Apigee X
ข้อมูล

หัวข้อนี้จะกล่าวถึงวิธีสร้างบทบาทที่กำหนดเองและกำหนดบทบาทให้กับผู้ใช้ผ่าน API การจัดการ นอกจากนี้ เรายังแสดงวิธีทดสอบการมอบหมายบทบาทผ่าน API (ดูภาพรวมของบทบาทที่กำหนดเองได้ที่การสร้างบทบาทที่กำหนดเองใน UI)

เกี่ยวกับการตั้งค่าสิทธิ์

สิทธิ์ของบทบาทมีการตั้งค่าบน URI ของ API การจัดการ (ไม่ใช่ URI ของ UI การจัดการ) เช่น หากต้องการตั้งค่าสิทธิ์ PUT, GET และ/หรือ DELETE ในเอนทิตีของนักพัฒนาแอปในองค์กร Edge คุณต้องตั้งค่าสิทธิ์ในทรัพยากร /developers เนื่องจาก เส้นทาง API การจัดการสำหรับนักพัฒนาซอฟต์แวร์ คือ https://api.enterprise.apigee.com/v1/organizations/{org_name}/developers (คุณไม่จำเป็นต้องรวมส่วนองค์กรของเส้นทางเมื่อกำหนดสิทธิ์ เนื่องจากสิทธิ์ จะกำหนดขอบเขตไว้ที่องค์กรหนึ่งๆ ตามที่การเรียก API การจัดการในหัวข้อนี้ อธิบาย)

คุณยังตั้งค่าสิทธิ์ในเอนทิตีที่ต้องการได้ด้วย เช่น

  • หากคุณต้องการตั้งค่าสิทธิ์ในนักพัฒนาซอฟต์แวร์รายเดียว ให้ตั้งค่าสิทธิ์ดังกล่าวใน /developers/steve@example.com
  • สำหรับผลิตภัณฑ์ API ที่เฉพาะเจาะจง เช่น ผลิตภัณฑ์ API ฟรี ให้ตั้งค่าใน /apiproducts/free-api-product
  • สำหรับแมปค่าคีย์ในสภาพแวดล้อมที่เฉพาะเจาะจง คุณจะต้องตั้งค่าสิทธิ์ เช่น /environments/test/keyvaluemaps/fooMap หรือ /environments/test/keyvaluemaps/* สำหรับการแมปคีย์-ค่าทั้งหมดในสภาพแวดล้อมการทดสอบ

สิทธิ์ที่คุณตั้งค่าโดยใช้ API มีดังนี้

  • อนุญาตให้ผู้ใช้ในบทบาทที่กำหนดเองเรียกใช้ Management API ตามสิทธิ์ของผู้ใช้ ตัวอย่างเช่น หากบทบาทอนุญาตการเข้าถึงแบบอ่านอย่างเดียวสำหรับพร็อกซี API ทั้งหมด ผู้ใช้ในบทบาทนั้นสามารถใช้พร็อกซีของ API รายชื่อ แต่ไม่ให้ใช้ API สร้างพร็อกซี API ได้
  • กำหนดสิ่งที่ผู้ใช้ในบทบาทที่กำหนดเองจะเห็นและทำอะไรได้บ้างใน UI การจัดการ ตัวอย่างเช่น สิทธิ์การอ่านอย่างเดียวสำหรับพร็อกซี API จะปิดการเข้าถึงพร็อกซี +API และปุ่มลบในหน้าพร็อกซีของ API

หากต้องการดูทรัพยากรและเส้นทางที่คุณจะตั้งค่าสิทธิ์ได้ ให้ดูในเอกสารอ้างอิง API การจัดการใน URL ของทรัพยากรต่างๆ

โปรดดู API บทบาทของผู้ใช้สำหรับข้อมูลอ้างอิงทั้งหมดเกี่ยวกับการจัดการบทบาท

ไวยากรณ์และลำดับความสำคัญ

คุณสามารถใช้เครื่องหมายดอกจัน (*) ในการระบุว่า "ทุกอย่างหลังจากนี้" ในการตั้งค่าสิทธิ์ อย่างไรก็ตาม หากคุณตั้งค่าสิทธิ์เฉพาะในทรัพยากรระดับบนสุด (เช่น ใน /developers) โดยไม่ตั้งค่าสิทธิ์ที่เฉพาะเจาะจงมากขึ้น (เช่น /developers/*) สิทธิ์ดังกล่าวจะมีผลกับทุกอย่างตั้งแต่ /developers และหลังจากนั้น

PUT ทำหน้าที่เป็น POST ในสิทธิ์ด้วย

คุณผสมผสานสิทธิ์ทั่วไปกับสิทธิ์ที่ละเอียดมากขึ้นสำหรับทรัพยากรได้ การตั้งค่าที่ละเอียดกว่าจะมีลําดับความสําคัญเหนือกว่าเมื่อมีสิทธิ์ทับซ้อนกัน ตัวอย่างเช่น สมมติว่ามีการตั้งค่าสิทธิ์ต่อไปนี้ไว้ในบทบาท "developeradmin"

  • PUT บน /developers
  • รับข้อมูลที่ /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 ใช้งานได้

แอตทริบิวต์เส้นทางจะระบุอาร์ติแฟกต์ที่คุณตั้งค่าสิทธิ์ เช่น /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 Management Server

เพิ่มผู้ใช้ลงในบทบาทการทดสอบ

วิธีจัดสรรผู้ใช้ด้วยบทบาทของผู้ใช้

$ 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 พร้อมกับเนื้อหาได้
$ 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