如何設定 Application Load Balancer 並透過 Amazon Cognito 使用者集區來驗證使用者?

2 分的閱讀內容
0

我想將具有 Amazon Cognito 使用者集區與 Application Load Balancer 針對使用者驗證進行整合。

簡短說明

若要管理和驗證使用者,您可以將整合 Application Load Balancer Amazon Cognito 使用者集區。若要設定具有 Application Load Balancer 及 Amazon Cognito 使用者集區的使用者驗證,請完成下列步驟:

  1. 建立 Application Load Balancer。
  2. 取得您的 Application Load Balancer 的 DNS 名稱。
  3. 建立和設定 Amazon Cognito 使用者集區。
  4. 設定 Application Load Balancer。
  5. 測試設定

解決方法

建立 Application Load Balancer

**注意:**如果您已經設定 Application Load Balancer,則請繼續進行下一節。

若要建立 Application Load Balancer,請完成下列步驟:

  1. 建立網際網路對應的 Application Load Balancer
  2. 建立適用於 Application Load Balancer 的 HTTPS 接聽程式

**注意:**只有 HTTPS 接聽程式支援 authenticate-cognitoauthenticate-cognito 規則動作類型

取得您的 Application Load Balancer 的 DNS 名稱

若要取得 Application Load Balancer 的 DNS 名稱,請完成下列步驟:

  1. 開啟 Amazon Elastic Compute Cloud (Amazon EC2) 主控台
  2. 在導覽窗格的負載平衡下,選擇負載平衡器
  3. 選取 Application Load Balancer。
  4. 詳細資訊索引標籤上,複製並儲存負載平衡器的 ** DNS 名稱**。使用此 DNS 名稱來測試 Application Load Balancer 端點 URL 的存取權。

建立和設定 Amazon Cognito 使用者集區

若要建立和設定 Amazon Cognito 使用者集區,請完成下列步驟:

  1. 使用應用程式用戶端建立 Amazon Cognito 使用者集區。設定應用程式用戶端時,選取產生用戶端機密選項按鈕。如需詳細資訊,請參閱準備使用 Amazon Cognito
    **注意:**建立使用者集區時,請設定您要用於生產的設定。建立使用者集區之後,您無法變更某些使用者集區設定。例如,您無法變更使用者註冊所需的標準屬性
  2. 開啟 Amazon Cognito 主控台
  3. 在導覽窗格中,選擇使用者集區,然後選取您的使用者集區。複製並儲存**使用者集區 ID **。使用此 ID 可設定使用者驗證的 Application Load Balancer。
  4. 選擇使用者集區的應用程式整合索引標籤,然後為您的使用者集區新增網域
  5. 從使用者集區的應用程式整合索引標籤中,導覽至應用程式用戶端和分析區段。選取您的應用程式用戶端。
  6. 開啟應用程式用戶端頁面,在應用程式用戶端資訊下,複製並儲存用戶端 ID。使用此 ID 可設定使用者驗證的 Application Load Balancer。
  7. 託管 UI區段,選擇編輯
  8. 選擇新增回撥 URL,然後輸入 ** https://load-balancer-dns-name/oauth2/idpresponse**。
    -或-
    如果您使用 CNAME 記錄將自訂網域映射至您的 Application Load Balancer,然後輸入 https://CNAME/oauth2/idpresponse
    注意: 以您從 Amazon EC2 主控台複製的 DNS 名稱取代 load-balancer-dns-name。DNS 名稱不能包含任何大寫字母。如您使用 CNAME 記錄,請利用自訂網域取代 CNAME
  9. 選擇新增登出 URL,然後輸入您要在使用者登出後重新導向至的 URL。若要測試重新導向,您可以輸入任何有效的網址,例如 **https://example.com/ **。
  10. 針對身分提供者,選取 Cognito 使用者集區核取方塊。
  11. OAuth 2.0 授權類型下,選取授權代碼授權核取方塊。選擇適用於使用案例所需的任何其他 OAuth 授權類型。
  12. OpenID Connect 範圍下,選取 Open ID 核取方塊。OpenID 會傳回 ID 權杖。選擇適用於使用案例所需的任何其他 OpenID Connect (OIDC) 範圍。
  13. 選擇儲存變更

如需詳細資訊,請參閱更新使用者集區和應用程式用戶端組態透過第三方新增使用者集區登入

設定您的 Application Load Balancer

若要設定 Application Load Balancer,請完成下列步驟:

  1. 開啟 Amazon EC2 主控台
  2. 在導覽窗格的負載平衡下,選擇負載平衡器
  3. 選取 Application Load Balancer。
  4. 接聽程式和規則索引標籤籤上,選取 HTTPS 通訊協定,然後選擇管理規則,然後選擇編輯規則
  5. 接聽程式規則區段中,選取您要更新的預設規則,然後選擇動作,接著再選擇編輯規則
  6. 使用下列設定編輯 HTTPS 接聽程式預設規則
    針對驗證,請選取使用 OpenID 或 Amazon Cognito
    針對身份提供者,請選擇 Amazon Cognito
    針對使用者集區,選取您從 Amazon Cognito 主控台取得的使用者集區 ID
    針對應用程式用戶端,選取您從 Amazon Cognito 主控台取得的用戶端 ID
    展開
    進階驗證設定

    命名工作階段 Cookie
    設定
    工作階段逾時
    。預設值為 7 天。
    對於範圍,請輸入您為使用者集區應用程式用戶端設定的範圍,並以空格分隔。您可於使用者集區的 OIDC 設定找到範圍。例如,如設定的 scopes_supported 值是 [「openid」、「電子郵件」、「電話」、「設定檔」],接著再輸入 openid 電子郵件電話設定檔
    針對未驗證請求的動作,將其保留為預設值。
    (選用)展開額外請求參數 - 選用。此選項可讓您在驗證期間傳遞額外的參數給身分提供者(例如 Cognito)。例如,如果 Cognito 使用者集區使用 Google 作為自己的身分提供者,則您可以新增一個額外的參數 {Key: identity_provider, Value: Google}。此參數可讓您略過 Cognito 託管的 UI,並直接到達 Google 登入頁面。如需有關允許的 /oauth2/authorize 參數的詳細資訊,請參閱授權端點
  7. 繼續使用下列設定編輯 HTTPS 接聽程式預設規則:
    針對路由動作,選擇轉寄至目標群組,然後選擇一個或多個目標群組。
    (選用)針對目標群組黏性,請在使用案例需要時選擇開啟目標群組黏性
  8. 設定安全接聽程式設定
    針對安全政策,請選擇適合您使用案例的安全政策
    針對預設 SSL/TLS 伺服器憑證,選擇您的憑證來源。
  9. 若要將更新套用至 HTTPS 接聽程式預設規則,請選擇儲存變更

測試設定

在您的網頁瀏覽器中,輸入下列其中一個 URL:

  • https://load-balancer-dns-name/
  • https://CNAME/

注意: 以您從 Amazon EC2 主控台複製的 DNS 名稱取代 load-balancer-dns-name。或者,以自訂網域取代 CNAME

當您輸入 URL 時,系統會將您重新導向至您使用者集區的 Amazon Cognito 託管網路使用者介面。使用者登入並且使用者集區驗證他們之後,會將使用者重新導向至目標。

相關資訊

開始使用 Application Load Balancer

利用 Application Load Balancer 內建驗證簡化 login

Application Load Balancer 的接聽程式規則

OIDC 使用者集區 IdP 驗證流程

AWS 官方
AWS 官方已更新 2 個月前