本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在中創建一個 OpenID Connect(OIDC)身份提供程序 IAM
IAMOIDC身分識別提供者IAM是描述支援 OpenID Connect
您可以使用 AWS Management Console、、適用於 Windows PowerShell 的工具或建立和管理IAMOIDC身分識別提供者IAMAPI。 AWS Command Line Interface
建立身IAMOIDC分識別提供者之後,您必須建立一或多個IAM角色。角色是一種身份 AWS ,其中沒有自己的憑據(就像用戶一樣)。但在此情況中,角色是以動態指派給聯合身分使用者,而該使用者由您組織的身分提供者 (IdP) 進行驗證。角色可允許您組織的 IdP 請求暫時性安全憑證以存取 AWS。指派給角色的原則會決定允許同盟使用者在中 AWS執行的動作。若要為第三方身分提供者建立角色,請參閱 建立第三方身分識別提供者 (同盟) 的角色。
重要
當您針對支援oidc-provider
資源的動作設定以身分識別為基礎的策略時,IAM會評估完整OIDC身分識別提供者URL,包括任何指定的路徑。如果您的OIDC身分識別提供者URL具有路徑,您必須在oidc-provider
ARN作為Resource
元素值中包含該路徑。您也可以選擇將正斜線和萬用字元 (/*
) 附加至URL網域,或在URL路徑中的任何一點使用萬用字元 (*
和?
)。如果要求URL中的OIDC身分識別提供者與原則Resource
元素中設定的值不符,則要求會失敗。
若要疑難排解同IAMOIDC盟的常見問題,請參閱解決與 AWS Re: POST 相關的錯誤
先決條件:驗證身分識別提供者的組態
您必須先從 IdP 取得下列資訊,才能建立IAMOIDC身分識別提供者。如需有關取得OIDC提供者組態資訊的詳細資訊,請參閱 IdP 的說明文件。
-
判斷您的OIDC身分提供者是否可公開使用URL。URL必須以 https://. Per the OIDC standard, path com Ponents 開頭是允許的,但不允許查詢參數。通常情況下,只URL包含一個主機名,例如 https://server.example.org or https://example.com。不URL應包含通訊埠號碼。
-
在OIDC身份提供者的末尾添加 /.well-知道/openid-配置,以查看提供商的公開可用配置文檔和元URL數據。您必須具有JSON格式的探索文件,其中包含可從 OpenID Connect 提供者探索端點擷取的提供者
組態文件和中繼資料URL。 -
確認提供者的組態資訊中包含下列值。如果您的 openid 配置缺少這些字段中的任何一個,則必須更新您的發現文檔。此程序可能會根據您的身分提供者而有所不同,因此請遵循 IdP 的說明文件來完成此任務。
-
發行者:URL適用於您的網域。
-
jwks_uri:IAM取得您公開金鑰的JSON網頁金鑰集 (JWKS) 端點。您的身分識別提供者必須在開放式設定中包含 JSON Web 金鑰集 (JWKS) 端點。這URI定義了從哪裡獲取用於驗證身份提供者簽名令牌的公鑰。
-
claims_support:有關使用者的資訊,可協助您確保 IdP 的OIDC驗證回應包含IAM原則中 AWS 用來檢查同盟使用者權限的必要屬性。如需可用於宣告的IAM條件索引鍵清單,請參閱聯合的 AWS OIDC可用金鑰。
-
aud:您必須確定 IdP 在 JSON Web 令牌中發布的受眾聲明值(JWTs)。受眾(aud)聲明是特定於應用程序的,並標識令牌的預期接收者。當您向 OpenID Connect 提供商註冊移動或 Web 應用程序時,他們會建立用於識別該應用程序的客戶端 ID。客戶端 ID 是您的應用程序的唯一標識符,在 aud 身份驗證聲明中傳遞。aud 聲明必須與建立IAMOIDC身分提供者時的「對象」值相符。
-
iat:聲明必須包含一個表
iat
示 ID 令牌發行時間的值。 -
iss:身URL份提供者的。URL必須以 https:// and should correspond to the Provider URL provided to IAM. Per the OIDC standard, path com Ponents 開頭是允許的,但不允許查詢參數。通常情況下,只URL包含一個主機名,例如 https://server.example.org or https://example.com。不URL應包含通訊埠號碼。
-
-
支持響應類型:id 令牌
-
支持的主題類型:公共
-
支援的 id 代碼簽署值:RS256
注意
您可以在下面的示例中包含諸如 custom 之類的其他聲明;但是, AWS STS 將忽略該聲明。
{ "issuer": "https://example-domain.com", "jwks_uri": "https://example-domain.com/jwks/keys", "claims_supported": [ "aud", "iat", "iss", "name", "sub", "custom" ], "response_types_supported": [ "id_token" ], "id_token_signing_alg_values_supported": [ "RS256" ], "subject_types_supported": [ "public" ] }
-
建立和管理提OIDC供者 (主控台)
請遵循下列指示,在中建立和管理IAMOIDC身分識別提供者 AWS Management Console。
重要
如果您使用的是 Google、Facebook 或 Amazon Cognito 的OIDC身分供應商,請勿使用此程序建立個別的IAM身分提供者。這些OIDC身分識別提供者已內建於, AWS 且可供您使用。請依照下列步驟為您的身分提供者建立新角色,請參閱 為 OpenID Connect 聯合建立角色 (主控台)。
若要建立IAMOIDC身分識別提供者 (主控台)
-
建立IAMOIDC身分識別提供者之前,您必須向 IdP 註冊您的應用程式,才能接收用戶端 ID。用戶端 ID (也稱為觀眾) 是您在向 IdP 註冊應用程式時向您發佈的應用程式的唯一識別符。如需有關取得用戶端 ID 的詳細資訊,請參閱文件以取得您的 IdP。
注意
AWS 使用我們的受信任根憑證授權單位程式庫 (IdPs) 來確保與OIDC身分識別提供者 (CAs) 的通訊安全,以驗證 JSON Web Key Set (JWKS) 端點的TLS憑證。如果您的 OIDC IdP 依賴的憑證不是由其中一個受信任的憑證所簽署CAs,那麼我們才會使用 IdP 組態中設定的指紋來保護通訊安全。 AWS 如果我們無法檢索TLS證書或需要 TLS v1.3 版,將退回指紋驗證。
在開啟IAM主控台https://console.aws.amazon.com/iam/
。 -
在導覽窗格中,請選擇 Identity providers (身分提供者),然後選擇 Add provider (新增提供者)。
-
對於 Configure provider (設定提供者),選擇 OpenID Connect (OpenID 連線)。
-
在提供者中URL,輸入 URL IdP 的。必URL須遵守以下限制:
-
URL是區分大小寫的。
-
必URL須以開始
https://
。 -
不URL應包含通訊埠號碼。
-
在您的內部 AWS 帳戶,每個IAMOIDC身分提供者都必須使用唯一的URL。如果您嘗試提交URL已在中用於 OpenID Connect 提供程序的提供程序 AWS 帳戶,則會收到錯誤信息。
-
-
對於「對象」,請輸入您在 IdP 中註冊並接收到的應用程式的用戶端 ID步驟 1,以及向其發出要 AWS求的應用程式。如果您有此 IdP 的其他用戶端 IDs (也稱為對象),您可以稍後在提供者詳細資訊頁面上新增它們。
注意
如果您的 IdP JWT 權杖包含
azp
宣告,請輸入此值作為「對象」值。如果您的OIDC身份提供者在令牌中同時設置
aud
和azp
聲明,則 AWS STS 將使用azp
聲明中的值作為aud
聲明。 -
(選擇性) 對於「新增標籤」,您可以新增金鑰與值配對,以協助您識別和組織您的. IdPs 您也可以使用標籤來控制對 AWS 資源的存取。若要進一步瞭解標記IAMOIDC身分識別提供者,請參閱標記 OpenID Connect(OIDC)身份提供商。選擇 Add tag (新增標籤)。輸入每個標籤鍵值組的值。
-
請確認您提供的資訊。完成後,請選擇 Add provider (新增提供者)。IAM將嘗試擷取並使用 OIDC IdP 伺服器憑證的最上層中繼 CA 指紋來建立IAMOIDC身分識別提供者。
注意
OIDC身分識別提供者的憑證鏈結必須先是網域或簽發者URL,然後是中繼憑證,並以根憑證結束。如果憑證鏈結順序不同或包含重複或其他憑證,則您會收到簽章不符錯誤,且STS無法驗證 JSON Web Token (JWT)。更正伺服器傳回之鏈結中憑證的順序,以解決錯誤。如需有關憑證鏈標準的詳細資訊,請參閱系列網站上的 RFC5246 中的認證清單
。RFC -
將IAM角色指派給您的身分識別提供者,以授與身分識別提供者所管理的外部使用者身分識別存取帳戶中 AWS 資源的權限。若要深入了解如何建立聯合身分角色,請參閱 建立第三方身分識別提供者 (同盟) 的角色。
注意
OIDC IdPs 在角色信任策略中使用的帳戶必須與信任它的角色位於相同的帳戶中。
新增或移除IAMOIDC身分識別提供者 (主控台) 的指紋
注意
AWS 使用我們的受信任根憑證授權單位程式庫 (IdPs) 來確保與OIDC身分識別提供者 (CAs) 的通訊安全,以驗證 JSON Web Key Set (JWKS) 端點的TLS憑證。如果您的 OIDC IdP 依賴的憑證不是由其中一個受信任的憑證所簽署CAs,那麼我們才會使用 IdP 組態中設定的指紋來保護通訊安全。 AWS 如果我們無法檢索TLS證書或需要 TLS v1.3 版,將退回指紋驗證。
在開啟IAM主控台https://console.aws.amazon.com/iam/
。 -
在導覽窗格中,請選擇 Identity providers (身分提供者)。然後選擇您要更新的IAM身分識別提供者的名稱。
-
選擇 [端點驗證] 索引標籤,然後在 [指紋] 區段中選擇 [管理]。若要輸入新的指紋值,請選擇 Add thumbprint 新增指紋。若要移除指紋,請選擇要移除的指紋旁的 Remove (移除)。
注意
IAMOIDC身分識別提供者必須至少有一個,且最多可以有五個指紋。
完成後,請選擇 Save changes (儲存變更)。
若要新增IAMOIDC身分識別提供者 (主控台) 的對象
-
在瀏覽窗格中,選擇身分識別提供者,然後選擇您要更新的IAM身分識別提供者名稱。
-
在 Audiences (對象) 區段中,選擇 Actions (動作) 並選取 Add audience (新增對象)。
-
輸入您向 IdP 註冊並接收到的應用程式的用戶端 ID步驟 1,該用戶端 ID 將向其發出要 AWS求。然後選擇 Add audiences (新增對象)。
注意
IAMOIDC身分識別提供者必須至少有一個,且最多可以有 100 個對象。
若要移除IAMOIDC身分識別提供者 (主控台) 的對象
-
在瀏覽窗格中,選擇身分識別提供者,然後選擇您要更新的IAM身分識別提供者名稱。
-
在 Audiences (對象) 區段中,選取您要移除之對象旁邊的選項按鈕,然後選取 Actions (動作)。
-
選擇 Remove audience (移除對象)。新的視窗將開啟。
-
如果您移除對象,與對象聯合的身分無法擔任與對象相關聯的角色。在視窗中,閱讀警告,並在欄位中輸入單字
remove
,確認您要移除對象。 -
選擇 Remove (移除) 以移除對象。
刪除IAMOIDC身分識別提供者 (主控台)
在開啟IAM主控台https://console.aws.amazon.com/iam/
。 -
在導覽窗格中,請選擇 Identity providers (身分提供者)。
-
選取您要刪除的IAM身分識別提供者旁邊的核取方塊。新的視窗將開啟。
-
在欄位中輸入單字
delete
,確認您要刪除提供者。再選擇 Delete (刪除)。
建立及管理IAMOIDC身分識別提供者 (AWS CLI)
您可以使用下列 AWS CLI 命令來建立和管理IAMOIDC身分識別提供者。
若要建立IAMOIDC身分識別提供者 (AWS CLI)
-
(選擇性) 若要取得 AWS 帳戶中所有IAMOIDC身分識別提供者的清單,請執行下列命令:
-
若要建立新的IAMOIDC身分識別提供者,請執行下列命令:
更新現有IAMOIDC身分識別提供者的伺服器憑證指紋清單 ()AWS CLI
-
若要更新IAMOIDC身分識別提供者的伺服器憑證指紋清單,請執行下列命令:
標記現有IAMOIDC身分識別提供者 (AWS CLI)
-
若要標記現有的IAMOIDC身分識別提供者,請執行下列命令:
若要列出現有IAMOIDC身分識別提供者的標籤 (AWS CLI)
-
若要列出現有IAMOIDC身分識別提供者的標籤,請執行下列命令:
若要移除IAMOIDC身分識別提供者上的標籤 (AWS CLI)
-
若要移除現有IAMOIDC身分識別提供者的標籤,請執行下列命令:
若要從現有IAMOIDC身分識別提供者新增或移除用戶端 ID (AWS CLI)
-
(選擇性) 若要取得 AWS 帳戶中所有IAMOIDC身分識別提供者的清單,請執行下列命令:
-
(選擇性) 若要取得IAMOIDC身分識別提供者的詳細資訊,請執行下列命令:
-
若要將新的用戶端 ID 新增至現有的IAMOIDC身分識別提供者,請執行下列命令:
-
若要從現有IAMOIDC身分識別提供者移除用戶端,請執行下列命令:
若要刪除IAMOIDC身分識別提供者 (AWS CLI)
-
(選擇性) 若要取得 AWS 帳戶中所有IAMOIDC身分識別提供者的清單,請執行下列命令:
-
(選擇性) 若要取得IAMOIDC身分識別提供者的詳細資訊,請執行下列命令:
-
若要刪除IAMOIDC身分識別提供者,請執行下列命令:
建立及管理OIDC身分識別提供者 (AWS API)
您可以使用下列IAMAPI命令來建立和管理OIDC提供者。
若要建立IAMOIDC身分識別提供者 (AWS API)
-
(選用) 若要取得 AWS 帳戶中所有IAMOIDC身分識別提供者的清單,請呼叫下列作業:
-
若要建立新的IAMOIDC身分識別提供者,請呼叫下列作業:
更新現有IAMOIDC身分識別提供者的伺服器憑證指紋清單 ()AWS API
-
若要更新IAMOIDC身分識別提供者的伺服器憑證指紋清單,請呼叫下列作業:
標記現有IAMOIDC身分識別提供者 (AWS API)
-
若要標記現有的IAMOIDC身分識別提供者,請呼叫下列作業:
若要列出現有IAMOIDC身分識別提供者的標籤 (AWS API)
-
若要列出現有IAMOIDC身分識別提供者的標籤,請呼叫下列作業:
若要移除現有IAMOIDC身分識別提供者上的標籤 (AWS API)
-
若要移除現有IAMOIDC身分識別提供者的標籤,請呼叫下列作業:
若要從現有IAMOIDC身分識別提供者新增或移除用戶端 ID (AWS API)
-
(選用) 若要取得 AWS 帳戶中所有IAMOIDC身分識別提供者的清單,請呼叫下列作業:
-
(選擇性) 若要取得IAMOIDC身分識別提供者的詳細資訊,請呼叫下列作業:
-
若要將新的用戶端 ID 新增至現有的IAMOIDC身分識別提供者,請呼叫下列作業:
-
若要從現有IAMOIDC身分識別提供者移除用戶端 ID,請呼叫下列作業:
若要刪除IAMOIDC身分識別提供者 (AWS API)
-
(選用) 若要取得 AWS 帳戶中所有IAMOIDC身分識別提供者的清單,請呼叫下列作業:
-
(選擇性) 若要取得IAMOIDC身分識別提供者的詳細資訊,請呼叫下列作業:
-
若要刪除IAMOIDC身分識別提供者,請呼叫下列作業: