設定外部身分提供者 (IdP) 身分驗證 - AWS DevOps 代理程式

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

設定外部身分提供者 (IdP) 身分驗證

外部身分提供者 (IdP) 身分驗證可讓您的組織使用現有的 OIDC 相容身分提供者,例如 Okta 或 Microsoft Entra ID,來管理使用者對 AWS DevOps Agent Space Web 應用程式的存取。使用者直接透過 IdP 使用其公司登入資料登入,而不需要 AWS IAM Identity Center。

先決條件

在設定外部 IdP 身分驗證之前,請確定您已:

  • OIDC 相容身分提供者 (Okta 或 Microsoft Entra ID)

  • 身分提供者的管理員存取權

  • 存取 AWS DevOps Agent 主控台的管理員許可

  • 已設定或準備建立的客服人員空間

運作方式

當您設定外部 IdP 身分驗證時:

  • 使用者導覽至 Agent Space Web 應用程式 URL

  • 它們會重新導向至您的身分提供者的登入頁面

  • 使用其公司登入資料進行驗證後,它們會重新導向回 Web 應用程式

  • Web 應用程式會交換身分驗證字符,以取得範圍為客服人員空間的短期 AWS 憑證

工作階段的有效期最長為 8 小時。登入資料會使用 OIDC 重新整理權杖自動重新整理,而不需要使用者重新驗證。

設定外部 IdP 身分驗證

步驟 1:在您的身分提供者中註冊應用程式

選擇您的身分提供者,並遵循對應的設定指示。

選項 A:Okta

  1. 在 Okta 管理員主控台中,導覽至應用程式 > 應用程式,然後選擇建立應用程式整合

  2. 選取 OIDC - OpenID Connect 做為登入方法,然後選取 Web 應用程式做為應用程式類型。選擇下一步

  3. 設定應用程式的描述性名稱 (例如 AWS DevOps Agent)

  4. 授予類型下,確保已檢查下列項目:

    • 授權碼 (預設)

    • 重新整理權杖 — 這是工作階段重新整理的必要項目。如果未啟用,使用者將無法維護工作階段。

注意

