Amazon Cognito 中的登出端點與 GlobalSignOut API 之間有什麼差別?

1 分的閱讀內容
0

我想要了解如何在 Amazon Cognito 中使用登出端點和 GlobalSignOut API。

簡短描述

Amazon Cognito 登出端點會從瀏覽器中清除使用者工作階段。GlobalSignOut API 則會使核發給特定使用者的所有存取和重新整理字符無效。

解決方案

使用登出端點將使用者登出

當您使用託管端點進行使用者身分驗證時,Amazon Cognito 會在您的瀏覽器中存放名稱為 "cognito" 的 Cookie。該 Cookie 會與使用您的使用者集區設定的 Amazon Cognito 網域關聯。該 Cookie 的有效期為 1 小時。當使用者在作用中工作階段期間嘗試再次登入時,Amazon Cognito 會詢問使用者是否要繼續其現有的工作階段。這可讓使用者在不提供憑證的情況下登入。如果使用者選擇 Sign in as example_username (以 example_username 登入) 按鈕,來使用現有的工作階段,則 Cookie 的有效性會重設為 1 小時。

當使用者使用其瀏覽器造訪登出端點時,Amazon Cognito 會清除該工作階段 Cookie。使用者必須提供憑證才能再次登入。

當使用者以第三方身分提供者 (IdP) 登入時,還要執行一個額外的步驟。如果使用者使用其中一個第三方 IdP 登入,則造訪登出端點會清除瀏覽器中的 "cognito" Cookie。但是,IdP 仍可擁有作用中工作階段。清除使用者的 IdP 工作階段時,請考慮下列資訊:

  • Amazon Cognito 支援具有 HTTP POST 繫結的安全性聲明標記語言 2.0 版 (SAML 2.0) IdP 的單一登出 (SLO) 功能。如果您的提供者在其 SLO 端點上接受 HTTP POST 繫結,請考慮為 SAML IdP 實作 SLO。如果使用者在開啟 SLO 的情況下造訪登出端點,Amazon Cognito 會將已簽署的登出請求傳送至 SAML IdP。然後,SAML IdP 會清除 IdP 工作階段。
  • 針對社交和 OpenID Connect (OIDC) IdP,必須建立自訂工作流程,以便從瀏覽器清除 IdP 工作階段。

使用 GlobalSignOut API 登出使用者

當您使用 GlobalSignOut API 時,Amazon Cognito 會撤銷核發給使用者的所有存取權和重新整理字符。請注意,只會告知 Amazon Cognito 撤銷字符。您的應用程式可能會繼續接受字符,直至字符到期。

您的應用程式可以同時使用 GlobalSignOutAdminUserGlobalSignOut API,在全域登出使用者。當您的應用程式使用 REST API 進行 Amazon Cognito 使用者身分驗證時,必須使用這些 API 來登出使用者。

當應用程式嘗試使用已撤銷的字符時,Amazon Cognito 會發出錯誤訊息,指示您已撤銷重新整理字符。使用者必須再次登入,才能取得一組新的 JSON Web 字符 (JWT)。

您可以在使用者集區應用程式用戶端中,設定存取權和 ID 字符的到期時間。您可以將到期時間變更為 5 分鐘到 24 小時之間的值。


AWS 官方
AWS 官方已更新 1 年前