設定 SAML - Amazon AppStream 2.0

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

設定 SAML

若要讓使用者使用現有的憑證登入 AppStream 2.0,並開始串流應用程式,您可以使用 2.0 SAML 設定身分聯合。若要這麼做,請使用IAM角色和轉送狀態URL來設定符合 SAML 2.0 標準的身分提供者 IdP),並啟用 AWS 以允許聯合使用者存取 AppStream 2.0 堆疊。此IAM角色會授予使用者存取堆疊的許可。轉送狀態是一種堆疊入口網站,當 AWS成功驗證之後,即會將使用者轉送到該處。

必要條件

在設定 2.0 SAML 連線之前,請先完成下列先決條件。

  1. 設定SAML以 為基礎的 IdP,以與 建立信任關係 AWS。

    • 在組織的網路中,設定您的身分存放區以使用 SAML型 IdP 。如需組態資源,請參閱AppStream 2.0 與 2.0 SAML 整合

    • 使用 SAML型 IdP 來產生和下載聯合中繼資料文件,將組織描述為 IdP 此簽署XML的文件用於建立依賴方信任。將此檔案儲存至稍後可以從IAM主控台存取的位置。

  2. 使用 AppStream 2.0 管理主控台建立 AppStream 2.0 堆疊。您需要堆疊名稱來建立IAM政策,以及設定與 AppStream 2.0 的 IdP 整合,如本主題稍後所述。

    您可以使用 AppStream 2.0 管理主控台、 AWS CLI或 AppStream 2API.0 建立 AppStream 2.0 堆疊。如需詳細資訊,請參閱建立 Amazon AppStream 2.0 機群和堆疊

步驟 1:在 中建立SAML身分提供者 AWS IAM

首先,在 中建立 SAML IdP AWS IAM。此 IdP 使用組織中 IdP 軟體產生的中繼資料文件來定義組織的 IdP 信任AWS 關係。如需詳細資訊,請參閱 IAM 使用者指南 中的建立和管理SAML身分提供者 (Amazon Web Services 管理主控台)。如需SAML IdPs 在 AWS GovCloud (US) 區域中使用 的相關資訊,請參閱 AWS GovCloud (US) 使用者指南 中的AWS 身分和存取管理

步驟 2:建立 SAML 2.0 聯合IAM角色

接下來,建立 SAML 2.0 聯合IAM角色。此步驟會在 IAM與組織的 IdP 之間建立信任關係,這會將 IdP 識別為聯合的受信任實體。

