⚡ Si vous avez créé une nouvelle application Amazon Q Business le 30 avril 2024 ou après, vous pouvez désormais configurer une interface utilisateur personnalisée à l'aide des instructions mises à jour fournies ci-dessous. |
---|
Remarque : Les instructions fournies dans ce guide sont spécifiques à Cognito, mais elles devraient également fonctionner pour d'autres fournisseurs d'identité (IdP) compatibles OIDC 2.0 avec des ajustements mineurs.
Les clients souhaitent souvent pouvoir intégrer des fonctionnalités personnalisées dans l'interface utilisateur d'Amazon Q, telles que la gestion des commentaires, l'utilisation des couleurs et des modèles d'entreprise, la connexion personnalisée et la réduction du changement de contexte en intégrant l'interface utilisateur dans une plate-forme unique. Le dépôt de code montrera comment intégrer une interface utilisateur personnalisée sur Amazon Q à l'aide d'Amazon Cognito pour l'authentification des utilisateurs et du SDK Amazon Q pour appeler l'application chatbot par programme, via l'API chat_sync.
? Le flux de travail comprend les étapes suivantes :
L’utilisateur accède d’abord à l’application chatbot, qui est hébergée derrière un Application Load Balancer.
L'utilisateur est invité à se connecter avec Cognito
L'application d'interface utilisateur échange le jeton de Cognito avec un jeton IAM Identity Center avec la portée d'Amazon Q.
Les applications d'interface utilisateur assument un rôle IAM et récupèrent une session AWS à partir de Secure Token Service (STS), complétée par le jeton IAM Identity Center pour interagir avec Amazon Q.
? Blogue 1
? Blogue 2
Amazon Q utilise l'API ChatSync pour mener à bien la conversation. Grâce à la session prenant en compte l'identité, Amazon Q sait avec quel utilisateur il interagit.
La requête utilise les paramètres obligatoires suivants.
applicationId : identifiant de l'application Amazon Q liée à la conversation Amazon Q.
userMessage : un message de l'utilisateur final dans une conversation.
Amazon Q renvoie la réponse sous forme d'objet JSON (détaillé dans la documentation Amazon Q) et vous trouverez ci-dessous les quelques attributs principaux de la charge utile de la réponse.
systemMessage : Un message généré par l'IA dans une conversation
sourceAttributions : Les documents sources utilisés pour générer la réponse de conversation. Dans le RAG (Retrieval Augmentation Generation), cela fait toujours référence à un ou plusieurs documents issus des bases de connaissances d'entreprise qui sont indexées dans Amazon Q.
Avant de déployer cette solution, assurez-vous d'avoir configuré les conditions préalables suivantes :
Si vous disposez déjà d'un certificat TLS, vous pouvez ignorer cette section.
Cependant, si vous n'en avez pas et que vous souhaitez poursuivre l'exécution de cette démo, vous pouvez générer un certificat privé associé à un domaine à l'aide de la commande openssl suivante :
openssl req
-x509 -nodes -days 365 -sha256
-subj '/C=US/ST=Oregon/L=Portland/CN=sampleexample.com'
-newkey rsa:2048 -keyout key.pem -out cert.pem
aws acm import-certificate --certificate fileb://cert.pem --private-key fileb://key.pem
➡️ Veuillez noter que vous recevrez un avertissement de votre navigateur lors de l'accès à l'interface utilisateur si vous n'avez pas fourni de certificat TLS personnalisé lors du lancement de la pile AWS CloudFormation. Les instructions ci-dessus vous montrent comment créer un certificat auto-signé, qui peut être utilisé comme sauvegarde, mais cela n'est certainement pas recommandé pour les cas d'utilisation en production.
Vous devez obtenir un certificat TLS validé par une autorité de certification, l'importer dans AWS Certificate Manager et le référencer lors du lancement de la pile AWS CloudFormation.
Si vous souhaitez continuer avec le certificat auto-signé (à des fins de développement), vous devriez pouvoir dépasser la page d'avertissement du navigateur. Avec Chrome, vous verrez un message d'erreur « Votre connexion n'est pas privée » (NET::ERR_CERT_AUTHORITY_INVALID), mais en cliquant sur « Avancé », vous devriez alors voir un lien pour continuer.
Fournissez les paramètres suivants pour la pile
• Nom de la pile : nom de la pile CloudFormation (par exemple, AmazonQ-UI-Demo)
• AuthName – Un nom unique au monde à attribuer au groupe d'utilisateurs Amazon Cognito. Veuillez vous assurer que votre nom de domaine n'inclut aucun mot réservé, tel que cognito, aws ou amazon.
• CertificateARN – Le CertificateARN généré à partir de l'étape précédente
• IdcApplicationArn – ARN de l'application client Identity Center, laissez-le vide lors de la première exécution car nous devons créer le pool d'utilisateurs Cognito dans le cadre de cette pile pour créer l'application IAM Identity Center avec un émetteur de jeton de confiance.
• PublicSubnetIds – ID des sous-réseaux publics qui peuvent être utilisés pour déployer l'instance EC2 et l'Application Load Balancer. Veuillez sélectionner au moins deux sous-réseaux publics
• QApplicationId – L'ID d'application existant d'Amazon Q
• VPCId : ID du VPC existant qui peut être utilisé pour déployer la démo.
Audience : Audience pour configurer l'application client dans Identity Center
RoleArn : ARN du rôle IAM requis pour configurer l'échange de jetons dans Identity Center
TrustedIssuerUrl : point de terminaison de l'émetteur de confiance pour configurer Identity Center
URL : L'URL de l'équilibreur de charge pour accéder à l'application rationalisée
Accédez à AWS IAM Identity Center et ajoutez une nouvelle application gérée personnalisée.
Sélectionnez le type d'application -> puis sélectionnez OAuth2.0 -> Suivant
Si vous ne trouvez pas l'option de création d'une nouvelle application gérée personnalisée, veuillez activer les organisations avec IAM Identity Center.
Fournissez un nom et une description de l'application et sélectionnez l'option ci-dessous comme indiqué dans l'image
Créez maintenant un émetteur de jetons de confiance
Dans l'URL de l'émetteur -> fournissez le TrustedIssuerUrl de l'étape 1, fournissez un nom d'émetteur et conservez les attributs de la carte comme Email.
Revenez ensuite aux paramètres d'authentification de l'application IAM Identity Center, sélectionnez l'émetteur de jeton de confiance créé à l'étape précédente [actualisez-le si vous ne le voyez pas dans la liste] et ajoutez la revendication Aud -> fournissez l' audience de l'étape 1, puis cliquez sur Suivant
Dans Spécifier les informations d'identification de l'application, entrez les rôles IAM -> fournissez RoleArn à partir de l'étape 1
Passez ensuite en revue toutes les étapes et créez l’application.
Une fois l'application créée, allez dans l'application et -> Utilisateurs et groupes attribués.
Ensuite, configurez l'application de confiance pour la propagation de l'identité, suivez les étapes ci-dessous pour accéder à Amazon Q en tant qu'applications de confiance pour la propagation de l'identité.
Étape 4 : Une fois l'application IAM Identity Center créée, copiez l'ARN de l'application et accédez à Cloudformation pour mettre à jour la pile précédemment créée. Entrez l’ARN de l’application Identity Center dans le paramètre IdcApplicationArn et exécutez la pile.
Étape 5 : Une fois la mise à jour terminée, accédez à l'onglet de sortie Cloudformation pour copier l'URL et ouvrez l'URL dans un navigateur.
Étape 6 : L'application Streamlit vous demandera de vous connecter à Cognito . Pour la première tentative de connexion, essayez de vous inscrire, utilisez le même identifiant de messagerie et le même mot de passe pour l'utilisateur qui existe déjà dans IAM Identity Center.
⚡ Pour éliminer le besoin de provisionner les utilisateurs à la fois dans le pool d'utilisateurs Cognito et dans le centre d'identité, vous pouvez suivre le lien ci-dessous pour créer une deuxième application personnalisée (SAML) dans le centre d'identité. Cette application personnalisée agira en tant que fournisseur d'identité pour le pool d'utilisateurs Cognito.
? Vidéo
? Instructions
sudo -i
cd /opt/custom-web-experience-with-amazon-q-business
Voir DÉPANNAGE pour plus d'informations.
Voir CONTRIBUTION pour plus d'informations.
Cette bibliothèque est sous licence MIT-0. Voir le fichier LICENCE.