saas 實作

使用 Amazon Cognito 提供 SaaS 身分識別和隔離

在 AWS 上部署穩健 SaaS 身分識別和隔離模型的架構和策略

本快速入門針對多租用戶軟體即服務 (SaaS) 環境中的身分識別和隔離實作一個高可用性解決方案,並使用 Amazon Cognito 做為身分識別供應商。

本快速入門提供輕量型 SaaS 訂單管理系統,說明身分識別與隔離的不同面向,並在多租用戶環境中跨越角色。快速入門部署包含 Amazon Cognito、AWS Lambda、Amazon API Gateway 及 Amazon EC2 Container Service (Amazon ECS) 等 AWS 服務。

可自動化部署的 AWS CloudFormation 範本可供自訂。部署指南解說 SaaS 身分識別與隔離的核心概念及實作詳細資訊,同時包括部署與設定的逐步操作說明。

cognito-small-icon

本快速入門是由
AWS 解決方案架構師所開發。

  •  您將建置的項目
  •  部署方式
  •  成本和授權
  •  您將建置的項目
  • 本快速入門的架構包括數個 AWS 服務和建構,可用於建立高擴展性、高可用性的 SaaS 身分識別和隔離解決方案,同時遵循相關最佳做法,在橫跨兩個可用區域的 Virtual Private Cloud (VPC) 中部署以容器為基礎的應用程式。

    SaaS 參考應用程式用戶端會使用 Amazon Simple Storage Service (Amazon S3) 進行部署。這個 AngularJS 應用程式的所有資產會部署到 S3 儲存貯體,然後從這個貯體提供這些資源。所部署的 Web 應用程式會透過 RESTful 呼叫,與應用程式的後端服務互動,其中這些呼叫會經由 Amazon API Gateway 轉送,進而透過每次呼叫來提供租用戶身分識別內容。

    API Gateway 在 SaaS 環境中提供自然的方式公開您的服務,讓您可以更完善地測量和控管環境存取權。除此之外,也支援自訂授權方在每次有人嘗試存取服務時,可以驗證系統的身分 Token。此授權方會以 AWS Lambda 函數的形式來執行,讓您可以針對經過閘道的要求,建立自訂授權邏輯。

    在 VPC 中,這個架構會採用部署在獨立可用區域的網路位址轉譯 (NAT) 閘道。這些閘道位於 VPC 的公用子網路,提供高可用性的路由,讓流量可以從私有子網路流至其他 AWS 服務或流至網際網路。

    SaaS 應用程式服務的核心會在 VPC 的私有子網路上代管。Amazon ECS 叢集則代管執行系統微型服務的容器。在這個叢集中,會部署七個獨立的 Node.js 微型服務。這個叢集也採用 Auto Scaling 提供基本的高可用性。您可以進一步微調這個叢集,使其動態回應租用戶負載的變化,進而根據需求,增減規模。每項服務都會運用租用戶的身分內容,來控制及處理系統資源的存取權。

    此參考應用程式會使用各種 AWS 服務,例如:

    • 針對需要儲存空間的服務,將 Amazon DynamoDB 資料表佈建在多租用戶模型下。
    • AWS Identity and Access Management (IAM) 會管理並套用隔離政策和角色,來防止租用戶交叉存取。
    • Amazon Cognito 會充當身分識別供應商,並儲存能識別每位租用戶的屬性。
    • Amazon Simple Notification Service (Amazon SNS) 會在使用者註冊過程中發佈驗證電子郵件。

    此架構也支援持續部署:將 AWS CodePipeline、AWS CodeBuild、S3 儲存貯體和 Amazon EC2 Container Registry (Amazon ECR) 結合使用,以管理新應用程式功能的建置和部署。

  •  部署方式
  • 若要在 AWS 上建立高可用性的 SaaS 身分識別和隔離環境,請按照部署指南中的說明操作。部署程序包括下列的步驟:

    1. 如果您尚未擁有 AWS 帳戶,請到 https://aws.amazon.com 註冊。
    2. 啟動快速入門。每項部署作業約需 2 小時 15 分鐘。有兩種選項可供您選擇:
    3. 測試部署:請登入網站找出該參考應用程式,然後瀏覽訂單管理系統。

    若要自訂部署,您可以設定 CIDR 區塊和 IP 位址,接著設定系統管理員登入資料,然後設定 DynamoDB 資料表,如快速入門部署指南所述。

  •  成本和授權
  • 您必須自行負擔執行此快速入門參考部署時,所使用 AWS 服務的費用。使用快速入門無須另外付費。

    此快速入門的 AWS CloudFormation 範本包含您可以自訂的組態參數。部分設定將會影響部署的成本。查看您將使用的每個 AWS 服務的定價頁面以估算成本。