為 IdP SAML 建立IAM角色
  1. 在 開啟IAM主控台https://console.aws.amazon.com/iam/

  2. 在導覽窗格中,選擇 Roles (角色)、Create role (建立新角色)。

  3. 針對角色類型 ,選擇 SAML 2.0 聯合。

  4. 針對SAML提供者 ,選取您建立的 SAML IdP。

    重要

    請勿選擇兩種 SAML 2.0 存取方法之一 (僅允許程式設計存取允許程式設計和 Amazon Web Services 管理主控台存取 )。

  5. 針對屬性 ,選擇 SAML:aud

  6. 針對數值,輸入 https://signin.aws.amazon.com/saml。此值限制角色對SAML使用者串流請求的存取,其中包含具有持久值SAML的主題類型宣告。如果 SAML:sub_type 持續存在,您的 IdP 會在來自特定使用者的所有SAML請求中,為 NameID 元素傳送相同的唯一值。如需 SAML:sub_type 宣告的詳細資訊,請參閱使用 SAML型聯合存取 中的以 為基礎的聯合中唯一識別使用者一節。 SAML API AWS

  7. 檢閱您的 SAML 2.0 信任資訊,確認正確的受信任實體和條件,然後選擇下一步:許可。

  8. Attach permissions policies (連接許可政策) 頁面上,選擇 Next: Tags (下一步:標籤)

  9. (選用) 為您要新增的每個標籤輸入索引鍵和值。如需詳細資訊,請參閱標記IAM使用者和角色。

  10. 完成後,請選擇 Next: Review (下一步:檢閱)。您稍後將為此角色建立並嵌入內嵌政策。

  11. 針對角色名稱,輸入可識別此角色用途的名稱。因為有多個實體可能會參考此角色,所以建立角色後,您就無法編輯其名稱。

  12. (選用) 在 Role description (角色說明) 中,輸入新角色的說明。

  13. 檢閱角色詳細資訊,並選擇 Create role (建立角色)

  14. (選用) 如果您計劃使用第三方 2.0 SAML 身分提供者或憑證型身分驗證來使用工作階段內容或屬性型應用程式權限,則必須將 sts:TagSession permission 新增至新IAM角色的信任政策。如需詳細資訊,請參閱 使用第三方 2.0 Identity Provider SAML 的屬性型應用程式權限在 AWS STS中傳入工作階段標籤

    在新IAM角色的詳細資訊中,選擇信任關係索引標籤,然後選擇編輯信任關係。「編輯信任關係」政策編輯器隨即啟動。新增 sts:TagSession 許可,如下所示:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "arn:aws:iam::ACCOUNT-ID-WITHOUT-HYPHENS:saml-provider/IDENTITY-PROVIDER" }, "Action": [ "sts:AssumeRoleWithSAML", "sts:TagSession" ], "Condition": { "StringEquals": { "SAML:sub_type": "persistent" } } } ] }

    Replace (取代) IDENTITY-PROVIDER 使用您在步驟 SAML 1 中建立的 IdP 名稱。然後選擇更新信任政策

步驟 3:內嵌IAM角色的內嵌政策

接下來,為您建立的角色內嵌內嵌IAM政策。嵌入內嵌政策時,該政策中的許可不得意外附加至錯誤的主體實體。內嵌政策可讓聯合使用者存取您建立的 AppStream 2.0 堆疊。

  1. 在您建立IAM的角色詳細資訊中,選擇許可索引標籤,然後選擇新增內嵌政策 。建立政策精靈隨即啟動。

  2. 建立政策 中,選擇 JSON 索引標籤。

  3. 將下列JSON政策複製並貼到 JSON 視窗中。然後,透過輸入您的 AWS 區域 程式碼、帳戶 ID 和堆疊名稱來修改資源。在下列政策中, "Action": "appstream:Stream" 動作會為您的 AppStream 2.0 使用者提供許可,以連接至您建立之堆疊上的串流工作階段。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "appstream:Stream", "Resource": "arn:aws:appstream:REGION-CODE:ACCOUNT-ID-WITHOUT-HYPHENS:stack/STACK-NAME", "Condition": { "StringEquals": { "appstream:userId": "${saml:sub}" } } } ] }

    Replace (取代) REGION-CODE 您的 AppStream 2.0 堆疊所在的 AWS 區域。Replace (取代) STACK-NAME 堆疊的名稱。STACK-NAME 區分大小寫,且必須與確切的案例和拼寫相符,如同 AppStream 2.0 管理主控台的堆疊儀表板中顯示的堆疊名稱。

    對於 AWS GovCloud (US) 區域中的資源,請使用下列格式的 ARN:

    arn:aws-us-gov:appstream:REGION-CODE:ACCOUNT-ID-WITHOUT-HYPHENS:stack/STACK-NAME

  4. (選用) 如果您打算使用第三方 SAML 2.0 身分提供者搭配 SAML2.0 多堆疊應用程式目錄,則IAM角色內嵌政策中的資源必須"Resource": "arn:aws:appstream:REGION-CODE:ACCOUNT-ID-WITHOUT-HYPHENS:stack/*"允許應用程式權限控制對堆疊的串流存取。若要對堆疊資源強制執行額外的保護,您可以在政策中新增明確拒絕。如需詳細資訊,請參閱 使用第三方 2.0 Identity Provider SAML 的屬性型應用程式權限政策評估邏輯

  5. 完成時,請選擇 Review policy (檢閱政策)Policy Validator (政策檢查工具) 會回報任何語法錯誤。

