AIDE REST API 的驗證與授權
在使用 ONTAP REST API 和 AIDE 擴充功能之前、您應該瞭解驗證和授權選項。
ONTAP REST API 驗證選項
ONTAP REST API 支援兩種主要的驗證技術。
- 基本驗證
-
基本驗證是 HTTP 協定中定義的簡單技術。使用基本驗證,您需要在 API 呼叫的 Authorization 標頭中提供使用者名稱和密碼(組合後以 base64 編碼)。雖然不建議將其用於 AIDE REST API,但仍可用於現有的 ONTAP API 呼叫。
- OAuth 2.0 驗證
-
從 9.14.1 版本開始,ONTAP 也支援 OAuth 2.0。這是一種更安全、更靈活的身份驗證框架。使用 OAuth 2.0 時,您需要從外部身分提供者(IdP)請求存取令牌,並將其包含在每個 HTTP 請求中。
AI Data Engine 和 OpenID Connect
OpenID Connect(OIDC)基於 OAuth 2.0 構建,為使用者和應用程式身份驗證提供安全且標準化的選項。存取 AIDE 功能和相關資料運算節點服務需要 OIDC。在您"在 ONTAP 中為 AIDE 設定 OpenID Connect"之後,對 ONTAP System Manager 和內建 Swagger 頁面的存取將受到 OIDC 身份驗證的保護。
在 ONTAP System Manager 中設定 OIDC 時,OAuth 2.0 會自動啟用並建立一個 OAuth 2.0 用戶端。之後,您可以透過身分識別提供者(IdP)的 token_endpoint 取得存取權杖,該端點通常可以從 IdP 中繼資料 URI 中取得。存取權杖需要包含在 API 呼叫的 Authorization 標頭中,以便對 AIDE 資源進行身份驗證和授權存取。
ONTAP RBAC 實作的增強功能
對 AIDE REST API 的存取受到 ONTAP 基於角色的存取控制(RBAC)框架的保護。使用者必須在 ONTAP 中擁有對應的角色和權限才能存取 AIDE 資源並透過 REST API 執行操作。
還有兩個額外的 ONTAP 角色支援 AIDE。您的身分提供者(IdP)中定義的等效外部角色需要對應到這些 ONTAP 角色,才能提供對 AIDE 資源的必要存取。
|
|
除了新增的兩個 ONTAP 角色之外、您還需要將外部儲存管理員角色對應到現有的 ONTAP admin 角色。請參閱"AI Data Engine 元件和基於角色的互動"和"在 ONTAP 中為 AIDE 設定 OpenID Connect"以取得更多資訊。
|
- 資料工程師
-
這是為 AIDE Data Engineer 預先定義的 ONTAP 管理角色。它僅限制對執行 AIDE 資料工程任務所需的端點以及相應的 CLI 命令目錄的存取,包括處理工作區和資料集合、查看作業以及在允許的情況下使用檔案預覽。
- 資料科學家
-
這是為 AIDE Data Scientist 預先定義的第二個 ONTAP 管理角色。它同樣限制了對 AIDE Data Scientist 工作流程所需的 REST API 和對應 CLI 命令目錄的存取。
取得存取權杖
您需要取得存取權杖才能使用 REST API 呼叫。權杖要求是在 ONTAP 之外執行、確切的程序取決於授權伺服器及其組態。您可以透過網頁瀏覽器、使用 curl 命令或使用程式設計語言來要求權杖。為了說明目的、以下提供如何使用 curl 從 Microsoft Entra ID 要求存取權杖的範例。
請注意以下事項:
-
您必須"在 ONTAP 中為 AIDE 設定 OpenID Connect"擁有一個支援 AIDE 的叢集。
-
確定您的 IdP 的
token_endpoint,通常可透過 OIDC 元資料 URI 取得。 -
根據您的 IdP 找到組態的適當值,例如 CLIENT_ID。
-
TENANT_ID、CLIENT_ID 和 CLIENT_SECRET 等組態參數採用 UUID 格式。USERNAME 和 PASSWORD 為純文字憑證。
-
您也可以選擇在 Bash shell 中定義變數值,以便與 curl 指令一起使用。
-
在本機工作站的 CLI 發出下列命令,根據您的環境提供變數值:
curl --location "https://login.microsoftonline.com/$TENANT_ID/oauth2/v2.0/token" \ --header 'Content-Type: application/x-www-form-urlencoded' \ --data-urlencode "grant_type=password" \ --data-urlencode "client_id=$CLIENT_ID" \ --data-urlencode "client_secret=$CLIENT_SECRET" \ --data-urlencode "scope=$SCOPE/.default" \ --data-urlencode "username=$USERNAME" \ --data-urlencode "password=$PASSWORD" -
檢閱回應並擷取存取權杖,以便在 REST API 呼叫中使用。