本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
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 會將正文中的SAML回應重新導向至您/saml2/idpresponse
的HTTP POST
端點。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 設定的詳細資訊,請參閱 為您的使用者集區配置身分提供者。