本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
SAML 身分提供者名稱和識別符
當您為 SAML 身分提供者 (IdPs) 命名並指派 IdP 識別符時,您可以自動化向該提供者發出的 SP 起始登入和登出請求流程。如需提供者名稱字串限制的相關資訊,請參閱 CreateIdentityProvider 的 ProviderName
屬性。

您也可以為您的 SAML 供應商選擇最多 50 個識別碼。識別符是使用者集區中 IdP 的易記名稱,而且在使用者集區中必須是唯一的。如果您的 SAML 識別符符合使用者的電子郵件網域,受管登入會請求每個使用者的電子郵件地址、評估其電子郵件地址中的網域,並將他們重新導向至對應其網域的 IdP。由於同一個組織可以擁有多個網域,因此單一 IdP 可以有多個識別符。
無論您是否使用電子郵件網域識別符,都可以在多租戶應用程式中使用識別符,將使用者重新導向至正確的 IdP。當您想要完全略過受管登入時,您可以自訂您提供給使用者的連結,以便他們授權端點直接透過 重新導向到其 IdP。若要使用識別符登入您的使用者並重新導向至其 IdP,請在其初始授權請求的請求參數idp_identifier=
中以 格式包含識別符。myidp.example.com
將使用者傳遞至 IdP 的另一種方法是以下列 URL 格式identity_provider
將 參數填入 IdP 的名稱。
https://
mydomain.us-east-1.amazoncognito.com
/oauth2/authorize? response_type=code
& identity_provider=MySAMLIdP
& client_id=1example23456789
& redirect_uri=https://www.example.com
使用者使用 SAML IdP 登入後,IdP 會使用內HTTP POST
文中的 SAML 回應將使用者重新導向至/saml2/idpresponse
端點。Amazon Cognito 會處理 SAML 聲明,如果回應中的宣告符合預期,則會重新導向至您的應用程式用戶端回呼 URL。您的使用者以此方式完成身分驗證後,他們只會與 IdP 和應用程式的網頁互動。
使用網域格式的 IdP 識別符,受管登入會在登入時請求電子郵件地址,然後在電子郵件網域符合 IdP 識別符時,將使用者重新導向至其 IdP 的登入頁面。例如,您建置的應用程式需要兩個不同公司的員工登入。第一家公司,AnyCompany A,擁有 exampleA.com
和 exampleA.co.uk
。第二家公司,AnyCompany B,擁有 exampleB.com
。在此範例中,您已設定了兩個 IdP,每家公司各一個,如下所示:
-
針對 IdP A,您定義識別符
exampleA.com
和exampleA.co.uk
。 -
針對 IdP B,您會定義識別符
exampleB.com
。
在您的應用程式中,叫用應用程式用戶端的受管登入,以提示每個使用者輸入其電子郵件地址。Amazon Cognito 從電子郵件地址衍生網域、將網域與 IdP 與網域識別符建立關聯,並將您的使用者重新導向至正確的 IdP,並將請求重新導向至包含idp_identifier
請求參數授權端點的 。例如,如果使用者輸入 bob@exampleA.co.uk
,則與 互動的下一頁是位於 的 IdP 登入頁面https://auth.exampleA.co.uk/sso/saml
。
您也可以獨立實作相同的邏輯。在應用程式中,您可以建置自訂表單,收集使用者輸入,並根據您自己的邏輯將其與正確的 IdP 建立關聯。您可以為每個應用程式租用戶產生自訂入口網站,其中每個連結都會連結到請求參數中具有租用戶識別符的授權端點。
若要收集電子郵件地址並剖析受管登入中的網域,請為您指派給應用程式用戶端的每個 SAML IdP 指派至少一個識別符。根據預設,受管登入畫面會顯示您指派給應用程式用戶端的每個 IdPs的按鈕。不過,如果您已成功指派識別符,則傳統託管 UI 登入頁面看起來會如下圖所示。

注意
在傳統託管 UI 中,當您將識別符指派給 IdPs 時,應用程式用戶端的登入頁面會自動提示電子郵件地址。在受管登入體驗中,您必須在品牌設計工具中啟用此行為。在身分驗證行為設定類別中,選取標題提供者顯示下的網域搜尋輸入。
受管登入中的網域剖析需要您使用網域做為 IdP 識別符。如果您為應用程式用戶端的每個 SAML IdPs 指派任何類型的識別符,則該應用程式的受管登入將不再顯示 IdP 選擇按鈕。當您想要使用電子郵件剖析或自訂邏輯來產生重新導向時,請新增 SAML 的 IdP 識別符。當您想要產生無訊息重新導向,也希望受管登入頁面顯示 IdPs清單時,請不要指派識別符,並在授權請求中使用identity_provider
請求參數。
-
如果您只將一個 SAML IdP 指派給應用程式用戶端,受管登入頁面會顯示按鈕以使用該 IdP 登入。
-
如果您為應用程式用戶端啟用的每個 SAML IdP 指派識別符,則受管登入登入頁面中會顯示電子郵件地址的使用者輸入提示。
-
如果您有多個 IdPs而且您未將識別符指派給所有這些識別符,受管登入頁面會顯示一個按鈕,以使用每個指派的 IdP 登入。
-
如果您將識別符指派給 IdPs且希望受管登入頁面顯示 IdP 按鈕的選擇,請將沒有識別符的新 IdP 新增至您的應用程式用戶端,或建立新的應用程式用戶端。您也可以刪除現有的 IdP,然後再次新增它,而無需識別符。如果您建立新的 IdP,SAML 使用者將建立新的使用者設定檔。此重複作用中使用者可能會在您變更 IdP 組態的月份產生帳單影響。
如需 IdP 設定的詳細資訊,請參閱 為您的使用者集區配置身分提供者。