本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 SP 啟動式 SAML 登入
最佳做法是將 service-provider-initiated (SP 啟動) 登入實作至您的使用者集區。Amazon Cognito 會啟動您的使用者工作階段,並將其重新導向至您的 IdP。使用此方法,您可以最大程度地控制誰提出登錄請求。您也可以在特定情況下允許 IDP 啟動的登入。如需詳細資訊,請參閱 Amazon Cognito 使用者集區中的 SAML 工作階段啟動。
下列程序顯示使用者如何透過 SAML 提供者登入您的使用者集區。
-
您的使用者在登入頁面輸入他們的電子郵件地址。若要判斷使用者重新導向至其 IdP,您可以在自訂應用程式中收集其電子郵件地址,或在 Web 檢視中叫用託管 UI。您可以將託管的 UI 設定為顯示 IdPs 或僅提示輸入電子郵件地址的清單。
-
您的應用程序調用您的用戶池重定向端點,並請求具有與應用程序對應的客戶端 ID 以及與用戶對應的 IdP ID 的會話。
-
Amazon Cognito 會使用元素中的 SAML 請求 (選擇性地簽署) 將您的使用者重新導向至 IdP。
AuthnRequest
-
IdP 會以互動方式驗證使用者,或使用瀏覽器 Cookie 中記住的工作階段來驗證使用者。
-
IdP 會將您的使用者重新導向至您的使用者集區 SAML 回應端點,並在其 POST 裝載中使用選擇性加密的 SAML 宣告。
注意
Amazon Cognito 會取消 5 分鐘內未收到回應的工作階段,並將使用者重新導向至託管的使用者介面。當您的使用者遇到此結果時,他們會收到
Something went wrong
錯誤訊息。 -
在驗證 SAML 宣告並對應回應中宣告中的使用者屬性後,Amazon Cognito 會在內部建立或更新使用者集區中的使用者設定檔。通常,您的使用者集區會將授權碼傳回給使用者的瀏覽器工作階段。
-
您的用戶將其授權碼提供給您的應用程序,該應用程序將代碼交換為 JSON Web 令牌(JWT)。
-
您的應用程序接受並處理用戶的 ID 令牌作為身份驗證,使用其訪問令牌對資源生成授權請求,並存儲其刷新令牌。
當用戶身份驗證並接收授權碼授予時,用戶池返回 ID,訪問和刷新令牌。ID 權杖是 OIDC 型身分識別管理的驗證物件。訪問令牌是具有 OAuth 2.0
您也可以選擇刷新令牌的持續時間。使用者的重新整理權杖到期後,必須重新登入。如果使用者透過 SAML IdP 進行驗證,則使用者的工作階段持續時間是由其權杖到期而設定,而不是使用其 IdP 的工作階段到期。您的應用程序必須存儲每個用戶的刷新令牌,並在其過期時更新其會話。託管的用戶界面在瀏覽器 cookie 中維護用戶會話,該 cookie 有效期為 1 小時。