下列各節將討論 Microsoft Identity Manager (MIM) Privileged Access Management (PAM) REST API 的詳細數據。
HTTP 要求標頭
傳送至 API 的 HTTP 要求應包含下列標頭(此列表並不詳盡):
頁首 | 說明 |
---|---|
授權 | 必須的。 內容依賴於驗證方法,這種方法是可設定的,可以基於 WIA(Windows 整合式驗證)或 ADFS。 |
內容-類型 | 如果要求具有主體,則為必要項。 必須設定為 application/json 。 |
內容長度 | 如果請求有內容,則為必需項。 |
餅乾 | 會話 Cookie。 驗證方法而定,可能需要。 |
HTTP 回應標頭
HTTP 回應應包含下列標頭(此列表不完整):
頁首 | 說明 |
---|---|
內容-類型 | API 一律會傳回 application/json 。 |
內容長度 | 如果存在,要求主體的長度會以位元組為單位。 |
版本控制
API 的目前版本為 1。
API 版本可以透過要求 URL 中的查詢參數來指定,如下列範例所示: http://localhost:8086/api/pamresources/pamrequests?v=1
如果未在要求中指定版本,則會針對最近發行的 API 版本執行要求。
安全
存取 API 需要整合式 Windows 驗證 (IWA)。 這應該在 IIS 中手動設定,才能安裝 Microsoft Identity Manager (MIM)。
支援 HTTPS (TLS),但應該在 IIS 中手動設定。 如需詳細資訊,請參閱《安裝 FIM 2010 R2 測試實驗室指南》的〈步驟 9:執行 FIM 2010 R2 安裝後工作〉,其中的〈為 FIM 入口網站實作安全套接字層 (SSL)〉。
您可以在 Visual Studio 命令提示字元執行下列命令,以產生新的 SSL 伺服器憑證:
Makecert -r -pe -n CN="test.cwap.com" -b 05/10/2014 -e 12/22/2048 -eku 1.3.6.1.5.5.7.3.1 -ss my -sr localmachine -sky exchange -sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12
命令會建立自我簽署憑證,可用來測試在URL為 test.cwap.com
之網頁伺服器上使用 SSL 的 Web 應用程式。 選項所 -eku
定義的 OID 會將憑證識別為 SSL 伺服器證書。 憑證會儲存在 我的 存放區中,而且可在計算機層級取得。 您可以從 mmc.exe中的 [憑證] 管理單元匯出憑證。
跨網域存取 (CORS)
支援 CORS,但應該在 IIS 中手動設定。 將下列元素新增至已部署的 API web.config 檔案,以設定 API 以允許跨網域呼叫:
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Credentials" value="true" />
<add name="Access-Control-Allow-Headers" value="content-type" />
<add name="Access-Control-Allow-Origin" value="http://<hostname>:8090" />
</customHeaders>
</httpProtocol>
</system.webServer>
錯誤處理
API 會傳回 HTTP 錯誤回應,以指出錯誤狀況。 錯誤符合 OData 規範。 下表顯示可能傳回給客戶端的錯誤碼:
HTTP 狀態代碼 | 說明 |
---|---|
401 | 未經授權 |
403 | 禁止 |
408 | 要求逾時 |
500 | 內部伺服器錯誤 |
503 | 服務無法使用 |
篩選
PAM REST API 要求可以包含篩選條件,以指定應該包含在回應中的屬性。 篩選語法是以 OData 運算式為基礎。
篩選可以指定 PAM 要求、PAM 角色的任何屬性。 或待處理的 PAM 要求。 例如: ExpirationTime、 DisplayName 或任何其他 PAM 要求、PAM 角色或擱置要求的有效屬性。
API 支援篩選表達式中的下列運算符:And、Equal、NotEqual、GreaterThan、LessThan、GreaterThenOrEqueal 和 LessThanOrEqual。
下列範例要求包括篩選:
此要求會傳回特定日期之間的所有 PAM 要求:
http://localhost:8086/api/pamresources/pamrequests?$filter=ExpirationTime gt datetime'2015-01-09T08:26:49.721Z' and ExpirationTime lt datetime'2015-02-10T08:26:49.722Z'
此要求會傳回顯示名稱為「SQL File Access」的 Pam 角色:
http://localhost:8086/api/pamresources/pamroles?$filter=DisplayName eq 'SQL File Access'