Tạo vai trò bằng API

Bạn đang xem tài liệu về Apigee Edge.
Chuyển đến tài liệu về Apigee X.
thông tin

Chủ đề này thảo luận cách tạo vai trò tuỳ chỉnh và chỉ định vai trò cho người dùng thông qua API Quản lý của chúng tôi. Chúng tôi cũng hướng dẫn cách kiểm thử việc chỉ định vai trò thông qua API. (Để biết thông tin tổng quan về vai trò tuỳ chỉnh, hãy xem phần Tạo vai trò tuỳ chỉnh trong giao diện người dùng.)

Giới thiệu về chế độ cài đặt quyền

Quyền theo vai trò được thiết lập trên URI API quản lý (không phải URI giao diện người dùng quản lý). Ví dụ: nếu bạn muốn đặt quyền PUT, GET và/hoặc DELETE trên các thực thể nhà phát triển ứng dụng trong Edge của bạn tổ chức, bạn nên đặt quyền trên tài nguyên /developers vì đường dẫn API quản lý cho nhà phát triểnhttps://api.enterprise.apigee.com/v1/organizations/{org_name}/developers. (Bạn không cần đưa phần tổ chức vào đường dẫn khi xác định quyền, vì quyền được giới hạn trong một tổ chức cụ thể, như các lệnh gọi API quản lý trong chủ đề này minh hoạ.)