步驟 4:設定SAML以 為基礎的 IdP

接下來,視以 SAML為基礎的 IdP 而定,您可能需要手動更新 IdP,以信任 AWS 作為服務提供者,方法是將saml-metadata.xml檔案上傳至https://signin.aws.amazon.com/static/您的 IdP 。此步驟會更新您的 IdP 中繼資料。對於某些 IdPs,可能已設定更新。如果是這種情況,請繼續下一個步驟。

如果您的 IdP 尚未設定這項更新,請檢閱 IdP 提供的文件以取得中繼資料更新方式的資訊。某些提供者會為您提供輸入 的選項URL,而 IdP 會為您取得並安裝 檔案。其他 需要您從 下載 檔案,URL然後將其作為本機檔案提供。

步驟 5:為SAML驗證回應建立宣告

接下來,您可能需要在身分驗證回應中,將 IdP 傳送至 的資訊 AWS 設定為SAML屬性。視您的 IdP 而定,此資訊可能已預先設定。如果是這種情況,請跳過此步驟並繼續執行步驟 6,

如果您的 IdP 尚未設定這項資訊,請提供下列項目:

  • SAML Subject NameID – 登入使用者的唯一識別符。

    注意

    對於具有網域加入機群的堆疊,必須使用名稱或使用 的「」,以「」格式提供使用者的 NameID 值 userPrincipalName。domain\username sAMAccountusername@domain.com如果您使用的是sAMAccount名稱格式,您可以使用 NetBIOS 名稱domain或完整網域名稱 () 來指定 FQDN。Active Directory 單向信任案例需要sAMAccount名稱格式。如需詳細資訊,請參閱搭配 AppStream 2.0 使用 Active Directory

  • SAML 主旨類型 (將值設定為 persistent) – 設定值,persistent以確保 IdP 在特定使用者的所有SAML請求中為 NameID元素傳送相同的唯一值。請確定您的IAM政策包含一個條件,僅允許 SAML sub_type 設定為 的SAML請求persistent,如 中所述步驟 2:建立 SAML 2.0 聯合IAM角色

  • Attribute Name 屬性設定為 https://aws.amazon.com/SAML/屬性/角色的 元素 – 此元素包含一或多個AttributeValue元素,列出使用者由 SAMLIdP 映射IAM到的角色和 IdP。角色和 IdP 會指定為逗號分隔的 對ARNs。

  • Attribute Name 屬性設定為 https://aws.amazon.com/SAML/屬性/ 的 元素RoleSessionName – 此元素包含一個AttributeValue元素,可為為 發行的 AWS 臨時憑證提供識別符SSO。AttributeValue 元素中的值長度必須介於 2 到 64 個字元之間,只能包含英數字元、底線和下列字元:+ (加號)、= (等號)、, (逗號)、. (句號)、@ (at 符號) 和 - (連字號)。其中不可含有空格。該值通常是使用者 ID (bobsmith) 或電子郵件地址 (bobsmith@example.com)。該值不應包含空格,如使用者的顯示名稱 (Bob Smith)。

  • Attribute Name 屬性設定為 https://aws.amazon.com/SAML/屬性/PrincipalTag:SessionContext (選用) 的 元素 – 此元素包含一個AttributeValue元素,提供可用於將工作階段內容參數傳遞至串流應用程式的參數。如需詳細資訊,請參閱Amazon AppStream 2.0 中的工作階段內容

  • Attribute Name 屬性設定為 https://aws.amazon.com/SAML/屬性/PrincipalTag:ObjectSid (選用) 的 元素 – 此元素包含一個AttributeValue元素,可為登入的使用者提供 Active Directory 安全識別碼 (SID)。此參數與憑證型驗證搭配使用,能夠強式對應至 Active Directory 使用者。

  • Attribute Name 屬性設定為 https://aws.amazon.com/SAML/屬性/PrincipalTag:網域 (選用) 的 元素 – 此元素包含一個AttributeValue元素,可為登入的使用者提供 Active Directory DNS完整網域名稱 (FQDN)。當使用者的 Active Directory userPrincipalName 包含替代尾碼時,此參數會與憑證型驗證搭配使用。此值必須以 domain.com 格式提供,包括任何子網域。

  • Attribute SessionDuration 屬性設定為 https://aws.amazon.com/SAML/屬性/SessionDuration (選用) 的 元素 – 此元素包含一個AttributeValue元素,可指定使用者聯合串流工作階段在需要重新驗證之前可保持作用中狀態的時間上限。預設值為 60 分鐘 (即 3,600 秒)。如需詳細資訊,請參閱在為身分驗證回應設定 SAML Assertions 中,將 SessionDuration 屬性設定為 https://aws.amazon.com/SAML/屬性/ 的選用屬性元素SessionDuration一節。

    注意

    雖然 SessionDuration 是選用屬性,但我們建議您將其包含在SAML回應中。如果您未指定此屬性,工作階段持續時間會設定為預設值 60 分鐘。

    如果您的使用者透過使用 AppStream 2.0 原生用戶端或在新體驗上使用 Web 瀏覽器存取 AppStream 2.0 中的串流應用程式,則其工作階段會在其工作階段持續時間過期後中斷連線。如果您的使用者在舊/傳統體驗中使用 Web 瀏覽器存取 2.0 版中的 AppStream串流應用程式,則在使用者的工作階段持續時間到期且重新整理瀏覽器頁面後,其工作階段就會中斷連線。

