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 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 bài viết 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 thêm phần tổ chức trong đường dẫn khi xác định quyền, vì các quyền có phạm vi là một tổ chức cụ thể, như các lệnh gọi API quản lý trong chủ đề này illustrate.)

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 cấp quyền cho một nhà phát triển, hãy đặt quyền đó vào /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 có 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 truy cập chỉ đọc vào proxy API sẽ vô hiệu hóa quyền truy cập vào + Proxy API và Xóa trên API Trang proxy.

Để 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.

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 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/*), quyền này sẽ áp dụng cho mọi thứ từ /developers và sau đó.

PUT cũng đóng vai trò là 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ó sự chồng chéo về quyền. Ví dụ: giả sử như sau các quyền được đặt trên một "developeradmin" vai trò:

  • 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 thì quyền GET cụ thể hơn trên đường dẫn đó).
  • Nhận danh sách nhà phát triển hoặc thực thể con bất kỳ, nhưng không nhận 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à "nhà 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ò nhà 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ả /ứng dụng, /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, API cụ thể proxy hoặc sản phẩm API) 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 bất kỳ API nào, bao gồm cả tệp cấu hình cũng như bất kỳ chính sách được liên kết, JavaScript, tệp XUẤT BẢN, v.v. Bằng cách thêm quyền này vào "thử nghiệm" 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 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à gửi yêu cầu tới API Dịch vụ để 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 với tư cách người dùng trong vai trò 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ò nhà phát triển

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

$ 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 người dùng trong vai trò nhà phát triển

Mạo danh người dùng rồi lặp lại yêu cầu với Nền tảng API để tạo proxy API. Chiến lược phát hành đĩa đơn yêu cầu sẽ thành công, dưới dạng 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"}'

Nhận 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