搭配受信任的權杖發行者使用應用 - AWS IAM Identity Center

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

搭配受信任的權杖發行者使用應用

受信任的 AWS Token 發行者可讓您將受信任的身分傳播與在外部進行驗證的應用程式使用 透過受信任的 Token 發行者,您可以授權這些應用程式代表其使用者提出要求,以存取 AWS 受管理的應用程式。

下列主題說明受信任權杖發行者的運作方式,並提供設定指引。

受信任的權杖發行者

受信任的身分傳播提供了一種機制,可讓在外部進行驗證的 AWS 應用程式,以代表其使用者提出要求,並使用受信任的 Token 簽發者。受信任的令牌發行者是創建簽名令牌的 OAuth 2.0 授權服務器。這些權杖會授權啟動要求 (要求應用程式) 存取 AWS 服務 (接收應用程式) 的應用程式。要求應用程式會代表受信任 Token 簽發者驗證的使用者起始存取要求。受信任的權杖發行者和IAM身分識別中心都知道使用者。

AWS 接收要求的服務會根據 Identity Center 目錄中所示的使用者和群組成員資格來管理其資源的精細授權。 AWS 服務不能直接使用外部令牌發行者的令牌。

為了解決這個問題,IAMIdentity Center 為要求的應用程式或要求應用程式使用的 AWS 驅動程式提供了一種方法,以將受信任的權杖發行者所發行的權杖交換為 IAM Identity Center 產生的權杖。IAM身分識別中心所產生的權杖是指對應的IAM身分識別中心使用者。請求的應用程序或驅動程序使用新令牌來啟動對接收應用程序的請求。因為新的權杖會參考 IAM Identity Center 中的對應使用者,因此接收應用程式可以根據 I IAM dentity Center 中所表示的使用者或其群組成員資格來授權要求的存取權。

重要

選擇要新增為受信任權杖簽發者的 OAuth 2.0 授權伺服器是一項需要仔細考量的安全性決策。請只選擇您信任的受信任 Token 發行者,才能執行下列工作:

  • 驗證在權杖中指定的使用者。

  • 授權該使用者存取接收應用程式。

  • 產生一個權杖,讓IAM身分識別中心可以交換IAM身分識別中心建立的權杖。

受信任的權杖發行者的先決條件和考量

在設定受信任的權杖發行者之前,請先檢閱下列先決條件和考量事項。

  • 受信任的權杖發行者

    您必須配置 OAuth 2.0 授權服務器(受信任的令牌發行者)。雖然受信任的權杖發行者通常是您用來做為身分識別中心身分識別來源的IAM身分識別提供者,但不一定要這樣做。如需如何設定受信任 Token 簽發者的詳細資訊,請參閱相關身分識別提供者的說明文件。

    注意

    只要將受信任權杖簽發者中的每個使用者的身分對應至 IAM Identity Center 中的對應使用者,您最多可以設定 10 個受信任的權杖發行者以搭配 IAM Identity Center 使用。

  • 建立權杖的 OAuth 2.0 授權伺服器 (受信任的權杖發行者) 必須具有 OpenID Connect (OIDC) 探索端點,IAM身分識別中心可用來取得公開金鑰以驗證權杖簽章。如需詳細資訊,請參閱OIDC探索端點 URL (發行者URL)

  • 由受信任的令牌發行者發行的令牌

    來自受信任的令牌發行者的令牌必須滿足以下要求:

    • 該令牌必須使用RS256算法簽名並以 JSONWeb 令牌(JWT)格式進行簽名。

    • 令牌必須包含以下聲明:

      • 者(iss)— 發行令牌的實體。此值必須與受信任 Token 簽發者中OIDC探索端點 (簽發者URL) 中設定的值相符。

      • 主旨 (sub) — 已驗證的使用者。

      • 聽眾(AUD)— 令牌的預期接收者。這是將權杖交換為IAM身分識別中心的權杖之後存取的 AWS 服務。如需詳細資訊,請參閱澳元索賠

      • 到期時間 (exp) — 權杖到期之後的時間。

    • 令牌可以是身份令牌或訪問令牌。

    • 權杖必須具有可唯一對應至一個IAM身分識別中心使用者的屬性。

  • 可選索償

    IAM身分識別中心支援 RFC 7523 中定義的所有選擇性宣告。如需詳細資訊,請參閱第 3 節:JWT格式與處理要求RFC。

    例如,令牌可以包含 JTI(JWTID)聲明。如果存在,此聲明可以防止具有相同JTI的令牌被重用於令牌交換。如需JTI宣告的詳細資訊,請參閱JTI索償詳情

  • IAM身分識別中心組態可與受信任的權杖發行者搭配

    您也必須啟用 IAM Identity Center、設定 Identity Center 的身分IAM識別來源,以及佈建對應至受信任權杖簽發者目錄中之使用者的使用者的使用者。

    若要這麼做,您必須執行下列其中一項作業:

    • 使用系統進行跨網域IAM識別管理 (SCIM) 2.0 通訊協定,將使用者同步處理至身分識別中心。

    • 直接在IAM身分識別中心建立使用者。

    注意

    如果您使用 Active Directory 網域服務做為身分識別來源,則不支援受信任的權杖發行者。

