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

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

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

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

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

นอกจากนี้ คุณยังตั้งค่าสิทธิ์สำหรับเอนทิตีที่เฉพาะเจาะจงได้ด้วย เช่น

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

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

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

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

โปรดดู 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 ใช้งานได้

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

โดยที่ &lt;ms-IP&gt; คือที่อยู่ 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 และเนื้อหาของตัวเองได้
$ 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