本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
提出 API 請求
Amazon Verified Permissions 的查詢請求是使用 POST方法的 HTTP 或 HTTPS 請求。
已驗證的許可端點
端點是做為 Web 服務進入點的 URL。您可以在提出減少延遲的請求時,選取適當的 AWS 區域 端點。如需 Verified Permissions 所用端點的資訊,請參閱 中的 Amazon Verified PermissionsAmazon Web Services 一般參考。
請求參數
Amazon Verified Permissions 使用 JSON 型通訊協定。您可以在 HTTP 請求內文中以 JSON 形式傳遞請求參數。清單會以 JSON 陣列表示。如需詳細資訊,請參閱《Amazon Verified Permissions API 參考》中的常見參數。
請求識別符
在每個回應中, 會透過 x-amzn-RequestId HTTP 回應標頭 AWS 傳回請求 ID。此字串是 AWS 指派的唯一識別符,可提供追蹤資訊。雖然請求 ID 包含在每個回應中,但不會列在個別 API 文件頁面上,以改善可讀性並減少備援。
查詢 API 身分驗證
您可以透過 HTTPS 傳送查詢請求。您必須在每個查詢請求中包含簽章。如需建立和包含簽章的詳細資訊,請參閱《》中的簽署 AWS API 請求Amazon Web Services 一般參考。
可用程式庫
AWS 為偏好使用特定語言 APIs 而非命令列工具和查詢 API 建置應用程式的軟體開發人員提供程式庫、範例程式碼、教學課程和其他資源。這些程式庫提供基本函數 (不包含在 APIs中),例如請求身分驗證、請求重試和錯誤處理,以便更輕鬆地開始使用。Verified Permissions 程式庫和資源可用於下列語言和平台:
如需所有語言的程式庫和範本程式碼的詳細資訊,請參閱範例程式碼和程式庫。
使用 POST方法提出 API 請求
如果您不使用其中一個 AWS SDKs,則可以使用 請求方法透過 HTTPS 提出 Verified Permissions POST請求。POST 方法會要求您在請求的 標頭中指定 操作,並在請求內文中提供 JSON 格式的操作資料。
| 標頭名稱 | 標頭值 |
|---|---|
Host |
Amazon Verified Permissions 端點。例如: |
X-Amz-Date |
您必須提供 HTTP 日期標頭或 the AWS x-amz-date 標頭中的時間戳記。有些 HTTP 用戶端程式庫不允許您設定日期標頭。當 x-amz-date 標頭存在時,系統會在請求身分驗證期間忽略任何日期標頭。 x-amz-date 標頭必須以 ISO 8601 基本格式指定。例如: |
Authorization |
一組授權參數, AWS 用於確保請求的有效性和真實性。如需建構此標頭的詳細資訊,請參閱《》中的簽章第 4 版簽署程序Amazon Web Services 一般參考。 |
X-Amz-Target |
指定您要執行的 Verified Permissions 操作。
例如,若要呼叫
|
Content-Type |
指定輸入格式。使用下列值。
|
Accept |
指定回應格式。使用下列值。
|
Content-Length |
承載的大小,以位元組為單位。 |
Content-Encoding |
指定輸入和輸出的編碼格式。使用下列值。
|
以下是 HTTP 請求的範例標頭,可在 中傳回指定政策存放區中所有政策的清單 AWS 帳戶 ,其中 Principal參考User名為 的 alice。在此範例中,該Authorization行在此處以單字包裝,以便於閱讀。不要用單字將其包裝在實際請求中。
POST / HTTP/1.1 Host: verifiedpermissions.us-east-1.amazonaws.com X-Amz-Date: 20230101T200059Z Accept-Encoding: identity Content-Type: application/x-amz-json-1.0 X-Amz-Target: VerifiedPermissions.ListPolicies User-Agent: <UserAgentString> Authorization: AWS4-HMAC-SHA256 Credential=<Credential>, SignedHeaders=<Headers>, Signature=<Signature> Content-Length: <PayloadSizeBytes> { "PolicyStoreId": "PSExAmPLE222222222", "Filter": { "Principal": { "Id": { "EntityType": "User", "EntityId": "alice" } } } }