Tạo vai trò bằng API

Bạn đang xem tài liệu về Apigee Edge.
Truy cập vào tài liệu Apigee X.
thông tin

Chủ đề này thảo luận về 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ý. 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 đặt 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 muốn đặt quyền PUT, GET và/hoặc DELETE cho các thực thể nhà phát triển ứng dụng trong tổ chức Edge của mình, bạn sẽ đặt quyền cho 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 thêm 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 cho 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 cho /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 các sản phẩm đó trên /apiproducts/free-api-product
  • Đối với một bản đồ khoá giá trị trong một môi trường cụ thể, bạn sẽ đặt quyền cho một thứ gì đó như /environments/test/keyvaluemaps/fooMap hoặc /environments/test/keyvaluemaps/* cho tất cả bản đồ khoá giá trị trong môi trường kiểm thử.

Các quyền mà bạn thiết lập bằng API:

  • Cho phép người dùng có vai trò tuỳ chỉnh thực hiện lệnh gọi 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 vào tất cả các proxy API, thì người dùng có vai trò đó có thể sử dụng API List API Proxies (Liệt kê các proxy API) nhưng không thể sử dụng API Create an API Proxy (Tạo proxy API).
  • Xác định những việc mà 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 các proxy API sẽ vô hiệu hoá quyền truy cập vào nút +API Proxy và Delete trên trang API Proxies.

Để xem các tài nguyên và đường dẫn mà bạn có thể đặt 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.

Hãy xem API Vai trò người dùng để biết thông tin tham khảo đầy đủ về việc 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ị (*) để chỉ "mọi thứ 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 mẹ (chẳng hạn như trên /developers) mà không đặt bất kỳ quyền cụ thể nào khác (chẳng hạn như /developers/*), thì quyền đó 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 các quyền chung với các quyền chi tiết hơn đối với tài nguyên. Các chế độ cài đặt chi tiết hơn sẽ được ưu tiên khi có sự trùng lặp về quyền. Ví dụ: giả sử các quyền sau đây được đặt cho vai trò "developeradmin":

  • PUT trên /developers
  • GET trên /developers/*

Điều này có nghĩa là quản trị viê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 có quyền GET cụ thể hơn trên đường dẫn đó).
  • Nhận mọi nhà phát triển hoặc thực thể phụ, nhưng không nhận được 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 này.

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

Tạo vai trò "phát triển" để cho phép nhà phát triển xem, tạo và cập nhật các 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 cho 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 từng cấu phần phần mềm (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 mọi API, bao gồm cả tệp cấu hình proxy API, các chính sách liên kết, JavaScript, tệp XSLT, v.v. Quyền PUT trên 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 vai trò "kiểm thử" để cho phép kỹ sư kiểm thử chất lượng xem các proxy API và nội dung của chúng (bao gồm cả các 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 được liên kết, 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 kỹ sư kiểm thử 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 các 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" ]}'

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

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

Sử dụng lệnh cURL sau đây để đặ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 đó <ms-IP> là địa chỉ IP hoặc tên DNS của Máy chủ quản lý biên.

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 dưới dạng người dùng

Mạo danh người dùng và gửi yêu cầu đến Dịch vụ API để xem các proxy API. Người dùng phải xem được các API cùng với nội dung của chúng.
$ 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 với tư cách là người dùng có vai trò kiểm thử

Mạo danh người dùng và gửi yêu cầu đến Dịch vụ API để tạo một proxy API. Yêu cầu sẽ bị API Services từ chối, vì vai trò "testing" 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 tư cách là người dùng có vai trò phát triển

Mạo danh người dùng và lặp lại yêu cầu đối với Nền tảng API để tạo một 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 cho một 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ò của người dùng cho một người dùng (trên tất cả cá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