正在設定 SAML - Amazon AppStream 2.0

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

正在設定 SAML

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

必要條件

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

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

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

    • 使用SAML以您為基礎的 IdP 來產生並下載將您的組織描述為 IdP 的同盟中繼資料文件。此簽署XML文件用於建立信賴憑證者信任。將此檔案儲存到稍後可從IAM主控台存取的位置。

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

    您可以使用 AppStream 2.0 管理主控台或 AppStream 2.0 建立 AppStream 2.0 堆疊API。 AWS CLI如需詳細資訊,請參閱建立 AppStream 2.0 叢集與堆疊

步驟 1:建立SAML身分識別提供者 AWS IAM

首先,在 AWS IAM中建立 SAML IdP。此 IdP 使用組織中的 IdP 軟體所產生的中繼資料文件,定義組織的 IdP 至AWS 信任關係。如需詳細資訊,請參閱IAM使用者指南中的建立和管理SAML身分識別供應商 (Amazon Web Services 管理主控台)。若要取得有關在 AWS GovCloud (US) 區域SAML IdPs 中使用的資訊,請參閱AWS GovCloud (US) 使用指南中的 AWS Identity and Access Management

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

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

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

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

  3. 針對 [角色類型],選擇 [SAML2.0 同盟]。

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

    重要

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

  5. 對於 「屬性」,請選擇:aud SAML。

  6. 針對數值,輸入 https://signin.aws.amazon.com/saml。此值會限制角色存取SAML使用者串流要求,其中包含SAML主體類型宣告 (具有持續性值)。如果:sub_type SAML 是永久的,則您的 IdP 會在來自特定使用者的所有要求中,針對 NameID 元素傳送相同的唯一值。SAML如需有關:sub_type SAML 宣告的詳細資訊,請參閱使用以基礎聯合存取的基礎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. (選擇性) 如果您計劃使用第三方 SAML 2.0 身分識別提供者或憑證型驗證來使用工作階段內容或以屬性為基礎的應用程式權利,則必須將 sts: TagSession 權限新增至新IAM角色的信任原則。如需詳細資訊,請參閱 使用第三方 SAML 2.0 身分提供者的屬性型應用程式權利在 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使用您在步驟 1 中建立的 SAML 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/*"是允許應用程式權利控制堆疊的串流存取。若要對堆疊資源強制執行額外的保護,您可以在政策中新增明確拒絕。如需詳細資訊,請參閱 使用第三方 SAML 2.0 身分提供者的屬性型應用程式權利政策評估邏輯

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

步驟 4:設定您的SAML基礎 IdP

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

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

步驟 5:建立SAML驗證回應的判斷提示

接下來,您可能需要配置 IdP 在其身份驗證響應中 AWS 作為SAML屬性發送的信息。視您的 IdP 而定,此資訊可能已預先設定。如果是這種情況,請跳過此步驟並繼續執行步驟 6,

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

  • SAML主旨 NameID — 正在登入之使用者的唯一識別碼。

    注意

    對於已加入網域之叢集的堆疊,使用者的 NameID 值必須以 "" 格式 (使用sAMAccount名稱) 提供,或使用 domain\username ""。username@domain.com userPrincipalName如果您使用的是 sAMAccount Name 格式,則可以使domain用網路BIOS名稱或完整網域名稱 (FQDN) 來指定。使用中目錄單向信任案例需要使用sAMAccount名稱格式。如需詳細資訊,請參閱使用活動目錄 AppStream 2.0

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

  • Attribute屬性@@ 設定為 https://aws.amazon.com/SAML/屬性/角色的元素 — 此元素包含一或多個元素,這些元AttributeValue素列出了 SAML IdP 對應使用者的IAM角色和 IdP。Name角色和 IdP 會以逗號分隔的配對來指定。ARNs

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

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

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

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

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

    注意

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

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

如需有關如何設定這些元素的詳細資訊,請參閱《IAM使用指南》的 < 設定驗證回應的SAML宣告 >。如需 IdP 的特定組態要求資訊,請參閱您的 IdP 文件。

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

最後,使用 IdP 將聯合的轉送狀態設定為指向 AppStream 2.0 堆疊轉送狀態URL。成功驗證之後 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 聯合應使用哪個用戶端。若要執行此操作,請webnative之後指定轉送狀態URL的其中一個或結尾&client=。當參數處於轉送狀態時URL,對應的工作階段將自動在指定的用戶端中啟動,而無需使用者做出選擇。

注意

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

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

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

當使用者聯合到 AppStream 2.0 應用程式類別目錄時,他們會看到所有堆疊,其中應用程式權利已將一或多個應用程式與使用者相符,以及與堆疊所在區域相關聯的中繼狀態端點。當使用者選取目錄時,應用程式權利只會顯示使用者有權使用的應用程式。

注意

用戶無法同時從多個堆棧進行流式傳輸。

如需詳細資訊,請參閱使用第三方 SAML 2.0 身分提供者的屬性型應用程式權利

下表 1 列出 AppStream 2.0 可用區域的轉送狀態端點。表 1 中的轉送狀態端點與 Windows 用戶端應用程式 1.1.1300 版AppStream 2.0 網頁瀏覽器存取 (版本 2)及更新版本相容。如果您使用的是舊版 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 帳戶 別碼 表 1 和 2 中的新端點和舊端點
堆疊 選用 Stack name (堆疊名稱) 表 1 和 2 中的新端點和舊端點
應用程式 選用 應用程式名稱或「桌面」 表 1 和 2 中的新端點和舊端點
用戶端 選用 「原生」或「網絡」 僅限表 1 中的新端點