對 2.0 SAML 和 OAuth 2.0 應用程式的單一登入存取 - AWS IAM Identity Center

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

對 2.0 SAML 和 OAuth 2.0 應用程式的單一登入存取

IAM Identity Center 可讓您為使用者提供 2.0 或 SAML OAuth2.0 應用程式的單一登入存取。下列主題提供 2.0 SAML 和 2.0 OAuth 的高階概觀。

SAML 2.0

SAML 2.0 是產業標準,用於在SAML授權機構 (稱為身分提供者或 IdP) 與 2.0 SAML 消費者 (稱為服務提供者或 SP) 之間安全地交換有關使用者資訊的SAML聲明。 IAMIdentity Center 會使用此資訊為有權在存取入口網站內使用應用程式的使用者提供聯合單一登入 AWS 存取。

OAuth 2.0

OAuth 2.0 是一種通訊協定,可讓應用程式安全地存取和共用使用者資料,而無需共用密碼。此功能為使用者提供安全且標準化的方式,以允許應用程式存取其資源。不同的 OAuth 2.0 授予流程可促進存取。

IAM Identity Center 可讓在公有用戶端上執行的應用程式擷取臨時憑證,以透過程式設計方式代表其使用者存取 AWS 帳戶 和服務。公有用戶端通常是桌上型電腦、筆記型電腦或其他行動裝置,用於在本機執行應用程式。在公有用戶端上執行的應用程式範例 AWS 包括 AWS Command Line Interface (AWS CLI) AWS 工具組、 和 AWS 軟體開發套件 (SDKs)。為了讓這些應用程式能夠取得登入資料, IAM Identity Center OAuth 支援以下 2.0 流程的部分:

  • 使用 Code Exchange 的驗證金鑰進行授權碼授予 (PKCE) (RFC 6749RFC 7636)

  • 裝置授權授予 (RFC 8628)

注意

這些授予類型只能與支援此功能 AWS 服務 的 搭配使用。這些服務可能不會在所有 中支援此授予類型 AWS 區域。請參閱有關 AWS 服務 區域差異的文件。

OpenID Connect (OIDC) 是一種以 OAuth 2.0 架構為基礎的身分驗證通訊協定。 OIDC指定如何使用 OAuth 2.0 進行身分驗證。透過 IAM Identity Center OIDC服務 APIs,應用程式會註冊 OAuth 2.0 用戶端,並使用其中一個流程來取得存取字符,以提供受 IAM Identity Center 保護的 許可APIs。應用程式會指定存取範圍來宣告其預期的API使用者。身為 IAM Identity Center 管理員,當您設定您的身分來源後,如果應用程式最終使用者尚未完成登入程序,則必須完成。您的最終使用者接著必須提供其同意,以允許應用程式API撥打電話。這些API呼叫是使用使用者的許可進行。作為回應,IAMIdentity Center 會將存取字符傳回給應用程式,其中包含使用者同意的存取範圍。

使用 OAuth 2.0 授予流程

OAuth 2.0 授予流程只能透過支援流程的 AWS 受管應用程式使用。若要使用 OAuth 2.0 流程,您的 IAM Identity Center 執行個體和您使用的任何受支援 AWS 受管應用程式都必須部署在單一 中 AWS 區域。請參閱每個 的文件 AWS 服務 ,以判斷 AWS 受管應用程式的區域可用性,以及您要使用的 IAM Identity Center 執行個體。

若要使用使用 2.0 OAuth 流程的應用程式,最終使用者必須輸入應用程式將在URL其中與您的 IAM Identity Center 執行個體連線和註冊的 。視應用程式而定,身為管理員,您必須提供使用者AWS 存取入口網站URL或 IAM Identity Center 執行個體的發行者URL。您可以在 IAM Identity Center 主控台設定頁面上找到這兩個設定。如需有關設定用戶端應用程式的其他資訊,請參閱該應用程式的文件。

