implémentation saas

Identité et isolation SaaS avec Amazon Cognito

Architecture et stratégies pour un modèle d'identité et d'isolation SaaS robuste sur AWS

Ce Quick Start implémente une solution à disponibilité élevée pour la mise en place de l'identité et de l'isolation dans les environnements de logiciel en tant que service (SaaS) à locataires multiples, en utilisant Amazon Cognito en tant que fournisseur d'identité sous.

Ce Quick Start fournit un système de gestion des commandes SaaS léger qui illustre différents aspects d'identité et d'isolation, étendant les rôles dans un environnement à locataires multiples. Le déploiement de ce Quick Start inclut des services AWS tels que Amazon Cognito, AWS Lambda, Amazon API Gateway, et Amazon EC2 Container Service (Amazon ECS).

Les modèles AWS CloudFormation qui automatisent ce déploiement sont personnalisables. Le guide de déploiement explique les concepts d'isolation et d'identité SaaS et des détails sur l'implémentation, et qui explique étape par étape comment effectuer le déploiement et la configuration.

cognito-small-icon

Ce Quick Start a été développé par
les architectes de solutions AWS.

  •  Ce que vous avez construit
  •  Comment déployer
  •  Coût et licences
  •  Ce que vous avez construit
  • L’architecture de ce Quick Start comprend un certain nombre de services et de structures AWS, pour créer une solution d’identité et d’isolation SaaS hautement évolutive et conforme aux meilleures pratiques pour le déploiement d’une application basée sur un conteneur dans un virtual private cloud (VPC) qui s'étend sur deux zones de disponibilité.

    Le client d'application de référence SaaS est déployé à l'aide d'Amazon Simple Storage Service (Amazon S3). Tous les actifs de cette application AngularJS sont déployés et servis depuis un compartiment S3. L’application Web déployée interagit avec les services back-end de l’application via des appels RESTful acheminés via Amazon API Gateway, fournissant ainsi un contexte d’identité de locataire à chaque appel.

    La passerelle API offre un moyen naturel d'exposer vos services dans des environnements SaaS, vous permettant de mieux mesurer et limiter l'accès à votre environnement. Elle prend également en charge un autorisateur personnalisé pouvant valider les jetons d’identité du système à chaque tentative d’accès aux services. Cet autorisateur est implémenté en tant que fonction AWS Lambda qui vous permet de créer une logique d'autorisation personnalisée pour les demandes au fur et à mesure qu'elles passent par la passerelle.

    Dans le VPC, l'architecture utilise des passerelles de traduction d'adresses réseau (NAT) déployées dans des zones de disponibilité distinctes. Ces passerelles, hébergées dans les sous-réseaux publics du VPC, fournissent un routage à haute disponibilité du trafic qui provient de vos sous-réseaux privés vers d'autres services AWS ou vers Internet.

    Le cœur des services de l’application SaaS est hébergé dans les sous-réseaux privés du VPC. Un cluster Amazon ECS héberge les conteneurs qui exécutent les microservices du système. Sept microservices Node.js distincts sont déployés dans ce cluster. Ce cluster utilise également Auto Scaling pour la haute disponibilité de base. Vous pouvez ajuster ce cluster pour qu'il réponde de manière dynamique aux changements de la charge des clients hébergés, en augmentant et en diminuant la charge en fonction de la demande. Chaque service applique le contexte de l'identité d'un locataire pour contrôler et étendre l'accès aux ressources du système.

    L'application de référence utilise divers services AWS, par exemple :

    • Les tables Amazon DynamoDB sont provisionnées selon un modèle multi-locataire pour les services nécessitant un stockage.
    • AWS Identity and Access Management (IAM) gère et applique des stratégies et des rôles d'isolation pour empêcher l'accès entre locataires.
    • Amazon Cognito sert de fournisseur d'identité, stockant des attributs qui identifient chaque client hébergé.
    • Amazon Simple Notification Service (Amazon SNS) publie des e-mails de validation pendant le processus d'enregistrement de l'utilisateur.

    L'architecture prend également en charge le déploiement continu : elle associe AWS CodePipeline, AWS CodeBuild, les compartiments S3 et Amazon EC2 Container Registry (Amazon ECR) pour gérer la création et le déploiement de nouvelles fonctionnalités d'application.

  •  Comment déployer
  • Pour créer votre environnement d’identité et d’isolation SaaS hautement disponible sur AWS, suivez les instructions du guide de déploiement. Le processus de déploiement comprend les étapes suivantes :

    1. Si vous n'avez pas encore de compte AWS, inscrivez-vous à l'adresse https://aws.amazon.com.
    2. Lancez le Quick Start. Chaque déploiement prend environ 2 heures et 15 minutes. Vous pouvez choisir entre deux options :
    3. Testez le déploiement en vous connectant au site Web de l'application de référence et en parcourant le système de gestion des commandes.

    Pour personnaliser votre déploiement, vous pouvez configurer des blocs CIDR et des adresses IP, configurer les informations d'identification d'administrateur système et configurer vos tables DynamoDB, comme indiqué dans le guide de déploiement Quick Start.

  •  Coût et licences
  • Vous êtes responsable du coût des services AWS utilisés pendant l'exécution du déploiement de référence de ce Quick Start. L'utilisation du Quick Start n'entraîne aucun coût supplémentaire.

    Le modèle AWS CloudFormation pour Quick Start inclut des paramètres de configuration que vous pouvez personnaliser. Certains de ces paramètres pourraient affecter le coût du déploiement. Pour consulter les estimations des coûts, consultez la page de tarification de chaque service AWS que vous utiliserez.