Protegendo o chat integrado

A segurança de um chat integrado inclui como a identidade é estabelecida, como o acesso é controlado, como o contexto é confiável e quem é responsável pelas salvaguardas operacionais. A aplicação da segurança depende das opções de configuração, que incluem se a autenticação está ativada. Quando ativado, toda a comunicação entre sua aplicação web e IBM watsonx Orchestrate depende de solicitações autenticadas, tokens assinados e cargas criptografadas por meio de criptografia de chave pública e autenticação por JSON Web Token (JWT).

Os recursos de voz no chat integrado utilizam o mesmo modelo de segurança que as interações baseadas em texto. Quando a segurança está ativada, os fluxos de áudio de voz são autenticados por meio de tokens JWT, e a sessão de áudio é vinculada à identidade do usuário. Para obter mais informações sobre como habilitar a função de voz no chat integrado, consulte Habilitando recursos de voz no agente integrado.

Modos de segurança

Habilite a segurança para autenticar solicitações de clientes e garantir que apenas aplicativos autorizados possam iniciar as APIs de bate-papo incorporadas. Desative-o para acesso anônimo ao chat incorporado em casos de uso específicos.

Você pode ativar ou desativar a segurança dependendo das necessidades do seu aplicativo:

  • Habilite a segurança para autenticar solicitações de clientes e garantir que apenas aplicativos autorizados possam acessar as APIs de bate-papo incorporadas.

  • Desative a segurança para permitir o acesso anônimo quando a identidade não for necessária.

Segurança ativada

A segurança para o chat incorporado é ativada por padrão no nível da instância, mas não fica ativa até que você configure explicitamente os ativos criptográficos necessários e os registre na sua instância. O chat incorporado não funcionará até que as etapas descritas na seção “Configurando a segurança do chat incorporado” sejam concluídas com sucesso.

Quando a segurança estiver ativada, certifique-se de que:

  • Todas as solicitações às APIs de chat incorporadas incluem um JWT válido.

  • A JWT deve ser assinada usando sua chave privada de cliente.

O serviço watsonx Orchestrate valida o token utilizando a chave pública do cliente para ajudar a garantir a autenticidade e a integridade da solicitação. Essa ação impede o acesso não autorizado à sua instância.

Segurança desativada

Desative a segurança para permitir que usuários anônimos acessem o chat incorporado no aplicativo web. Use este modo apenas quando o acesso anônimo for explicitamente necessário, como em demonstrações públicas, casos de uso de bate-papo anônimo e ambientes de baixo risco, sem acesso a sistemas ou dados confidenciais.

Antes de desativar a segurança, você deve revisar cuidadosamente todas as integrações em sua instância para evitar a exposição indesejada de dados e certificar-se de que sua instância:

  • Não mostra nem fornece acesso a dados confidenciais.

  • Não possui ferramentas configuradas com credenciais funcionais que acessam dados confidenciais em sistemas protegidos.

Quando a segurança está desativada, a autenticação anônima é ativada para um conjunto limitado de APIs necessárias para que o seu chat funcione para usuários anônimos.

Modelo de segurança para chat integrado

O modelo de segurança do chat incorporado utiliza pares de chaves RSA assimétricas e autenticação JWT. Ele utiliza criptografia de chave pública RSA para estabelecer confiança, autenticar solicitações e proteger dados confidenciais que são trocados entre sua aplicação web e a instância do watsonx Orchestrate.

Quando a segurança está ativada, tanto a autenticação quanto a confidencialidade são aplicadas por meio da assinatura JWT e cargas úteis criptografadas. O modelo de segurança utiliza dois pares de chaves RSA independentes, cada um com uma função claramente definida.

Par de chaves do aplicativo do cliente

Este par de chaves representa a identidade da sua aplicação web.

  • Gerado por : Você ou a infraestrutura de gerenciamento de chaves da sua organização

  • Chave pública :

    • A chave pública é enviada para watsonx Orchestrate durante a configuração.

    • É usado para verificar assinaturas JWT.

  • Chave privada:

    • A chave privada permanece sob seu controle e deve ser protegida usando práticas de gerenciamento de segredos padrão do setor.

    • É usado para assinar os JWTs enviados para watsonx Orchestrate.

Esse par de chaves permite que o watsonx Orchestrate :

  • Autentique o aplicativo de chamada.

  • Verifique a integridade do token.

  • Rejeite solicitações não autorizadas ou adulteradas.

IBM Par de chaves

Este par de chaves é gerado e gerenciado pela instância do watsonx Orchestrate.

  • Gerado por : watsonx Orchestrate

  • Uso opcional :

    • Este par de chaves é opcional e só é necessário se a sua aplicação precisar passar um sso_token para o fluxo OBO (On-Behalf-Of).

    • Se você não estiver usando OBO, não precisa criptografar ou enviar um user_payload.

  • Chave pública :

    • A chave pública é compartilhada com seu aplicativo.

    • Sua aplicação usa essa chave para criptografar a user_payload seção do JWT enviada para watsonx Orchestrate.

  • Chave privada:

    • A chave privada é armazenada com segurança pelo site watsonx Orchestrate.

    • É usado para descriptografar a user_payload seção do JWT em tempo de execução.

Este par de chaves pode garantir que:

  • O contexto sensível do usuário é criptografado durante o trânsito.

  • Somente watsonx Orchestrate pode acessar a carga útil criptografada.

  • O conteúdo da carga útil não pode ser inspecionado ou modificado por intermediários.

Nota:

Até o momento, o user_payload suporta apenas o sso_token.

Autenticação e controle de acesso

A autenticação utiliza JSON Web Tokens (JWTs) para transmitir a identidade e o contexto do usuário. Quando a segurança estiver ativada, seu aplicativo web deverá realizar as seguintes tarefas:

  • Gere um JWT assinado com a chave privada do cliente (Par de Chaves do Cliente). A assinatura do token deve corresponder à chave pública configurada em watsonx Orchestrate.

  • Inclua o JWT em todas as solicitações enviadas às APIs de chat incorporadas.

Para cada solicitação, o serviço watsonx Orchestrate verifica a assinatura do token e o valida utilizando uma chave pública que você configura como parte da configuração de segurança.

Gerenciamento do ciclo de vida de chaves e tokens

Sua aplicação web é responsável por gerenciar as chaves e o ciclo de vida dos tokens, incluindo:

  • Gerando tokens usando chaves de assinatura aprovadas.

  • Gerenciamento da expiração e renovação de tokens. Para atualizar um token durante uma sessão de chat ativa, use o updateAuthToken() método.

  • Rotação e revogação de chaves de acordo com suas políticas de segurança. Para alternar as chaves, desative a segurança e reative-a com as chaves recém-geradas.

Importante:

Ao gerar o JWT, é necessário especificar o parâmetro ` expiresIn ` para definir o prazo de validade após o qual o JWT deixará de ser válido. O tempo máximo de expiração é de 7100 segundos.

Controle de Acesso

A JWT determina o contexto de autorização para a sessão de chat incorporada e a instância associada. O chat incorporado inicia e autoriza todas as chamadas de API e acesso à instância sob as permissões do usuário.

Acesso anônimo

Se a identidade do usuário e o contexto do usuário assinado não forem necessários e nenhum dado confidencial for exposto, você pode desativar a segurança para permitir o acesso anônimo. Para obter mais informações, consulte a seção “Segurança desativada ”.