⚡ Se você criou um novo aplicativo Amazon Q Business em ou após 30 de abril de 2024, agora você pode configurar uma UI personalizada usando as instruções atualizadas fornecidas abaixo. |
---|
Observação: as instruções fornecidas neste guia são específicas do Cognito, mas também devem funcionar para outros provedores de identidade (IdPs) compatíveis com OIDC 2.0 com pequenos ajustes.
Os clientes geralmente desejam a capacidade de integrar funcionalidades personalizadas à interface do usuário do Amazon Q, como tratamento de feedback, uso de cores e modelos corporativos, login personalizado e redução da alternância de contexto integrando a interface do usuário em uma única plataforma. O repositório de código mostrará como integrar uma UI personalizada no Amazon Q usando o Amazon Cognito para autenticação do usuário e o SDK do Amazon Q para invocar o aplicativo chatbot programaticamente, por meio da API chat_sync.
? O fluxo de trabalho inclui as seguintes etapas:
Primeiro, o usuário acessa o aplicativo chatbot, que está hospedado em um Application Load Balancer.
O usuário é solicitado a fazer login no Cognito
O aplicativo de UI troca o token do Cognito por um token do IAM Identity Center com escopo para Amazon Q
Os aplicativos de UI assumem uma função do IAM e recuperam uma sessão da AWS do Secure Token Service (STS), aumentada com o token do IAM Identity Center para interagir com o Amazon Q
? Blogue 1
? Blogue 2
Amazon Q usa a API ChatSync para realizar a conversa. Graças à sessão com reconhecimento de identidade, o Amazon Q sabe com qual usuário está interagindo.
A solicitação usa os seguintes parâmetros obrigatórios.
applicationId : o identificador do aplicativo Amazon Q vinculado à conversa do Amazon Q.
userMessage : uma mensagem do usuário final em uma conversa.
O Amazon Q retorna a resposta como um objeto JSON (detalhado na documentação do Amazon Q) e abaixo estão alguns atributos principais da carga útil da resposta.
systemMessage : uma mensagem gerada por IA em uma conversa
sourceAttributions : os documentos de origem usados para gerar a resposta da conversa. No RAG (Retrieval Augmentation Generation), isso sempre se refere a um ou mais documentos de bases de conhecimento empresariais indexadas no Amazon Q.
Antes de implantar esta solução, certifique-se de ter os seguintes pré-requisitos configurados:
Se você já possui um certificado TLS, pode pular esta seção.
No entanto, se você não tiver um e quiser prosseguir com a execução desta demonstração, poderá gerar um certificado privado associado a um domínio usando o seguinte comando openssl:
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
➡️ Observe que você receberá um aviso do seu navegador ao acessar a IU se não tiver fornecido um certificado TLS personalizado ao iniciar o AWS CloudFormation Stack. As instruções acima mostram como criar um certificado autoassinado, que pode ser usado como backup, mas isso certamente não é recomendado para casos de uso de produção.
Você deve obter um certificado TLS que tenha sido validado por uma autoridade de certificação, importá-lo para o AWS Certificate Manager e referenciá-lo ao iniciar o AWS CloudFormation Stack.
Se desejar continuar com o certificado autoassinado (para fins de desenvolvimento), você poderá passar pela página de aviso do navegador. Com o Chrome, você verá uma mensagem de erro "Sua conexão não é privada" (NET::ERR_CERT_AUTHORITY_INVALID), mas ao clicar em "Avançado", você verá um link para continuar.
Forneça os seguintes parâmetros para pilha
• Nome da pilha – o nome da pilha do CloudFormation (por exemplo, AmazonQ-UI-Demo)
• AuthName – um nome globalmente exclusivo para atribuir ao grupo de usuários do Amazon Cognito. Certifique-se de que seu nome de domínio não inclua palavras reservadas, como cognito, aws ou amazon.
• CertificateARN – O CertificateARN gerado na etapa anterior
• IdcApplicationArn – ARN do aplicativo do cliente do Identity Center, mantenha-o em branco na primeira execução, pois precisamos criar o grupo de usuários cognito como parte dessa pilha para criar o aplicativo IAM Identity Center com um emissor de token confiável
• PublicSubnetIds – os IDs das sub-redes públicas que podem ser usadas para implantar a instância do EC2 e o Application Load Balancer. Selecione pelo menos duas sub-redes públicas
• QApplicationId – o ID do aplicativo existente do Amazon Q
• VPCId – o ID da VPC existente que pode ser usado para implantar a demonstração
Público : Público para configurar o aplicativo do cliente no Identity Center
RoleArn : ARN da função IAM necessária para configurar a troca de token no Identity Center
TrustedIssuerUrl : endpoint do emissor confiável para configurar o Identity Center
URL : o URL do balanceador de carga para acessar o aplicativo streamlit
Navegue até AWS IAM Identity Center e adicione um novo aplicativo gerenciado personalizado.
Selecione o tipo de aplicativo -> então selecione OAuth2.0 -> Próximo
Se você não encontrar a opção de criar um novo aplicativo gerenciado personalizado, habilite organizações com o IAM Identity Center.
Forneça um nome e uma descrição do aplicativo e selecione a opção abaixo, conforme mostrado na imagem
Agora crie um emissor de token confiável
No URL do emissor -> forneça o TrustedIssuerUrl da Etapa 1, forneça um nome de emissor e mantenha os atributos do mapa como Email
Em seguida, navegue de volta para as configurações de autenticação do aplicativo IAM Identity Center, selecione o emissor de token confiável criado na etapa anterior [atualize se não estiver na lista] e adicione a declaração Aud -> forneça o público da etapa 1 e clique em Próximo
Em Especificar credenciais do aplicativo, insira as funções do IAM -> forneça RoleArn da Etapa 1
Em seguida, revise todas as etapas e crie o aplicativo.
Depois que o aplicativo for criado, vá para o aplicativo e -> Usuários e grupos atribuídos.
Em seguida, configure o aplicativo confiável para propagação de identidade, siga as etapas abaixo para Amazon Q como aplicativos confiáveis para propagação de identidade
Etapa 4: depois que o aplicativo IAM Identity Center for criado, copie o ARN do aplicativo e navegue até Cloudformation para atualizar a pilha criada anteriormente. Insira o ARN do aplicativo Identity Center no parâmetro IdcApplicationArn e execute a pilha.
Etapa 5: assim que a atualização for concluída, navegue até a guia de saída do Cloudformation para copiar o URL e abri-lo em um navegador
Etapa 6: o aplicativo Streamlit solicitará a conexão com o Cognito . Para a primeira tentativa de login, tente se inscrever, use o mesmo ID de e-mail e senha do usuário que já existe no IAM Identity Center.
⚡ Para eliminar a necessidade de provisionar usuários no grupo de usuários do Cognito e no Identity Center, você pode seguir o link abaixo para criar um segundo aplicativo personalizado (SAML) no Identity Center. Este aplicativo personalizado atuará como provedor de identidade para o grupo de usuários do Cognito.
? Vídeo
? Instruções
sudo -i
cd /opt/custom-web-experience-with-amazon-q-business
Consulte SOLUÇÃO DE PROBLEMAS para obter mais informações.
Consulte CONTRIBUINDO para obter mais informações.
Esta biblioteca está licenciada sob a licença MIT-0. Veja o arquivo LICENÇA.