跳至內容

我要如何在使用 Cognito 使用者集區的應用程式中實作 SAML 登出流程?

1 分的閱讀內容
0

我想為使用 Amazon Cognito 使用者集區的應用程式設定 SAML 單一登出。我的應用程式也使用 SAML 身分提供者 (IdP) 進行驗證。

解決方法

先決條件:

在 SAML IdP 中啟用 SAML 登出

請完成下列步驟:

  1. Amazon Cognito 主控台
  2. 在導覽窗格中,選擇 User pools (使用者集區),然後選取您的使用者集區。
  3. 選擇 Social and external providers (社交和外部提供者),然後選擇您的 SAML IdP。
  4. 在您的 SAML IdP 組態設定中,選取 Add sign-out flow (新增登出流程),以及 Sign SAML requests to this provider (向此提供者簽署 SAML 請求)。然後,儲存組態。
  5. 選擇 View signing certificate (檢視簽署憑證)。
  6. 選擇 Download as .crt (下載為 .crt 格式)。
  7. 選擇 Close (關閉)。

設定外部 IdP 以啟用登出

若要在您的 Cognito 應用程式中設定單一登出,請參考 IdP 的文件,以在 SAML 應用程式中啟用單一登出。

當您設定應用程式時,請完成以下步驟:

  1. 將 Cognito 使用者集區的 .crt 檔案上傳至 IdP 的 SAML 應用程式組態,作為簽署憑證。
  2. 在 IdP 的組態中啟用單一登出。
    **注意:**您的 IdP 可能會將單一登出稱為 SLO。
  3. 對於 IdP 組態,請使用以下值:
    single sign-out URL (單一登出 URL),輸入 https://YourDomain.auth.Region.amazoncognito.com/saml2/logout
    service provider (SP) issuer (服務提供者 (SP) 發行者),輸入 urn:amazon:cognito:sp:YourUserPoolID
    **注意:**將 YourDomainRegion 以及 YourUserPoolID 替換為您的值。您的 IdP 必須以 HTTP POST 請求方式傳送 SAML LogoutResponse。Cognito 隨後會將使用者重新導向至初始請求中的登出網址。

測試單一登出

Cognito /logout 端點 發出 GET 請求。確保在請求中包含 client_idlogout_uri 參數。

登出網址範例:

https://YourDomain.auth.Region.amazoncognito.com/logout?client_id=YourAppClientID&logout_uri=YourAllowedSignOutURL

**注意:**對於自訂應用程式,您必須從使用者瀏覽器移除本機儲存的權杖或工作階段資訊,例如 localStorage 和 sessionStorage。Cognito 登出網址只會清除使用管理式 UI 之應用程式的 Cognito Cookie。

相關資訊

透過單一登出來登出 SAML 使用者

AWS 官方已更新 8 個月前