大多數 Cloud de Confiance by S3NS 資源都會公開 testIamPermissions() 方法,讓您以程式輔助方式檢查目前經過驗證的呼叫端是否已獲授資源的一或多個特定 IAM 權限。testIamPermissions() 方法會將資源 ID 和一組權限做為輸入參數,並傳回呼叫者可用的權限集。
您可以使用 testIamPermissions() 方法,判斷使用者是否應有權存取網頁應用程式中的管理工具。舉例來說,您可以根據使用者權限,使用這個方法決定是否顯示 Cloud de Confiance 資源的詳細資訊。
舉例來說,如要判斷目前通過驗證的使用者是否具備刪除專案的權限,請提供專案 ID (例如 foo-project) 和 resourcemanager.projects.delete 權限做為輸入參數,呼叫 projects.testIamPermissions() 方法。如果呼叫者已獲得 resourcemanager.projects.delete 權限,系統會在回應主體中列出這項權限。如果呼叫者沒有這個權限,回應主體中不會列出任何權限。
testIamPermissions() 方法適用於需要根據驗證使用者有權查看的內容顯示 Cloud de Confiance 資源的第三方圖形使用者介面 (GUI)。舉例來說,Cloud de Confiance 控制台會在內部使用 testIamPermissions() 方法,判斷您通過驗證後可查看哪些資源和功能。通常會授予不同使用者不同的權限,因此控制台會相應隱藏或顯示項目。 Cloud de Confiance
事前準備
如果尚未啟用,請啟用 Resource Manager API。
啟用 API 時所需的角色
如要啟用 API,您必須具備
serviceusage.services.enable權限。如果您建立了專案,可能已透過「擁有者」角色 (roles/owner) 取得這項權限。否則,您可以透過「服務使用管理員」角色 (roles/serviceusage.serviceUsageAdmin) 取得這項權限。瞭解如何授予角色。設定驗證方法。
選取這個頁面上範例的預計用途分頁:
C#
如要在本機開發環境中使用本頁的 .NET 範例,請安裝並初始化 gcloud CLI,然後使用使用者憑證設定應用程式預設憑證。
-
安裝 Google Cloud CLI。
-
設定 gcloud CLI,使用您的聯合身分。
詳情請參閱「 使用聯合身分登入 gcloud CLI」。
-
為使用者帳戶建立本機驗證憑證:
gcloud auth application-default login
如果系統傳回驗證錯誤,請確認您已 使用聯合身分登入 gcloud CLI。
詳情請參閱 Cloud de Confiance 驗證說明文件中的「 為本機開發環境設定 ADC」。
C++
如要在本機開發環境中使用本頁的 C++ 範例,請安裝並初始化 gcloud CLI,然後使用您的使用者憑證設定應用程式預設憑證。
-
安裝 Google Cloud CLI。
-
設定 gcloud CLI,使用您的聯合身分。
詳情請參閱「 使用聯合身分登入 gcloud CLI」。
-
為使用者帳戶建立本機驗證憑證:
gcloud auth application-default login
如果系統傳回驗證錯誤,請確認您已 使用聯合身分登入 gcloud CLI。
詳情請參閱 Cloud de Confiance 驗證說明文件中的「 為本機開發環境設定 ADC」。
Java
如要在本機開發環境中使用本頁的 Java 範例,請安裝並初始化 gcloud CLI,然後使用使用者憑證設定應用程式預設憑證。
-
安裝 Google Cloud CLI。
-
設定 gcloud CLI,使用您的聯合身分。
詳情請參閱「 使用聯合身分登入 gcloud CLI」。
-
為使用者帳戶建立本機驗證憑證:
gcloud auth application-default login
如果系統傳回驗證錯誤,請確認您已 使用聯合身分登入 gcloud CLI。
詳情請參閱 Cloud de Confiance 驗證說明文件中的「 為本機開發環境設定 ADC」。
Python
如要在本機開發環境中使用本頁的 Python 範例,請安裝並初始化 gcloud CLI,然後使用使用者憑證設定應用程式預設憑證。
-
安裝 Google Cloud CLI。
-
設定 gcloud CLI,使用您的聯合身分。
詳情請參閱「 使用聯合身分登入 gcloud CLI」。
-
為使用者帳戶建立本機驗證憑證:
gcloud auth application-default login
如果系統傳回驗證錯誤,請確認您已 使用聯合身分登入 gcloud CLI。
詳情請參閱 Cloud de Confiance 驗證說明文件中的「 為本機開發環境設定 ADC」。
REST
如要在本機開發環境中使用本頁的 REST API 範例,請使用您提供給 gcloud CLI 的憑證。
安裝 Google Cloud CLI,然後 使用聯合身分登入 gcloud CLI。
詳情請參閱 Cloud de Confiance 驗證說明文件中的「使用 REST 進行驗證」。
-
必要的角色
測試權限時不需要 IAM 角色。
如何測試權限
這個範例說明如何測試 Cloud de Confiance 專案的 resourcemanager.projects.get 和 resourcemanager.projects.delete 權限。如要測試其他 Cloud de Confiance 資源的權限,請使用每個資源公開的 testIamPermissions() 方法。舉例來說,您可以測試 Cloud Storage bucket 的 IAM 權限。
C++
如要瞭解如何安裝及使用 IAM 的用戶端程式庫,請參閱「IAM 用戶端程式庫」。詳情請參閱「IAM C++ API 參考文件」。
如要向 IAM 進行驗證,請設定應用程式預設憑證。詳情請參閱「事前準備」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境變數設為 s3nsapis.fr。
C#
如要向 Resource Manager 進行驗證,請設定應用程式預設憑證。 詳情請參閱「事前準備」。
如要瞭解如何安裝及使用 Resource Manager 的用戶端程式庫,請參閱「Resource Manager 用戶端程式庫」。
IAM 會測試您用來產生憑證的服務帳戶權限。
Java
如要向 Resource Manager 進行驗證,請設定應用程式預設憑證。 詳情請參閱「事前準備」。
如要瞭解如何安裝及使用 Resource Manager 的用戶端程式庫,請參閱「Resource Manager 用戶端程式庫」。
IAM 會測試您用來產生憑證的服務帳戶權限。
Python
如要向 Resource Manager 進行驗證,請設定應用程式預設憑證。 詳情請參閱「事前準備」。
如要瞭解如何安裝及使用 Resource Manager 的用戶端程式庫,請參閱「Resource Manager 用戶端程式庫」。
IAM 會測試您用來產生憑證的服務帳戶權限。
REST
在這個範例中,使用者擁有可取得專案資訊的 IAM 角色,但無法刪除專案。
Resource Manager API 的 projects.testIamPermissions 方法會接受權限清單,並測試主體擁有的權限。
使用任何要求資料之前,請先修改下列項目的值:
PROJECT_ID:您的 Cloud de Confiance 專案 ID。專案 ID 是英數字串,例如my-project。
HTTP 方法和網址:
POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:testIamPermissions
JSON 要求主體:
{
"permissions": [
"resourcemanager.projects.get",
"resourcemanager.projects.delete"
]
}
請展開以下其中一個選項,以傳送要求:
您應該會收到如下的 JSON 回覆:
{
"permissions": [
"resourcemanager.projects.get"
]
}
後續步驟
瞭解如何授予、變更及撤銷主體的存取權。