根據預設,Okta 不會啟用重新整理權杖授予類型。您必須明確啟用它。

  1. 登入重新導向 URIs 保留為目前預設值 - 您將在設定客服人員空間後進行更新

  2. 指派下,指派應具有存取權的使用者或群組

  3. 選擇儲存

  4. 在應用程式的一般索引標籤上,記下下列值:

    • 用戶端 ID

    • 用戶端秘密 — 選擇複製以安全地儲存此值

  5. 請注意您的 Okta 網域 — 這是您的發行者 URL (例如 https://dev-12345678.okta.com)。

注意

登入索引標籤上,確認發行者設定為 Okta URL (非動態)。這可確保穩定的發行者 URL。

注意

請勿將群組宣告新增至授權伺服器的宣告索引標籤中的 ID 字符。 AWS DevOps 代理程式不會使用來自 IdP 的群組成員資格。

選項 B:Microsoft Entra ID

  1. 在 Azure 入口網站中,導覽至 Microsoft Entra ID > 應用程式註冊 > 新註冊

  2. 設定描述性名稱 (例如 AWS DevOps Agent)

  3. 支援的 帳戶類型下,選取適合您組織的選項 (通常僅適用於此組織目錄中的帳戶)

  4. 現在將重新導向 URI 保留空白。選擇註冊

  5. 在應用程式概觀頁面上,記下下列值:

    • 應用程式 (用戶端) ID — 在設定客服人員空間時用作用戶端 ID

    • 目錄 (租戶) ID — 用來建構發行者 URL

  6. 導覽至憑證和秘密 > 新用戶端秘密

    • 設定描述和過期期間

    • 選擇新增並立即複製秘密 — 不會再次顯示

  7. Entra ID 的發行者 URL 遵循此格式。{tenant-id} 將 取代為步驟 5 中的目錄 (租戶) ID:

    • https://login.microsoftonline.com/{tenant-id}/v2.0

注意

請勿在權杖組態 中啟用群組選用宣告。 AWS DevOps 代理程式不會使用來自 IdP 的群組成員資格。

步驟 2:使用 IdP 身分驗證啟用 Operator App

  1. 在 AWS DevOps 代理程式主控台中,選取您的代理程式空間

  2. 前往存取索引標籤

  3. 使用者存取下,選擇外部身分提供者

  4. 在組態表單中,設定下列項目:

    • 身分提供者 — 選取您的身分提供者 (Okta 或 Microsoft Entra ID)

    • 發行者 URL — 來自您的身分提供者的 OIDC 發行者 URL

    • 用戶端 ID — 您建立之 OIDC 應用程式的用戶端 ID

    • 用戶端秘密 — 來自 OIDC 應用程式的用戶端秘密

  5. 身分提供者應用程式角色名稱下,選擇三個選項之一:

    • 自動建立新的 DevOps Agent 角色 (建議) — 建立具有適當許可的新服務角色

    • 指派現有角色 — 使用您已建立的現有 IAM 角色

    • 使用政策範本建立新的 DevOps 代理程式角色 — 使用提供的詳細資訊在 IAM 主控台中建立您自己的角色

  6. 檢閱表單底部顯示的回呼 URL 警告提醒。複製此 URL — 您需要將其新增至身分提供者允許的重新導向 URIs使用者才能登入。

  7. 選擇連線

選擇連線後,主控台會顯示外部身分提供者組態,其中包含下列詳細資訊:

  • 提供者 — 您選取的身分提供者

  • 發行者 URL — 設定的 OIDC 發行者 URL

  • 用戶端 ID — 設定的用戶端 ID

  • IAM 角色 ARN — 用於使用者存取的 IAM 角色

  • 回呼 URL — 在身分提供者中將此 URL 設定為允許的重新導向 URI

  • 登入 URL — 使用此 URL 透過您的身分提供者存取 Web 應用程式

步驟 3:將回呼 URL 新增至您的身分提供者

Okta

  1. 在 Okta 管理員主控台中,導覽至應用程式的一般索引標籤

  2. 登入下,選擇編輯

  3. 新增回呼 URL 做為登入重新導向 URI

    • https://{agentSpaceId}.aidevops.global.app.aws/authorizer/idp/callback

  4. (選用) 設定起始登入 URI 以從 Okta 儀表板啟用 IdP 起始的登入:

    • https://{agentSpaceId}.aidevops.global.app.aws/authorizer/idp/login

  5. (建議) 新增登出重新導向 URI,以在登出後將使用者重新導向回 Web 應用程式。如果沒有這樣做,使用者在登出時可能會看到錯誤頁面:

    • https://{agentSpaceId}.aidevops.global.app.aws/authorizer/welcome

  6. 選擇儲存

Microsoft Entra ID

  1. 在 Azure 入口網站中,導覽至應用程式的身分驗證頁面

  2. 平台組態下,選擇新增平台 > Web

  3. 輸入回呼 URL 做為重新導向 URI

    • https://{agentSpaceId}.aidevops.global.app.aws/authorizer/idp/callback

  4. (選用) 新增登出重新導向 URI,以在登出後將使用者重新導向回 Web 應用程式:

    • https://{agentSpaceId}.aidevops.global.app.aws/authorizer/welcome

  5. 選擇設定

步驟 4:驗證組態

  1. 導覽至主控台中顯示的登入 URL

    • https://{agentSpaceId}.aidevops.global.app.aws/authorizer/idp/login

  2. 您應該重新導向至身分提供者的登入頁面

  3. 使用您的公司登入資料登入

  4. 身分驗證成功後,系統會將您重新導向回 Agent Space Web 應用程式

更新 IdP 組態

您可以在不中斷連線的情況下輪換用戶端秘密:

  1. 在 AWS DevOps 代理程式主控台中,選取您的代理程式空間

  2. 前往存取索引標籤

  3. 外部身分提供者組態下,選擇輪換用戶端秘密

  4. 輸入新的用戶端秘密

  5. 選擇儲存

若要變更任何其他 IdP 組態欄位 (例如發行者 URL、用戶端 ID 或身分提供者),您必須中斷現有 IdP 的連線並設定新的 IdP。

使用者如何存取 Agent Space Web 應用程式

設定外部 IdP 身分驗證之後:

  • 與授權使用者共用 Agent Space Web 應用程式 URL

  • 當使用者導覽至 URL 時,他們會重新導向至您的身分提供者的登入頁面

  • 輸入登入資料 (以及完成由 IdP 設定的 MFA) 之後,系統會將其重新導向回 Agent Space Web 應用程式

  • 工作階段自動重新整理 — 如需詳細資訊,請參閱工作階段管理

工作階段管理

Agent Space Web 應用程式的外部 IdP 工作階段具有下列特性:

  • 工作階段持續時間 — 瀏覽器工作階段最多持續 8 小時。這無法設定 in AWS DevOps 代理程式。如果您的 IdP 工作階段存留期超過 8 小時,使用者可能會在下一次造訪時自動重新驗證,而無需輸入登入資料。根據組織的安全需求,設定 IdP 的工作階段和字符生命週期。

  • 登入資料重新整理 — 工作階段會使用 OIDC 重新整理權杖自動重新整理,而不需要使用者重新驗證

  • 多重要素驗證 — 在您的身分提供者中設定時支援。IdP 會在登入期間處理 MFA — 在 AWS DevOps 代理程式中不需要額外的組態

登出行為

當使用者在 Web 應用程式中按一下登出時:

  1. 所有工作階段 Cookie 都會立即清除

  2. 使用者會重新導向至身分提供者的 OIDC 登出端點,以終止 SSO 工作階段

  3. 如果已設定登出重新導向 URI,則會將使用者重新導向回 Web 應用程式歡迎頁面

撤銷使用者存取權

若要立即撤銷使用者的存取權,您可以直接在身分提供者的管理員入口網站中撤銷其工作階段:

  • Okta — 在 Okta 管理員主控台中,導覽至目錄 > 人員,選取使用者,選擇更多動作 > 清除使用者工作階段

  • Microsoft Entra ID — 在 Azure 入口網站中,導覽至使用者、選取使用者,然後選擇撤銷工作階段

安全考量

用戶端秘密儲存 — 如果您在建立客服人員空間時提供用戶端秘密,或在其他情況下提供服務擁有的金鑰,則您在設定期間提供的用戶端秘密會使用客戶受管 KMS 金鑰進行加密。它永遠不會在 API 回應中傳回,或在初始組態後顯示在主控台中。

用戶端秘密輪換 — Entra 用戶端秘密具有可設定的過期時間。設定提醒,使用 AWS DevOps 代理程式主控台中的輪換用戶端秘密選項,在秘密過期之前輪換秘密。如果秘密過期,使用者將無法登入,直到輪換為止。

權杖生命週期管理 — 身分提供者發出的權杖生命週期 (存取權杖、重新整理權杖) 由 IdP 的組態控制。我們建議您在 IdP 中設定適當的字符生命週期:

  • Okta — 在安全性 > API > 授權伺服器 > 存取政策下設定字符生命週期

  • Microsoft Entra ID — 使用權杖生命週期政策設定權杖生命週期

群組宣告 — 請勿在身分提供者的字符組態中啟用群組宣告。 AWS DevOps 代理程式目前不使用來自 IdP 的群組成員資格。

使用者識別符 — AWS DevOps 代理程式使用提供者特定的宣告來唯一識別使用者:

  • Okta — 使用來自 ID 字符的sub宣告

  • Microsoft Entra ID — 使用 ID 字符中的 oid(物件識別符) 宣告

這些識別符不可變,並出現在 CloudTrail 日誌中以供稽核之用。

中斷連接外部 IdP

  1. 在 AWS DevOps 代理程式主控台中,選取您的代理程式空間

  2. 前往存取索引標籤

  3. 使用者存取下,選擇中斷連線

  4. 檢閱確認對話方塊中列出的影響並確認

中斷連線將:

  • 從客服人員空間移除 IdP 組態

  • 防止使用者透過外部身分提供者登入

  • 移除與 IdP 使用者帳戶相關聯的個別聊天和成品歷史記錄

作用中的使用者工作階段會繼續,直到過期或下一次登入資料重新整理失敗為止。

疑難排解

  • 重新導向至 IdP 失敗 — 驗證發行者 URL 符合您 IdP 的 OIDC 探索端點。對於 Okta,請確保在登入索引標籤上將發行者設定為 Okta URL (非動態)。對於 Entra,請使用格式 https://login.microsoftonline.com/{tenant-id}/v2.0

  • 存取遭拒或政策錯誤 (Okta) — 確認使用者或其群組已指派給指派下的應用程式。檢查登入 > 登入政策規則。

  • 登入後的 IdP 組態錯誤 — 您的身分提供者未傳回重新整理字符。確保已啟用offline_access範圍和重新整理字符授予類型:

    • Okta — 前往您應用程式的一般索引標籤,並在授予類型下啟用重新整理權杖核取方塊

    • Entra — 前往 API 許可,並確保offline_access在委派許可下列出

  • 身分驗證成功,但 Web 應用程式顯示錯誤 — 驗證 IdP 中的重新導向 URI 完全符合 AWS DevOps 代理程式主控台中顯示的回呼 URL

  • 身分驗證失敗 — 如果已在 IdP 中啟用群組選用宣告,請將其停用。 AWS DevOps 代理程式不會使用群組宣告。

  • IdP 身分驗證後登入失敗 — 對於 Entra,驗證requestedAccessTokenVersion未在null應用程式資訊清單中設定為 。對於 Okta,驗證發行者 URL 是否正確。

  • 按一下登出 (Okta) 之後的錯誤頁面 — 如果您在登出後看到post_logout_redirect_uri錯誤,請在 Okta 應用程式的一般索引標籤中新增 https://{agentSpaceId}.aidevops.global.app.aws/authorizer/welcome做為登出重新導向 URI。

  • 使用者在登出後會停留在身分提供者頁面 (Entra) — 若要在登出後將使用者重新導向回 Web 應用程式,請在 Entra 應用程式的身分驗證頁面中新增 https://{agentSpaceId}.aidevops.global.app.aws/authorizer/welcome作為重新導向 URI。