登入應用程式並提供同意的最終使用者體驗取決於應用程式是否使用 使用 授權碼授予 PKCE裝置授權授予

使用 授權碼授予 PKCE

此流程由在具有瀏覽器的裝置上執行的應用程式使用。

  1. 瀏覽器視窗隨即開啟。

  2. 如果使用者尚未進行身分驗證,瀏覽器會將他們重新導向以完成使用者身分驗證。

  3. 身分驗證後,使用者會出現同意畫面,顯示下列資訊:

    • 應用程式的名稱

    • 應用程式請求同意使用的存取範圍

  4. 使用者可以取消同意程序,也可以提供其同意,而應用程式會根據使用者的許可繼續存取。

裝置授權授予

此流程可供在具有或沒有瀏覽器的裝置上執行的應用程式使用。當應用程式啟動流程時,應用程式會顯示使用者必須在流程稍後驗證的 URL和使用者程式碼。使用者程式碼是必要的,因為啟動流程的應用程式可能在與使用者提供同意的裝置不同的裝置上執行。此程式碼可確保使用者同意他們在其他裝置上啟動的流程。

  1. 當流程從具有瀏覽器的裝置啟動時,瀏覽器視窗會開啟。當流程從沒有瀏覽器的裝置啟動時,使用者必須在不同的裝置上開啟瀏覽器,並前往URL應用程式顯示的 。

  2. 在任何一種情況下,如果使用者尚未驗證,瀏覽器都會重新導向他們以完成使用者身分驗證。

  3. 身分驗證後,使用者會出現同意畫面,顯示下列資訊:

    • 應用程式的名稱

    • 應用程式請求同意使用的存取範圍

    • 應用程式呈現給使用者的使用者程式碼

  4. 使用者可以取消同意程序,也可以提供其同意,而應用程式會根據使用者的許可繼續存取。

存取範圍

範圍定義可透過 2.0 OAuth 流程存取的服務存取。範圍是服務的一種方式,也稱為資源伺服器,用於將與動作和服務資源相關的許可分組,並指定 2.0 OAuth 用戶端可以請求的粗粒操作。當 OAuth 2.0 用戶端向 IAM Identity Center OIDC服務註冊時,用戶端會指定宣告其預期動作的範圍,使用者必須提供其同意。

OAuth 2.0 用戶端使用 2.0 (RFC 6749) 第 OAuth 3.3 節中定義的scope值,指定要為存取字符請求哪些許可。請求存取權杖時,用戶端最多可以指定 25 個範圍。當使用者在授權碼授予 PKCE或 裝置授權授予流程中提供同意時, IAM Identity Center 會將範圍編碼為傳回的存取權杖。

AWS 會將範圍新增至支援 的 IAM Identity Center AWS 服務。下表列出 IAM Identity Center OIDC服務在您註冊公有用戶端時支援的範圍。

註冊公有用戶端時 IAM Identity Center OIDC服務支援的存取範圍

範圍 描述 支援的服務
sso:account:access 存取 IAM Identity Center 受管帳戶和許可集。 IAM 身分中心
codewhisperer:analysis 啟用對 Amazon Q Developer 程式碼分析的存取。 AWS 建構家 ID 和 IAM 身分中心
codewhisperer:completions 啟用對 Amazon Q 內嵌程式碼建議的存取。 AWS 建構家 ID 和 IAM 身分中心
codewhisperer:conversations 啟用對 Amazon Q 聊天的存取。 AWS 建構家 ID 和 IAM 身分中心
codewhisperer:taskassist 啟用存取 Amazon Q 開發人員代理程式以進行軟體開發。 AWS 建構家 ID 和 IAM 身分中心
codewhisperer:transformations 啟用存取 Amazon Q 開發人員代理程式以進行程式碼轉換。 AWS 建構家 ID 和 IAM 身分中心
codecatalyst:read_write 讀取和寫入 Amazon CodeCatalyst 資源,允許存取所有現有的資源。 AWS 建構家 ID 和 IAM 身分中心