使用 API 建立角色

查看 Apigee Edge 說明文件。
前往 Apigee X說明文件
資訊

本主題將說明如何建立自訂角色,以及如何透過 Management API我們也會示範如何透過 API 測試角色指派作業。(觀看 自訂角色,請參閱透過 UI)。

關於權限設定

可在 Management API URI (而非管理 UI URI) 上設定角色權限。舉例來說,如果您在 想針對 Edge 中的應用程式開發人員實體設定 PUT、GET 和/或 DELETE 權限 您應在 /developers 資源上設定權限,因為 開發人員的 Management API 路徑是 https://api.enterprise.apigee.com/v1/organizations/{org_name}/developers。 (定義權限時,您不需要在路徑中加入機構部分,因為 權限的範圍僅限於特定機構,因為本主題中的 Management API 呼叫 illustrate.)

您也可以設定特定實體的權限。例如:

  • 如果要為單一開發人員設定權限,請將其設為 /developers/steve@example.com
  • 請為特定 API 產品 (例如 free-api-product) 進行設定 「/apiproducts/free-api-product」中
  • 對於特定環境的鍵/值對應,您需要設定下列項目的權限: /environments/test/keyvaluemaps/fooMap,或 針對測試中的所有鍵/值對應的 /environments/test/keyvaluemaps/* 環境。
,瞭解如何調查及移除這項存取權。

使用 API 設定的權限:

  • 允許自訂角色的使用者建立 management API 呼叫。例如,如果角色允許唯讀存取權 至所有 API Proxy,這個角色的使用者可以使用 List API Proxy API,但無法使用 建立 API Proxy API。
  • 決定自訂角色中的使用者能在管理 UI 中查看和執行的操作。例如: API Proxy 的唯讀存取權會停用 API 的 +API Proxy 和刪除按鈕存取權 Proxy 頁面。

如要瞭解可供設定權限的資源和路徑,請參閱不同資源網址的 management API 參考資料

如需完整的參考資訊,請參閱使用者角色 API 角色管理

語法與優先順序

您可以使用星號萬用字元 (*) 表示「後方的所有內容」都指定在權限設定中 不過,如果您只針對父項資源 (例如 /developers) 設定權限,而沒有 設定任何更具體的權限 (例如 /developers/*) 所有資訊都由 /developers 和後續開發人員 提供

PUT 也會做為 POST 權限。

您可以混合使用一般和更精細的資源權限。更精細的設定 是否有權限重疊的情況舉例來說,假設 權限會在「developeradmin」上設定角色:

  • 插入 /開發人員
  • 前往 /developers/* 取得

也就是說,開發人員管理員可以執行以下操作:

  • 建立開發人員,但不更新任何特定開發人員或任何子實體 (因為 針對該路徑上更明確的 GET 權限)。
  • 取得任何開發人員或子實體,但看不到所有開發人員的清單。

請參閱權限參考資料,瞭解您可以透過 API 設定的完整權限清單。

建立名為「開發」的新自訂角色

建立「開發」角色,讓開發人員查看、建立及更新 API Proxy。

$ 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 構件群組設定的權限,例如所有 /應用程式、 /apis、/apiproducts 等) 以及個別構件 (例如特定應用程式、API Proxy 或 API 產品) 為 GET、PUT 和 DELETE。

GET 可讓使用者查看與 API Proxy 設定檔相關聯的任何 API,包括 API Proxy 設定檔 政策、JavaScript、XSLT 檔案等API 的 PUT 權限可讓開發人員 建立、修改、匯入、匯出、部署及取消部署 API Proxy。

路徑屬性會指定您在哪個構件設定權限。例如: /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 Proxy 和其中的內容 (包括政策等)

$ 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,包括設定檔和任何 API 以及相關政策、JavaScript、XSLT 檔案等只要將這項權限新增至 「testing」則能讓品質工程師查看 API 內容 進行測試。但是,這個角色的使用者無法建立、修改、匯入、匯出、部署 以及取消部署 API Proxy

$ 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; 是 Edge Management Server 的 IP 位址或 DNS 名稱。

將使用者新增至測試角色

如何利用使用者角色佈建使用者:

$ 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 Proxy 的服務。使用者應該要能查看 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 Proxy。要求 都會遭到 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"}'

將使用者新增至開發角色

現在使用「development」佈建使用者角色。

$ 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 Proxy。 要求都會成功,允許使用者建立 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