JTI索償詳情

如果IAM身分識別中心收到交換IAM身分識別中心已交換之權杖的要求,則要求會失敗。要檢測並防止令牌交換中重用令牌,您可以包含JTI聲明。IAM身份中心根據令牌中的聲明防止令牌的重播。

並非所有 OAuth 2.0 授權服務器都向令牌添加JTI聲明。某些 OAuth 2.0 授權伺服器可能不允許您新增JTI為自訂宣告。OAuth2.0 支持使用JTI聲明的授權服務器可能會將此聲明添加到僅身份令牌,僅訪問令牌或兩者。如需詳細資訊,請參閱 OAuth 2.0 授權伺服器的文件。

如需建置交換權杖之應用程式的相關資訊,請參閱 IAM Identity Center API 文件。如需設定客戶管理應用程式以取得和交換正確 Token 的相關資訊,請參閱應用程式的文件。

受信任的權杖發行者組態

下列各節說明設定和使用受信任權杖簽發者所需的設定。

OIDC探索端點 URL (發行者URL)

將受信任的權杖簽發者新增至 IAM Identity Center 主控台時,您必須指定OIDC探索端點URL。這通URL常由它的相對來說URL,/.well-known/openid-configuration. 在IAM身分識別中心主控台中,URL這稱為簽者URL。

注意

您必須將探索端點URL的貼上直到和不貼上.well-known/openid-configuration。如果包含.well-known/openid-configuration在中URL,則受信任的權杖發行者組態將無法運作。由於 IAM Identity Center 不會驗證此問題URL,因此如果格式URL不正確,受信任的 Token 發行者設定將會失敗,恕不另行通知。

OIDC探索端點URL必須只能透過連接埠 80 和 430 連線。

IAM身分識別中心使用此功URL能來取得有關受信任權杖發行者的其他資訊 例如,IAMIdentity Center 會使用此資訊URL來取得驗證受信任權杖發行者所產生之權杖所需的資訊。當您將受信任的權杖簽發者新增至IAM身分識別中心時,您必須指定此項URL。要查找URL,請參閱您用於為應用程序生成令牌的 OAuth 2.0 授權服務器提供商的文檔,或直接聯繫提供商以獲取幫助。

屬性對應

屬性對應可讓 IAM Identity Center 將受信任權杖簽發者所發行之權杖中表示的使用者與IAM身分識別中心中的單一使用者進行比對。將受信任的權杖簽發者新增至IAM身分識別中心時,您必須指定屬性對應。此屬性對應會用於受信任憑證簽發者所產生之權杖中的宣告中。宣告中的值是用來搜尋IAM身分識別中心。搜尋會使用指定的屬性來擷取 IAM Identity Center 中的單一使用者,該使用者將在中做為使用者使用 AWS。您選擇的宣告必須對應至 IAM Identity Center 識別身分識別存放區中可用屬性的固定清單中的一個屬性。您可以選擇下列IAM身分識別中心身分識別存放區屬性之一:使用者名稱、電子郵件和外部識別碼。您在「IAM身分識別中心」中指定的屬性值對於每個使用者而言都必須是唯一的。

