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_tokenpara 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_payloadseçã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_payloadseçã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.
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.
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 ”.