本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
SAML 身分提供者名稱和識別符
當您命名SAML身分提供者 (IdPs) 並指派 IdP 識別符時,您可以自動向該提供者發出 SP 啟動的登入和登出請求流程。如需提供者名稱的字串限制資訊,請參閱 ProviderName
屬性 CreateIdentityProvider。
您也可以為SAML提供者選擇最多 50 個識別碼。識別符是使用者集區中 IdP 的易記名稱,而且在使用者集區中必須是唯一的。如果您的SAML識別符符合使用者的電子郵件網域,Amazon Cognito 託管的 UI 會請求每個使用者的電子郵件地址、評估其電子郵件地址中的網域,並將它們重新導向至對應其網域的 IdP。由於同一個組織可以擁有多個網域,因此單一 IdP 可以具有多個識別符。
無論您是否使用電子郵件網域識別符,都可以在多租戶應用程式中使用識別符,將使用者重新導向至正確的 IdP 。當您想要完全繞過託管 UI 時,您可以自訂您呈現給使用者的連結,讓他們授權端點直接透過 重新導向至其 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 識別符,Amazon Cognito 託管 UI 會在登入時請求電子郵件地址,然後在電子郵件網域符合 IdP 識別符時,將使用者重新導向至其 IdP 的登入頁面。例如,您建置的應用程式需要兩個不同公司的員工登入。第一家公司 AnyCompany A 擁有 exampleA.com
和 exampleA.co.uk
。第二家公司 AnyCompany B 擁有 exampleB.com
。在此範例中,您已設定兩個 IdPs,每個公司各一個 ,如下所示:
-
針對 IdP A,您定義識別符
exampleA.com
和exampleA.co.uk
。 -
針對 IdP B,您會定義識別符
exampleB.com
。
在應用程式中,叫用應用程式用戶端的託管 UI,以提示每個使用者輸入其電子郵件地址。Amazon Cognito 從電子郵件地址衍生網域,將網域與 IdP 與網域識別符建立關聯,並將您的使用者重新導向至正確的 IdP,並將請求重新導向至包含idp_identifier
請求參數授權端點的 。例如,如果使用者輸入 bob@exampleA.co.uk
,則與 互動的下一頁是位於 的 IdP 登入頁面https://auth.exampleA.co.uk/sso/saml
。
您也可以獨立實作相同的邏輯。在應用程式中,您可以建置自訂表單,收集使用者輸入,並根據您自己的邏輯將其與正確的 IdP 建立關聯。您可以為每個應用程式租用戶產生自訂應用程式入口網站,其中每個都連結至授權端點,並在請求參數中包含租用戶的識別符。
若要收集電子郵件地址並剖析託管 UI 中的網域,請為您指派給應用程式用戶端的每個 SAML IdP 指派至少一個識別符。根據預設,託管 UI 登入畫面會顯示 IdPs 您已指派給應用程式用戶端的每個 的按鈕。不過,如果您已成功指派識別符,則託管的 UI 登入頁面看起來如下圖所示。
託管 UI 中的網域剖析要求您使用網域作為 IdP 識別符。如果您SAML IdPs 為應用程式用戶端的每個 指派任何類型的識別符,則該應用程式的託管 UI 將不再顯示 IdP - 選擇按鈕。當您打算使用電子郵件剖析或自訂邏輯產生重新導向SAML時,請為 新增 IdP 識別符。當您想要產生無訊息重新導向,並希望託管 UI 顯示 清單時 IdPs,請勿指派識別碼,並在授權請求中使用identity_provider
請求參數。
-
如果您只將一個 SAML IdP 指派給應用程式用戶端,則託管的 UI 登入頁面會顯示按鈕,以使用該 IdP 登入。
-
如果您為應用程式用戶端啟用的每個 SAML IdP 指派識別符,則託管 UI 登入頁面中會顯示電子郵件地址的使用者輸入提示。
-
如果您有多個 IdPs ,而且您未將識別符指派給所有這些識別符,則託管的 UI 登入頁面會顯示一個按鈕,以使用每個指派的 IdP 登入。
-
如果您將識別符指派給 , IdPs 而且希望託管 UI 顯示 IdP 按鈕的選擇,請將沒有識別符的新 IdP 新增至您的應用程式用戶端,或建立新的應用程式用戶端。您也可以刪除現有的 IdP,然後在沒有識別碼的情況下再次新增它。如果您建立新的 IdP ,您的SAML使用者將建立新的使用者設定檔。此重複作用中使用者可能會在您變更 IdP 組態的月份產生帳單影響。
如需 IdP 設定的詳細資訊,請參閱 為您的使用者集區配置身分提供者。