澳元索賠

aud 聲明標識了旨在使用令牌的對象(收件人)。當要求存取的應用程式透過未與 Identity Center 聯合的身分識別提供者進行驗證時,必須將該IAM身分識別提供者設定為受信任的 Token 簽發者。接收存取要求 (接收應用程式) 的應用程式必須將受信任的權杖發行者所產生的權杖交換為 IAM Identity Center 所產生的權杖。

有關如何在受信任的令牌發行者中註冊時獲取接收應用程序的 aud 聲明值的詳細信息,請參閱受信任的令牌發行者的文檔或聯繫受信任的令牌發行者管理員以獲取幫助。

設定受信任的權杖發行者

若要對 Identity Center 進行外部驗證的應用程式啟用受信任的IAM身分識別傳播,必須一或多個管理員設定受信任的權杖簽發者。受信任的令牌發行者是 OAuth 2.0 授權服務器,它向發起請求(請求應用程序)的應用程序發出令牌。權杖會授權這些應用程式代表其使用者對接收應用程式 ( AWS 服務) 發出要求。

協調管理角色和職責

在某些情況下,單一系統管理員可能會執行設定受信任 Token 簽發者的所有必要工作。如果有多個管理員執行這些工作,則需要密切協調。下表說明多個系統管理員如何協調設定受信任的 Token 簽發者,並將 AWS 服務設定為使用它。

注意

該應用程序可以是與 IAM Identity Center 集成並支持受信任身份傳播的任何 AWS 服務。

如需詳細資訊,請參閱設定受信任權杖簽發者的工作

角色 執行這些工作 與坐標
IAM識別中心管理員

將外部 IdP 做為受信任的權杖簽發者新增至IAM身分識別中心主控台。

協助設定IAM身分識別中心與外部 IdP 之間的正確屬性對應。

將受信任的 Token 簽發者新增至 IAM Identity Center 主控台時,通知 AWS 服務管理員。

外部 IdP(受信任的令牌發行者)管理員

AWS 服務管理員

外部 IdP(受信任的令牌發行者)管理員

設定外部 IdP 以發行權杖。

協助設定IAM身分識別中心與外部 IdP 之間的正確屬性對應。

提供對象名稱 (Ad 宣告) 給 AWS 服務管理員。

IAM識別中心管理員

AWS 服務管理員

AWS 服務管理員

檢查 AWS 服務主控台是否有受信任的 Token 簽發者。在 IAM Identity Center 系統管理員將受信任的權杖發行者新增至身分識別中心主控台後,便會在 AWS IAM服務主控台中看到。

將 AWS 服務設定為使用受信任的權杖簽發者。

IAM識別中心管理員

外部 IdP(受信任的令牌發行者)管理員

設定受信任權杖簽發者的工作

若要設定受信任的權杖簽發者,I IAM dentity Center 系統管理員、外部 IdP (受信任的權杖簽發者) 管理員和應用程式管理員必須完成下列工作。

注意

該應用程序可以是與 IAM Identity Center 集成並支持受信任身份傳播的任何 AWS 服務。

  1. 受信任的權杖簽發者新增至IAM身分識別中心 — IAM 身分識別中心管理員使用身分IAM識別中心主控台或新增受信任的權杖簽發者APIs。此配置需要指定以下內容:

    • 受信任權杖簽發者的名稱。

    • OIDC探索端點 URL (在IAM身分識別中心主控台中,URL這稱為簽者URL)。探索端點必須只能透過連接埠 80 和 443 連線。

    • 使用者查詢的屬性對應。此屬性對應會用於受信任憑證簽發者所產生之權杖中的宣告中。宣告中的值是用來搜尋IAM身分識別中心。搜尋會使用指定的屬性擷取IAM身分識別中心中的單一使用者。

  2. AWS 服務 Connect 至 IAM Identity Center — AWS 服務管理員必須使用應用程式或應用程式的主控台,將應用程式連線至 IAM Identity Center APIs。

    將受信任的 Token 簽發者新增至 IAM Identity Center 主控台後,它也會顯示在 AWS 服務主控台中,並可供 AWS 服務管理員選取。

  3. 配置令牌交換的使用 — 在 AWS 服務控制台中,服務管理員將 AWS 服務配 AWS 置為接受受信任的令牌發行者發行的令牌。這些令牌交換為IAM身份中心生成的令牌。這需要從步驟 1 指定受信任的令牌發行者的名稱,以及與 AWS 服務相對應的 Od 聲明值。

    受信任的令牌發行者將 Ad 聲明值放在其發行的令牌中,以指示令牌旨在供 AWS 服務使用。若要取得此值,請連絡受信任 Token 簽發者的系統管理員。

