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ý. Chúng tôi cũng trình bày cách kiểm thử việc chỉ định vai trò thông qua API. (Để biết 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 trên các thực thể nhà phát triển ứng dụng trong tổ chức Edge, thì bạn nên đặt quyền đối với 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ó phạm vi chỉ dành cho một tổ chức cụ thể, như minh hoạ cho các lệnh gọi API quản lý trong chủ đề này.)

Bạn cũng có thể đặt quyền đối với các thực thể cụ thể. Ví dụ:

  • Nếu bạn muốn cấp quyền cho một nhà phát triển, hãy cấp 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 các sản phẩm đó trên /apiproducts/free-api-product
  • Đối với bản đồ khoá giá trị trong một môi trường cụ thể, bạn nên đặt quyền đối với nội dung nào đó như /environments/test/keyvaluemaps/fooMap hoặc /environments/test/keyvaluemaps/* cho tất cả các bản đồ khoá-giá trị trong môi trường kiểm thử đó.

Các quyền bạn đặt 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ò chỉ cho phép truy cập chỉ đọc vào tất cả proxy API, thì người dùng với vai trò đó có thể sử dụng API List API Proxies (Danh sách proxy API) nhưng không thể sử dụng API Create an API Proxy API (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ó thể đọc vào proxy API sẽ vô hiệu hoá quyền truy cập vào các 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ể cấp quyền, hãy xem tài liệu tham khảo API quản lý ở các URL tài nguyên khác nhau.

Hãy xem API User Role (Vai trò của 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ị (*) để cho biết "mọi nội dung sau" trong chế độ cài đặt quyền. Tuy nhiên, nếu bạn chỉ thiết lập quyền cho một tài nguyên mẹ (chẳng hạn như trên /developers) mà không thiết lập 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 tài nguyên từ /developers trở đi.

PUT cũng đóng vai trò là yêu cầu POST trong các 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ó quyền trùng lặp. Ví dụ: giả sử các quyền sau đây được đặt cho vai trò "quản trị viên nhà phát triển":

  • PUT vào /developers
  • GET trên /developers/*

Tức 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 danh sách nhà phát triển hoặc thực thể phụ bất kỳ, nhưng không lấy danh sách tất cả các nhà phát triển.

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 vai trò tuỳ chỉnh mới có tên là "phát triển"

Tạo vai trò "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

Những quyền có thể đặ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 cụ thể (chẳng hạn như một ứng dụng cụ thể, proxy API hoặc sản phẩm API) 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, chính sách liên kết, tệp JavaScript, tệp GCC, 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 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ò "thử nghiệm" để cho phép kỹ sư chất lượng xem các proxy API và nội dung của các proxy API (bao gồm cả chính sách chẳng hạn).

$ 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ả các tệp cấu hình cũng như mọi chính sách liên quan, tệp JavaScript, GCC, 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 được nội dung của các API mà họ đang kiểm thử. Tuy nhiên, người dùng với 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" ]}'

Đối với quá trình cài đặt Edge tại cơ sở, nhóm quyền tối thiểu phải được thiết lập để cho phép người dùng đăng nhập vào giao diện người dùng của Edge là:

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

Sử dụng lệnh cURL sau để thiết lập 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ý cạnh.

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

Cách cấp phép cho một người dùng có vai trò của 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

Mạo danh người dùng và đưa ra yêu cầu cho 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 các 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

Tạo API với vai trò người dùng kiểm thử

Mạo danh người dùng và đưa ra yêu cầu để Dịch vụ API tạo proxy API. Dịch vụ API sẽ từ chối yêu cầu vì vai trò "thử nghiệm" 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 trong vai trò phát triển

Mạo danh người dùng và lặp lại yêu cầu đế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 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 (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