如需如何設定這些元素的詳細資訊,請參閱 IAM 使用者指南 中的為身分驗證回應設定SAML宣告。如需 IdP 的特定組態要求資訊,請參閱您的 IdP 文件。

步驟 6:設定聯合的轉送狀態

最後,使用您的 IdP 來設定聯合的轉送狀態,以指向 AppStream 2URL.0 堆疊轉送狀態 。成功通過 身分驗證後 AWS,系統會將使用者導向 AppStream 2.0 堆疊入口網站,此入口網站在SAML身分驗證回應中定義為轉送狀態。

轉送狀態的格式URL如下:

https://relay-state-region-endpoint?stack=stackname&accountId=aws-account-id-without-hyphens

URL 從您的 Amazon Web Services 帳戶 ID、堆疊名稱,以及與堆疊所在區域相關聯的轉送狀態端點來建構您的轉送狀態。

或者,您也可以指定您想要自動啟動的應用程式名稱。若要尋找應用程式名稱,請在 AppStream 2.0 主控台中選取映像,選擇應用程式索引標籤,並記下應用程式名稱欄中顯示的名稱。或者,如果您尚未建立映像,請連接到您安裝應用程式的映像建置器,並開啟映像助理。應用程式的名稱會顯示在 Add Apps (新增應用程式) 索引標籤中。

如果您的機群已啟用桌面串流檢視,您也可以選擇直接啟動進入作業系統桌面。若要這麼做,Desktop請在 之後URL,在轉接狀態 結束時指定 &app=

使用身分提供者 IdP) 啟動的流程,在系統預設瀏覽器中,在使用者登入 IdP 並從 IdP 使用者入口網站選取 AppStream 2.0 應用程式後,系統會將其重新導向至系統預設瀏覽器中的 AppStream 2.0 登入頁面,並具有下列選項:

  • 繼續使用瀏覽器

  • 開啟 AppStream 2.0 用戶端

在頁面上,使用者可以選擇在瀏覽器中或使用 AppStream 2.0 用戶端應用程式啟動工作階段。您也可以選擇性地指定要用於 SAML 2.0 聯合的用戶端。若要執行此操作,web請在 之後URL,在轉接狀態 結束時指定 native&client=。當 參數處於轉送狀態 時URL,對應的工作階段會自動在指定的用戶端中啟動,使用者不會做出選擇。

注意

只有在您使用新的轉送狀態區域端點 (下表 1 中) 建構轉送狀態 ,並使用 AppStream 2.0 用戶端版本 1.1.1300 和更新版本時URL,才能使用此功能。此外,使用者應一律使用其系統預設瀏覽器登入 IdP 。如果使用非預設瀏覽器,此功能將無法運作。

