授權伺服器和存取權杖
授權伺服器會在 OAuth 2.0 授權架構中執行多項重要功能、做為中央元件。
OAuth 2.0 授權伺服器
授權伺服器主要負責建立和簽署存取權杖。這些權杖包含身分識別與授權資訊、可讓用戶端應用程式選擇性地存取受保護的資源。這些伺服器通常彼此隔離、可透過多種不同方式實作、包括獨立的專用伺服器、或是作為較大型的身分識別與存取管理產品的一部分。
授權伺服器有時會使用不同的術語、尤其是 OAuth 2.0 功能會封裝在較大的身分識別與存取管理產品或解決方案中。例如,術語 * 身分識別提供者( IDP ) * 經常與 * 授權伺服器 * 互換使用。 |
系統管理
除了發行存取權杖之外、授權伺服器也會提供相關的管理服務、通常是透過 Web 使用者介面。例如、您可以定義和管理:
-
使用者和使用者驗證
-
範圍
-
透過租戶和領域進行管理隔離
-
原則強制執行
-
連線至各種外部服務
-
支援其他身分識別傳輸協定(例如 SAML )
ONTAP 與符合 OAuth 2.0 標準的授權伺服器相容。
定義至 ONTAP
您需要定義一或多個 ONTAP 授權伺服器。ONTAP 會安全地與每部伺服器通訊、以驗證權杖、並執行其他相關工作來支援用戶端應用程式。
ONTAP 組態的主要層面如下所示。另請參閱 "OAuth 2.0 部署案例" 以取得更多資訊。
驗證存取權杖有兩個選項。
-
本機驗證
ONTAP 可以根據發行權杖的授權伺服器所提供的資訊、在本機驗證存取權杖。從授權伺服器擷取的資訊會由 ONTAP 快取、並定期重新整理。
-
遠端自我反思
您也可以使用遠端自我反思來驗證授權伺服器上的權杖。introspection 是一種允許授權方查詢授權伺服器有關存取權杖的通訊協定。它提供 ONTAP 從存取權杖擷取特定中繼資料並驗證權杖的方法。由於效能原因、 ONTAP 會快取部分資料。
ONTAP 可能位於防火牆後方。在這種情況下、您需要將 Proxy 識別為組態的一部分。
您可以使用任何管理介面(包括 CLI 、系統管理員或 REST API )來定義 ONTAP 的授權伺服器。例如、您可以使用 CLI 使用命令 security oauth2 client create
。
您最多可以定義八個授權伺服器到單一 ONTAP 叢集。只要發卡行或發卡行 / 受眾聲明是唯一的、同一授權伺服器就可以多次定義到同一個 ONTAP 叢集。例如、使用 Keycloak 時、使用不同領域時、這種情況永遠都會發生。
ONTAP 支援的 OAuth 2.0 功能
OAUTH 2.0 的支援最初隨 ONTAP 9 提供。 14.1 之後的版本將持續增強。ONTAP 支援的 OAuth 2.0 功能如下所述。
隨特定 ONTAP 版本推出的功能將會持續到未來的版本。 |
ONTAP 9.16.1.
ONTAP 9 。 16.1 擴充標準 OAuth 2.0 功能,以納入原生 Entra ID 群組的 Entra ID 專屬副檔名。這涉及在存取權杖中使用 GUID ,而非名稱。此外,此版本還新增外部角色對應支援,可利用存取權杖中的「角色」欄位,將原生身分識別提供者角色對應至 ONTAP 角色。
ONTAP 9.14.1.
從 ONTAP 9 。 14.1 開始,授權伺服器可透過下列標準 OAuth 2.0 功能來支援使用的應用程式:
-
OAuth 2.0 標準欄位包括「 iss 」,「 aud 」和「 exp 」,如和 "RFC 7519 : JSON Web Token ( JWT )"中所述 "RFC6749 : OAuth 2.0 授權架構"。這也支援透過存取權杖中的欄位來唯一識別使用者,例如「 UPN 」,「 AppID 」,「 Sub" ,「使用者名稱」或「 Preferred _UserName 」。
-
針對具有「群組」欄位的群組名稱,針對特定於供應商的 ADFS 副檔名。
-
Azure 廠商專屬的群組 UUID 延伸功能,並具有「群組」欄位。
-
使用 OAuth 2.0 存取權杖範圍內的獨立角色和具名角色來提供授權支援的 ONTAP 延伸功能。其中包括「範圍」和「 scp 」欄位,以及範圍內的群組名稱。
使用 OAuth 2.0 存取權杖
由授權伺服器發出的 OAuth 2.0 存取權杖是由 ONTAP 驗證、用於為 REST API 用戶端要求做出角色型存取決策。
取得存取權杖
您需要從定義至 ONTAP 叢集的授權伺服器取得存取權杖、以便在其中使用 REST API 。若要取得權杖、您必須直接聯絡授權伺服器。
ONTAP 不會核發存取權杖、也不會將用戶端的要求重新導向至授權伺服器。 |
您要求權杖的方式取決於多項因素、包括:
-
授權伺服器及其組態選項
-
OAuth 2.0 授與類型
-
用於發出要求的用戶端或軟體工具
授與類型
_Grant 是定義完善的程序、包括一組網路流量、用於要求及接收 OAuth 2.0 存取權杖。視用戶端、環境和安全性需求而定、可使用多種不同的授與類型。下表列出熱門的補助類型清單。
授與類型 | 說明 |
---|---|
用戶端認證 |
一種僅使用認證(例如 ID 和共用密碼)的常用授與類型。假設用戶端與資源擁有者有密切的信任關係。 |
密碼 |
資源擁有者密碼認證授與類型可用於資源擁有者與用戶端建立信任關係的情況。將舊版 HTTP 用戶端移轉至 OAuth 2.0 時、這項功能也很實用。 |
授權代碼 |
這是機密用戶端的理想授與類型、是以重新導向為基礎的流程為基礎。它可用於取得存取權杖和重新整理權杖。 |
JWT 內容
OAuth 2.0 存取權杖格式化為 JWT 。內容是由授權伺服器根據您的組態建立。不過、這些 Token 對用戶端應用程式來說是不透明的。用戶端沒有理由檢查權杖或是知道其內容。
每個 JWT 存取權杖都包含一組宣告。聲明說明發卡行的特性、以及根據授權伺服器的管理定義進行的授權。下表說明部分已登錄於標準的索賠。所有字串都區分大小寫。
請款 | 關鍵字 | 說明 |
---|---|---|
發卡行 |
ISS |
識別發出權杖的主體。請款處理是針對特定應用程式。 |
主旨 |
子 |
權杖的主旨或使用者。名稱的範圍是全域或本機唯一的。 |
目標對象 |
AUD |
權杖的目標收件者。以字串陣列形式實作。 |
過期 |
到期 |
權杖過期且必須拒絕的時間。 |
請參閱 "RFC 7519 : JSON Web Token" 以取得更多資訊。