如何將受信任的權杖簽發者新增至IAM身分識別中心主控台

在具有多個管理員的組織中,此工作由IAM身分識別中心管理員執行。如果您是IAM身分識別中心管理員,則必須選擇要使用哪個外部 IdP 做為受信任的權杖簽發者。

將受信任的權杖簽發者新增至IAM身分識別中心主控台
  1. 開啟IAM身分識別中心主控台

  2. 選擇設定

  3. 在 [定] 頁面上,選擇 [驗證] 索引標籤。

  4. 在 [信任的權杖發行者] 底下,選擇 [建立受信任的權杖

  5. 在 [設定外部 IdP 以發行受信任的權杖] 頁面上,在 [受信任的權杖簽發者詳細資料] 下,執行下列動作:

    • 對於「OIDC發者」URL,指定將為受信任身分傳播發行 Token URL 的外部 IdP 的探索。您必須指定探索端點URL的直到和不使用.well-known/openid-configuration。外部 IdP 的管理員可以提供此URL功能。

      注意

      注意這URL必須符合針對受信任身分傳播所發行之權杖中的發行者 (iss) 宣告中的。URL

    • 對於受信任的權杖發行者名稱,請在 IAM Identity Center 和應用程式主控台中輸入識別此受信任權杖簽發者的名稱。

  6. 在「對應屬性」下,執行下列操作:

    • 對於身分識別提供者屬性,請從清單中選取要對應至IAM身分識別中心識別身分識別存放區中的屬性的屬性。

    • 對於「IAM身分識別中心」屬性,請選取屬性對應的對應屬性。

  7. 在「籤 (選用)」下,選擇「新增標籤」,為「機」指定值,並選擇性地為「值」指定

    如需標籤的相關資訊,請參閱標記 AWS IAM Identity Center 資源

  8. 選擇建立信任的權杖發行者。

  9. 完成建立受信任的 Token 簽發者之後,請連絡應用程式管理員,讓他們知道受信任的 Token 簽發者的名稱,以便他們可以確認受信任的 Token 簽發者在適用的主控台中可見。

  10. 應用程式管理員必須在適用的主控台中選取這個受信任的 Token 簽發者,才能讓使用者從為受信任識別傳播設定的應用程式存取應用程式。

如何在IAM身分識別中心主控台中檢視或編輯受信任的權杖發行者設定

將受信任的權杖簽發者新增至IAM身分識別中心主控台後,您可以檢視和編輯相關設定。

如果您打算編輯受信任的 Token 簽發者設定,請記住,這樣做可能會導致使用者失去設定為使用受信任 Token 簽發者之任何應用程式的存取權。為避免中斷使用者存取,建議您在編輯設定之前,針對設定為使用受信任 Token 簽發者的任何應用程式,先與系統管理員協調。

在IAM身分識別中心主控台中檢視或編輯受信任的權杖發行者設定
  1. 開啟IAM身分識別中心主控台

  2. 選擇設定

  3. 在 [定] 頁面上,選擇 [驗證] 索引標籤。

  4. 在「受信任的權杖發行者」下,選取您要檢視或編輯的受信任權杖發行者。

  5. 選擇動作,然後選擇編輯

  6. 在 [編輯受信任的權杖簽發者] 頁面上,視需要檢視或編輯設定。您可以編輯受信任的權杖簽發者名稱、屬性對應和標籤。

  7. 選擇 Save changes (儲存變更)。

  8. 在 [編輯受信任的權杖發行者] 對話方塊中,系統會提示您確認是否要進行變更。選擇確認

針對使用受信任 Token 簽發者的應用程式設定程序和要求流程

本節說明使用受信任 Token 簽發者進行信任身分傳播的應用程式的設定程序和要求流程。下圖提供此程序的概觀。

使用受信任的令牌發行者進行可信身份傳播的應用程序設置過程和請求

下列步驟提供有關此程序的其他資訊。

  1. 將IAM身分識別中心和接收 AWS 受管理的應用程式設定為使用受信任的權杖發行者。如需相關資訊,請參閱 設定受信任權杖簽發者的工作

  2. 當使用者開啟要求的應用程式時,要求流程便會開始。

  3. 要求的應用程式會向受信任的 Token 簽發者要求權杖,以啟動對接收 AWS 受管理應用程式的要求。如果用戶尚未通過身份驗證,則此過程將觸發身份驗證流程。令牌包含以下信息:

    • 使用者的主旨 (Sub)。

    • IAM身分識別中心用來在身分識別中心查詢對應使用者的IAM屬性。

    • 受眾 (Ad) 聲明,其中包含受信任的權杖發行者與接收 AWS 受管理應用程式建立關聯的值。如果有其他宣告,IAM身分識別中心不會使用這些宣告。

  4. 要求的應用程式或其使用的 AWS 驅動程式會將權杖傳遞至IAM身分識別中心,並要求將權杖交換為 IAM Identity Center 所產生的權杖。如果您使用 AWS 驅動程式,您可能需要針對此使用案例設定驅動程式。如需詳細資訊,請參閱相關 AWS 受管理應用程式的文件。

  5. IAM身分識別中心使用OIDC探索端點取得可用來驗證權杖真實性的公開金鑰。IAM身分識別中心接著會執行下列作業

    • 驗證權杖。

    • 搜尋身分識別中心目錄。若要這麼做,IAM身分識別中心會使用權杖中指定的對應屬性。

    • 驗證使用者是否有權存取接收應用程式。如果 AWS 受管理的應用程式設定為需要指派給使用者和群組,則使用者必須具有應用程式的直接或群組型指派,否則會拒絕要求。如果 AWS 受管理的應用程式設定為不需要使用者和群組指派,處理會繼續進行。

      注意

      AWS 服務具有預設設定組態,可決定使用者和群組是否需要指派。如果您計劃將這些應用程式與信任的識別傳播搭配使用,建議您不要修改這些應用程式的 [需要指派] 設定。即使您已設定可讓使用者存取特定應用程式資源的精細權限,修改 [需要指派] 設定也可能會導致未預期的行為,包括中斷使用者對這些資源的存取。

    • 驗證要求的應用程式是否已設定為針對接收 AWS 受管理的應用程式使用有效範圍。

  6. 如果先前的驗證步驟成功,IAM身分識別中心會建立新的權杖。新的 Token 是不透明的 (加密) 權杖,其中包含 Identity Center 中對應使用者的IAM身分、接收 AWS 受管理應用程式的對象 (Ad),以及要求應用程式在向接收受 AWS 管理的應用程式發出要求時可使用的範圍。

  7. 要求的應用程式或其使用的驅動程式會將資源要求啟動至接收應用程式,並將 IAM Identity Center 產生的權杖傳遞給接收應用程式。

  8. 接收應用程式呼叫 IAM Identity Center,以取得使用者的身分,以及在權杖中編碼的範圍。它也可能會發出要求,以從 Identity Center 目錄取得使用者屬性或使用者的群組成員資格。

  9. 接收應用程式會使用其授權組態來判斷使用者是否有權存取要求的應用程式資源。

  10. 如果使用者有權存取要求的應用程式資源,則接收應用程式會回應要求。

  11. 使用者的身分識別、代表他們執行的動作,以及接收應用程式記錄檔和事件中記錄的其他 CloudTrail事件。記錄此資訊的特定方式會根據應用程式而有所不同。