透過使用第三方 2.0 SAML 身分提供者的屬性型應用程式權限,您可以從單一轉送狀態 啟用對多個堆疊的存取。 URL從轉送狀態 移除堆疊和應用程式 (如果有) 參數URL,如下所示:

https://relay-state-region-endpoint?accountId=aws-account-id-without-hyphens

當使用者聯合到 AppStream 2.0 應用程式目錄時,將顯示應用程式權限已針對與堆疊所在區域相關聯的帳戶 ID 和轉送狀態端點,將應用程式權限與使用者比對的所有堆疊。當使用者選取目錄時,應用程式權利只會顯示使用者有權使用的應用程式。

注意

使用者無法同時從多個堆疊串流。

如需詳細資訊,請參閱使用第三方 2.0 Identity Provider SAML 的屬性型應用程式權限

下表 1 列出可用 AppStream 2.0 之區域的轉送狀態端點。表 1 中的轉送狀態端點與 AppStream 2.0 網頁瀏覽器存取 (第 2 版)和 Windows 用戶端應用程式 1.1.1300 版及更新版本相容。如果您使用的是較舊版本的 Windows 用戶端,您應該使用表 2 中列出的舊轉接狀態端點來設定 SAML 2.0 聯合。如果您希望使用者使用 FIPS合規的連線進行串流,則必須使用 FIPS合規的端點。如需FIPS端點的詳細資訊,請參閱 使用FIPS端點保護傳輸中的資料

表 1: AppStream 2.0 轉送狀態區域端點 (建議)
區域 轉送狀態端點
美國東部 (維吉尼亞北部)

https://appstream2.euc-sso.us-east-1.aws.amazon.com/saml

(FIPS) https://appstream2.euc-sso-fips.us-east-1.aws.amazon.com/saml

美國東部 (俄亥俄) https://appstream2.euc-sso.us-east-2.aws.amazon.com/saml
美國西部 (奧勒岡)

https://appstream2.euc-sso.us-west-2.aws.amazon.com/saml

(FIPS) https://appstream2.euc-sso-fips.us-west-2.aws.amazon.com/saml

亞太區域 (孟買) https://appstream2.euc-sso.ap-south-1.aws.amazon.com/saml
亞太區域 (首爾) https://appstream2.euc-sso.ap-northeast-2.aws.amazon.com/saml
亞太區域 (新加坡) https://appstream2.euc-sso.ap-southeast-1.aws.amazon.com/saml
亞太區域 (雪梨) https://appstream2.euc-sso.ap-southeast-2.aws.amazon.com/saml
亞太區域 (東京) https://appstream2.euc-sso.ap-northeast-1.aws.amazon.com/saml

加拿大 (中部)

https://appstream2.euc-sso.ca-central-1.aws.amazon.com/saml
歐洲 (法蘭克福) https://appstream2.euc-sso.eu-central-1.aws.amazon.com/saml
歐洲 (愛爾蘭) https://appstream2.euc-sso.eu-west-1.aws.amazon.com/saml
歐洲 (倫敦) https://appstream2.euc-sso.eu-west-2.aws.amazon.com/saml
AWS GovCloud (美國東部)

https://appstream2.euc-sso.us-gov-east-1.amazonaws-us-gov.com/saml

(FIPS) https://appstream2.euc-sso-fips.us-gov-east-1.amazonaws-us-gov.com/saml

注意

如需在 AWS GovCloud (US) 區域中使用 AppStream 2.0 的詳細資訊,請參閱 AWS GovCloud (US) 使用者指南 中的 Amazon AppStream 2.0

AWS GovCloud (美國西部)

https://appstream2.euc-sso.us-gov-west-1.amazonaws-us-gov.com/saml

(FIPS) https://appstream2.euc-sso-fips.us-gov-west-1.amazonaws-us-gov.com/saml

注意