Bạn cũng có thể đặt quyền trên các thực thể cụ thể. Ví dụ:

  • Nếu bạn muốn đặt quyền cho một nhà phát triển, hãy đặt quyền đó trên /developers/steve@example.com
  • Đối với một sản phẩm API cụ thể, chẳng hạn như free-api-product, hãy đặt trên /apiproducts/free-api-product
  • Đối với sơ đồ khoá-giá trị trong một môi trường cụ thể, bạn nên thiết lập quyền cho một mục như /environments/test/keyvaluemaps/fooMap hoặc /environments/test/keyvaluemaps/* đối với tất cả sơ đồ liên kết giá trị khoá trong kiểm thử môi trường.

Các quyền bạn đặt bằng API:

  • Cho phép người dùng có vai trò tuỳ chỉnh tạo API quản lý theo quyền của họ. Ví dụ: nếu một vai trò cho phép truy cập chỉ có thể đọc đối với tất cả proxy API, người dùng với vai trò đó có thể sử dụng API List API proxy nhưng không thể sử dụng Tạo API proxy API.
  • Xác định những gì người dùng có vai trò tuỳ chỉnh có thể xem và làm trong giao diện người dùng quản lý. Ví dụ: quyền chỉ đọc đối với proxy API sẽ vô hiệu hoá quyền truy cập vào nút +Proxy API và Xoá trên trang Proxy API.

Để xem các tài nguyên và đường dẫn mà bạn có thể thiết lập quyền, hãy xem tài liệu tham khảo API quản lý tại các URL tài nguyên khác nhau.

Vui lòng xem API UserVai trò để biết đầy đủ thông tin tham khảo về quản lý vai trò.

Cú pháp và mức độ ưu tiên

Bạn có thể sử dụng ký tự đại diện dấu hoa thị (*) để biểu thị "mọi nội dung sau" trong chế độ cài đặt quyền. Tuy nhiên, nếu bạn chỉ đặt quyền trên một tài nguyên gốc (chẳng hạn như trên /developers) mà không đặt quyền cụ thể nào khác (chẳng hạn như /developers/*), thì quyền này sẽ áp dụng cho mọi thứ từ /developers trở đi.

PUT cũng đóng vai trò là POST trong quyền.

Bạn có thể kết hợp quyền chung với các quyền chi tiết hơn trên tài nguyên. Các chế độ cài đặt chi tiết hơn sẽ được ưu tiên khi có quyền trùng lặp. Ví dụ: giả sử các quyền sau đây được đặt cho vai trò "developeradmin":

  • PUT cho /nhà phát triển
  • TẢI trên /developers/*

Điều này có nghĩa là quản trị viên nhà phát triển có thể:

  • Tạo một nhà phát triển, nhưng không cập nhật bất kỳ nhà phát triển cụ thể nào hoặc bất kỳ thực thể phụ nào (do quyền GET cụ thể hơn trên đường dẫn đó).
  • Lấy bất kỳ nhà phát triển hoặc pháp nhân phụ nào, nhưng không lấy danh sách tất cả nhà phát triển.

Hãy xem Tài liệu tham khảo về quyền để biết danh sách đầy đủ các quyền mà bạn có thể đặt bằng API.

Tạo một vai trò tuỳ chỉnh mới có tên là "phát triển"

Tạo một "phát triển" để cho phép nhà phát triển xem, tạo và cập nhật proxy 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" } ] }'

Thêm quyền vào vai trò phát triển

Các quyền có thể được đặt trên toàn bộ nhóm cấu phần phần mềm Edge (chẳng hạn như tất cả /apps, /apis, /apiproducts, v.v.) cũng như trên các cấu phần phần mềm riêng lẻ (chẳng hạn như một ứng dụng, proxy API hoặc sản phẩm API cụ thể) là GET, PUT và DELETE.

GET cho phép người dùng xem bất kỳ API nào, bao gồm cả tệp cấu hình proxy API, được liên kết chính sách, JavaScript, tệp XML, v.v. Quyền PUT trên các API cho phép nhà phát triển tạo, sửa đổi, nhập, xuất, triển khai và huỷ triển khai các proxy API.

Thuộc tính đường dẫn chỉ định cấu phần phần mềm mà bạn đặt quyền. Ví dụ: /applications, /apps, /apiproducts, /developers hoặc /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" ]}'

Tạo vai trò: kiểm thử

Tạo một "thử nghiệm" để cho phép các kỹ sư chất lượng xem các proxy API và nội dung của chúng (ví dụ như chính sách).

$ 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" } ] }'

Thêm quyền vào vai trò kiểm thử

GET cho phép người dùng xem mọi API, bao gồm cả tệp cấu hình, cũng như mọi chính sách, JavaScript, tệp XSLT liên quan, v.v. Bằng cách thêm quyền này vào vai trò "kiểm thử", chúng tôi cho phép các kỹ sư chất lượng xem nội dung của các API mà họ đang kiểm thử. Tuy nhiên, người dùng có vai trò này sẽ không thể tạo, sửa đổi, nhập, xuất, triển khai và huỷ triển khai proxy 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" ]}'

Để cài đặt ứng dụng Edge tại chỗ, bạn phải đặt bộ quyền tối thiểu thành cho phép người dùng đăng nhập vào giao diện người dùng Edge là:

{"path" : "/","permissions" : [ "get" ]}
{"path" : "/*","permissions" : [ ]}
{"path" : "/environments","permissions" : [ "get" ]}
{"path" : "/userroles","permissions" : [ "get" ]}

Sử dụng lệnh cURL sau để đặt các quyền này:

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"]
   }
  ]
}'

trong đó &lt;ms-IP&gt; là địa chỉ IP hoặc tên DNS của Edge Management Server.

Thêm người dùng vào vai trò kiểm thử

Cách cấp vai trò người dùng cho người dùng:

$ 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"} ] }'

Xem API với tư cách người dùng

Giả mạo người dùng và đưa ra yêu cầu cho Dịch vụ API để xem proxy API. Người dùng phải xem được các API cùng với nội dung trong đó.
$ 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

Tạo API dưới vai trò người dùng thử nghiệm

Mạo danh người dùng và yêu cầu Dịch vụ API tạo proxy API. Yêu cầu sẽ bị Dịch vụ API từ chối vì vai trò "kiểm thử" không cho phép người dùng tạo 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"}'

Thêm người dùng vào vai trò phát triển

Bây giờ, hãy cấp cho người dùng vai trò "phát triển".

$ 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"} ] }'

Tạo API với vai trò người dùng là nhà phát triển

Giả mạo người dùng và lặp lại yêu cầu gửi đến Nền tảng API để tạo proxy API. Yêu cầu sẽ thành công vì vai trò "phát triển" cho phép người dùng tạo 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"}'

Lấy vai trò của người dùng

Là quản trị viên tổ chức, bạn có thể kiểm tra danh sách vai trò người dùng đối với người dùng (trên tất cả tổ chức) bất cứ lúc nào:

$ curl -u email:password -X GET https://api.enterprise.apigee.com/v1/users/justauser@apigee.com/userroles