如需在 AWS GovCloud (US) 區域中使用 AppStream 2.0 的詳細資訊,請參閱 AWS GovCloud (US) 使用者指南 中的 Amazon AppStream 2.0

南美洲 (聖保羅) https://appstream2.euc-sso.sa-east-1.aws.amazon.com/saml

下表 2 列出仍然可用的舊轉接狀態端點。不過,建議您使用表 1 中列出的新轉送狀態端點來設定 SAML 2.0 聯合。特別是,使用新的轉送狀態端點,您可以讓使用者從 IdP 啟動的串流工作階段啟動 AppStream 2.0 用戶端應用程式 (1.1.1300 版及更新版本)。表 1 中的新轉送狀態端點還允許使用者在相同 Web 瀏覽器的不同索引標籤中登入其他 AWS 應用程式,而不會影響正在進行的 AppStream 2.0 串流工作階段。表 2 中的舊轉送狀態端點不支援此項目。如需詳細資訊,請參閱 我的 AppStream 2.0 客戶端用戶每隔 60 分鐘就會與 AppStream 2.0 會話斷開連接。

表 2:舊 AppStream 2.0 轉送狀態區域端點 (不建議)
區域 轉送狀態端點
美國東部 (維吉尼亞北部)

https://appstream2.us-east-1.aws.amazon.com/saml

(FIPS) https://appstream2-fips.us-east-1.aws.amazon.com/saml

美國東部 (俄亥俄) https://appstream2.us-east-2.aws.amazon.com/saml
美國西部 (奧勒岡)

https://appstream2.us-west-2.aws.amazon.com/saml

(FIPS) https://appstream2-fips.us-west-2.aws.amazon.com/saml

亞太區域 (孟買) https://appstream2.ap-south-1.aws.amazon.com/saml
亞太區域 (首爾) https://appstream2.ap-northeast-2.aws.amazon.com/saml
亞太區域 (新加坡) https://appstream2.ap-southeast-1.aws.amazon.com/saml
亞太區域 (雪梨) https://appstream2.ap-southeast-2.aws.amazon.com/saml
亞太區域 (東京) https://appstream2.ap-northeast-1.aws.amazon.com/saml

加拿大 (中部)

https://appstream2.ca-central-1.aws.amazon.com/saml
歐洲 (法蘭克福) https://appstream2.eu-central-1.aws.amazon.com/saml
歐洲 (愛爾蘭) https://appstream2.eu-west-1.aws.amazon.com/saml
歐洲 (倫敦) https://appstream2.eu-west-2.aws.amazon.com/saml
AWS GovCloud (美國東部)

https://appstream2.us-gov-east-1.amazonaws-us-gov.com/saml

(FIPS) https://appstream2-fips.us-gov-east-1.amazonaws-us-gov.com/saml

注意

如需在 AWS GovCloud (US) 區域中使用 AppStream 2.0 的詳細資訊,請參閱 AWS GovCloud (US) 使用者指南 中的 Amazon AppStream 2.0

AWS GovCloud (美國西部)

https://appstream2.us-gov-west-1.amazonaws-us-gov.com/saml

(FIPS) https://appstream2-fips.us-gov-west-1.amazonaws-us-gov.com/saml

注意

如需在 AWS GovCloud (US) 區域中使用 AppStream 2.0 的詳細資訊,請參閱 AWS GovCloud (US) 使用者指南 中的 Amazon AppStream 2.0

南美洲 (聖保羅) https://appstream2.sa-east-1.aws.amazon.com/saml

下表 3 列出可用於建構轉送狀態 的所有可用參數URL。

表 3:轉送狀態URL參數
參數 必要 格式 支援
accountId 必要 12 字元 AWS 帳戶 ID 表 1 和 2 中的新舊端點
堆疊 選用 Stack name (堆疊名稱) 表 1 和 2 中的新舊端點
應用程式 選用 應用程式名稱或「桌面」 表 1 和 2 中的新舊端點
用戶端 選用 “native” 或「web" 僅限表 1 中的新端點