Autenticação de Backend
Se você tiver uma habilidade que exija autenticação com um provedor de identidades, poderá configurar um serviço de autenticação para ativar a interação entre o Digital Assistant e esse provedor de identidades.
Por exemplo, talvez você precise configurar um serviço de autenticação se estiver criando uma habilidade para um canal do Microsoft Teams, uma habilidade que acessa um calendário do Google ou do Outlook, ou uma habilidade chamada por uma conversa iniciada pelo aplicativo que usa um ID de usuário autenticado para identificar o usuário.
Você também precisará configurar um serviço de autenticação se sua habilidade usar um componente incorporado OAuth 2.0 Client, OAuth 2.0 Account Link ou Redefinir Tokens OAuth2.
Se você tiver uma instância do Digital Assistant pareada com a assinatura de um serviço do Oracle Cloud Applications baseado no Fusion, como o Oracle Sales Automation ou o Oracle Fusion Cloud Human Capital Management, nada precisará ser feito para configurar a autenticação de backend das habilidades fornecidas. Isso foi feito para você.
Componentes de Segurança Incorporados
O Oracle Digital Assistant oferece os seguintes componentes de segurança:
- OAuth 2.0 Client : Obtém um token de acesso OAuth2 do tipo de concessão Credenciais do Cliente que um componente personalizado pode usar para acessar recursos do cliente protegidos pelo OCI IAM ou Oracle Access Manager (OAM).
(Se o fluxo de caixas de diálogo for desenvolvido no modo YAML, use
System.OAuth2Client
.)Antes de usar este componente em uma habilidade, registre um aplicativo conforme descrito em Registro do Provedor de Identidade e, em seguida, peça ao administrador para adicionar um serviço para o cliente, conforme descrito em Serviços de Autenticação. Se você tiver uma instância do Digital Assistant pareada com a assinatura de um serviço do Oracle Cloud Applications baseado no Fusion, como o Oracle Sales Cloud ou o Oracle Human Capital Management Cloud, seu domínio de identidades do OCI IAM já terá um aplicativo registrado e um serviço de autenticação criado.
- OAuth 2.0 Link da Conta : obtém um token de acesso OAuth2 do tipo de concessão Código de Autorização que um componente personalizado pode usar para acessar recursos protegidos por um destes provedores de identidades:
- IAM do OCI
- Oracle Access Manager (OAM)
- Plataforma de identidade da Microsoft
- Plataforma de identidade do Google
(Se o fluxo de caixas de diálogo for desenvolvido no modo YAML, use
System.OAuth2AccountLink
.)Outro uso desse componente seria para autenticar usuários de conversas ativadas pelo aplicativo que identificam usuários móveis por seus nomes de usuário, conforme descrito em Criar um Canal para o Aplicativo Externo.
Antes de usar este componente em uma habilidade, registre um aplicativo conforme descrito em Registro do Provedor de Identidade e, em seguida, peça ao administrador para adicionar um serviço para o cliente, conforme descrito em Serviços de Autenticação. Se você tiver uma instância do Digital Assistant pareada com a assinatura de um serviço do Oracle Cloud Applications baseado no Fusion, como o Oracle Sales Cloud ou o Oracle Human Capital Management Cloud, seu domínio de identidades do OCI IAM já terá um aplicativo registrado e um serviço de autenticação já foi criado.
-
Redefinir OAuth 2.0 tokens : Revoga todas as atualizações do usuário conectado e os tokens de acesso de um serviço de autenticação especificado. Isso se destina a fluxos de caixas de diálogo que usam o componente Link da Conta OAuth 2.0.
(Se o fluxo de caixas de diálogo for desenvolvido no modo YAML, use
System.OAuth2ResetTokens
.)Observe que você não pode usar este componente com a plataforma de identidade da Microsoft porque ela não suporta a revogação de tokens de acesso por meio de chamadas REST, somente por meio da interface de linha de comando.
-
OAuth Link da Conta : obtém o código de autorização dos provedores de identidade que suportam o protocolo OAuth2. O componente personalizado deve trocar esse código por um token de acesso. Esse componente não usa um serviço de autenticação.
(Se o fluxo de caixas de diálogo for desenvolvido no modo YAML, use
System.OAuthAccountLink
.)
Registro do Provedor de Identidade
Um administrador deve registrar um aplicativo (também conhecido como cliente OAuth) no provedor de identidades (IDP) para que você possa usar o componente OAuth2Client
, OAuth2AccountLink
ou OAuthAccountLink
em uma habilidade.
Registrar um Aplicativo no OCI IAM ou OAM
Para que você possa usar um componente OAuth2Client
, OAuth2AccountLink
ou OAuthAccountLink
em uma habilidade, um administrador deve registrar um aplicativo confidencial (também conhecido como cliente OAuth) no OCI IAM ou no OAM.
Se você tiver uma instância do Digital Assistant pareada com a assinatura de um serviço do Oracle Cloud Applications baseado no Fusion, como o Oracle Sales Cloud ou o Oracle Human Capital Management Cloud, seu domínio de identidades do OCI IAM já terá um aplicativo registrado para esse serviço.
Para saber como registrar um aplicativo no OCI IAM, consulte Adicionando um Aplicativo Confidencial na documentação do Oracle Cloud Infrastructure. Informações sobre como registrar um aplicativo no OAM podem ser encontradas em Configurando Serviços OAuth em Administrando o Oracle Access Management.
Ao registrar um aplicativo (cliente) no OCI IAM ou OAM, você precisará fornecer estas informações:
-
Tipos de Concessão Permitidos: O aplicativo deve usar o tipo de concessão Código de Autorização ou Credenciais do Cliente.
-
Escopos ou Atribuições: Inclua os recursos que seus componentes personalizados precisam acessar. Se você incluir o tipo de concessão de token de atualização, adicione também o escopo correspondente, que é
offline_access
para OCI IAM. -
URL de Redirecionamento ou Callback: Forneça o URL que o IDP utiliza para enviar de volta o código de autorização. Alguns provedores de identidade se referem a isso como URL de redirecionamento ou URI de callback. Para descobrir o que usar para o URL de redirecionamento, vá para a página Canais e abra qualquer canal do Facebook ou Webhook (se você não tiver um, crie um fictício). Use o domínio e a porta do URL do Webhook do canal (por exemplo,
https://<domain>:<port>/connectors/v2/tenants/<tenantId>/listeners/facebook/channels/<channelId>
) para criar o URL de redirecionamento, que deve estar no formatohttps://<domain>:<port>/connectors/v2/callback
. Por exemplo,https://example.com:443/connectors/v2/callback
.Se sua instância estiver provisionada no Oracle Cloud Platform (como todas as instâncias da versão 19.4.1), use
v1
em vez dev2
.
Se você estiver usando OAuth2Client
ou OAuth2AccountLink
para autenticação no IDP, depois de criar o aplicativo (cliente OAuth), anote as credenciais do cliente, o token do IDP e o URL de autorização. Você precisará dessas informações quando criar um serviço de autenticação conforme descrito em Serviços de Autenticação.
Registrar um Aplicativo na Plataforma de Identidade da Microsoft
Para registrar um aplicativo na plataforma de identidade da Microsoft, siga as instruções da Microsoft no Início Rápido: Registrar um aplicativo na plataforma de identidade da Microsoft.
Defina o tipo de aplicativo como Web.
Será necessário fornecer o URL que a plataforma usa para enviar de volta o código de autorização. Para descobrir o que usar para o URL, vá para a página Canais do Digital Assistant e abra qualquer canal do Facebook ou Webhook (se você não tiver um, crie um fictício). Use o domínio e a porta do URL do Webhook do canal (por exemplo, https://<domain>:<port>/connectors/v2/tenants/<tenantId>/listeners/facebook/channels/<channelId>
) para criar o URL de redirecionamento, que deve estar no formato https://<domain>:<port>/connectors/v2/callback
. Por exemplo, https://example.com:443/connectors/v2/callback
.
Depois de registrar o aplicativo, crie um segredo de cliente conforme descrito no tópico da Microsoft Criar um novo segredo de aplicativo. Você usará esse segredo quando criar um serviço de autenticação para o aplicativo.
Registrar um Aplicativo na Autorização do Google OAuth2
Para registrar um aplicativo no Google OAuth2, você cria um projeto e ativa as APIs necessárias, conforme mostrado no tópico do Google Ativar APIs para seu projeto. Se você planeja usar os componentes do calendário, certifique-se de ativar as APIs do Google Calendar e do CalDAV.
Em seguida, obtenha o ID do cliente e o segredo do aplicativo conforme descrito no tópico do Google Criar credenciais de autorização.
Na tela de consentimento do OAuth, especifique os escopos que seu aplicativo precisará de permissão para acessar. Consulte o tópico do Google Identificar escopos de acesso para obter mais informações.
Serviços de Autenticação
Para usar os componentes de segurança OAuth 2.0 Client e OAuth 2.0 AccountLink, o administrador deve primeiro adicionar um serviço para o IDP na página Serviços de Autenticação. Você pode criar serviços para os tipos de concessão Código de Autorização e Credencial do Cliente. Os Serviços de Autenticação suportam os provedores de identidade R2PS3 do OCI IAM e do OAM.
Se você tiver uma instância do Digital Assistant pareada com a assinatura de um serviço do Oracle Cloud Applications baseado no Fusion, como o Oracle Sales Cloud ou o Oracle Human Capital Management Cloud, um serviço de autenticação já terá sido criado para o domínio de identidades do OCI IAM associado à instância do Digital Assistant.
Antes de criar um serviço, você precisará solicitar ao administrador do IDP que forneça as informações necessárias para adicionar um serviço.
Adicionar um Serviço de Código de Autorização
Veja como criar um serviço de autenticação para o tipo de concessão Código de Autorização para o OCI IAM, o OAM, a Plataforma de Identidade da Microsoft e a Plataforma de Identidade do Google. Esse tipo de concessão autentica o nome do usuário e a senha.
Dica:
Para o OCI IAM, quando um usuário acessa por meio de um componente de link Conta OAuth 2 (Visual Flow Designer) ou de um componenteSystem.OAuth2AccountLink
(modo YAML), você pode armazenar automaticamente as informações de perfil do usuário do IAM durante uma sessão. Consulte Armazenar Perfil de Usuário Durante a Sessão.
Identidade do Usuário no Digital Assistant
No Oracle Digital Assistant, você tem duas opções principais para gerenciar as identidades dos usuários de uma determinada habilidade:
- Deixe o Digital Assistant montar um perfil de usuário temporário e provisório que seja baseado no canal do usuário e quaisquer detalhes do usuário, se houver, sejam fornecidos pelo provedor desse canal. Nesses casos, uma pessoa que acessa a mesma habilidade por meio de canais diferentes teria perfis diferentes para cada canal. Os detalhes deste perfil são armazenados por 14 dias. Esse é o comportamento padrão.
- Crie uma identidade de usuário unificada para cada usuário reconhecida em vários canais e que possa ser mantida por um período maior (ou menor). Nesse modo, você pode dar aos usuários as opções para consentir ou recusar a vinculação de seus detalhes de identidade e armazená-los com a identidade de usuário unificada. Essa abordagem está disponível para os canais do Twilio, Slack e MS Teams.
A associação a um usuário unificado também ajuda com notificações push. Ele permite que o serviço de notificação determine qual dos canais do usuário é viável para receber uma notificação e, portanto, encaminhar a mensagem para esse canal.
Configurando a Identidade de Usuário Unificada
Você pode configurar habilidades para identidades de usuários unificados com as seguintes etapas gerais:
- Ativar vinculação de conta de canal na instância do Digital Assistant.
- Adicione um serviço de código de autorização na instância do Digital Assistant.
- No fluxo de caixas de diálogo da habilidade, adicione um componente OAuth 2.0 Account Link (para o modo de caixa de diálogo Visual) ou System.OAuth2AccountLink (para o modo YAML).
- No componente, configure o tratamento do consentimento do usuário para armazenar os dados de identidade do usuário unificado.
O ID de usuário unificado de um determinado usuário é definido na primeira vez que o usuário acessa o assistente digital e se autentica com uma Autorização usando o componente OAuth 2.0. Ou seja, a identidade autenticada inicial torna-se o "ponto da verdade". Todos os IDs de conta de canal para o mesmo usuário autenticado do OAuth 2.0 estão associados ao ID de usuário unificado.
Ativar Link da Conta do Canal
Você pode ativar a vinculação da conta de canal para permitir que as identidades do usuário sejam reconhecidas em vários canais de uma habilidade. Por exemplo, se um usuário iniciar uma conversa em um canal e estiver aguardando uma resposta, ele também poderá receber uma notificação dessa resposta no outro canal.
Para ativar a vinculação de canal:
- Clique em
para abrir o menu lateral e selecione Definições > Serviços de Identidade Unificados.
- Defina a chave Vinculação de Conta de Canal como Ativado.
Antes da versão 22.12, era possível ativar a vinculação da conta de canal em habilidades individuais, incluindo um componente OAuth 2.0 Account Link na habilidade e definindo sua propriedade
associateWithUnifiedUser
como true
. A partir da versão 22.12, esta propriedade está obsoleta e não tem efeito, mesmo que permaneça no YAML de um componente.
Privacidade do Usuário Final: Opções de Consentimento do Usuário
Quando você tiver ativado o link da conta do canal, poderá configurar como tratar o consentimento do usuário para cada habilidade individualmente, usando a propriedade requiresAssociationConsent
no componente Link da Conta OAuth 2.0 da habilidade. Estas são as opções:
Yes
: Apresenta o usuário com as seguintes opções de consentimento para associação dos dados da conta do canal com um ID de usuário unificado:- Conta Associada. Confirma que o usuário aprovou a vinculação da identidade do canal atual com o ID de usuário unificado centralizado.
- Nunca Vincular Esta Conta. Indica que esta conta de canal específica não deve ser associada ao ID de usuário unificado. Posteriormente, o usuário não será perguntado se deseja vincular essa conta daqui para frente. (embora o usuário possa reverter essa decisão posteriormente).
- Não Neste Momento. Não vincula as contas da sessão atual, mas não impede que o usuário seja solicitado a aprovação nas sessões subsequentes. O prompt de consentimento é temporariamente suprimido após o usuário selecionar essa opção, mas pode reaparecer quando o usuário fizer a autenticação novamente mais de 24 horas depois.
No
. A conta do canal do usuário é automaticamente vinculada ao ID de usuário unificado sem que o usuário seja solicitado a consentir.Notify
. A conta do canal do usuário é automaticamente vinculada ao ID de usuário unificado, e o usuário é notificado desse fato.
O valor padrão da propriedade é Yes
.
Personalizar os prompts e as mensagens de consentimento do usuário
Há um conjunto de prompts e mensagens que são exibidos na conversa quando um usuário é notificado de que suas informações de identidade de conta de canal estão sendo vinculadas a uma identidade de usuário unificada ou se recebem opções de consentimento. Você pode ajustar a frase desses prompts em mensagens no pacote de recursos da habilidade.
Para acessar esses prompts e mensagens específicos no pacote de recursos:
- Na habilidade, clique em
para abrir o Pacote de Recursos.
- Selecione a guia Configuração.
- No campo Filtro, digite
OAuthAccount2Link - consent
para exibir as entradas do pacote relacionadas ao consentimento.
Retenção de Dados de Usuário Unificados
O tempo que os dados de identidade do usuário unificado são armazenados é definido no nível da instância.
Para configurar o tempo que esses dados são armazenados:
- Clique em
para abrir o menu lateral e selecione Definições > Serviços de Identidade Unificados.
- Defina a opção Excluir dados da conta de canal do usuário após o período de retenção especificado como Ativado.
Se não estiver ativado, os dados da conta de canal do usuário serão retidos indefinidamente.
- Em Período de retenção para dados do usuário da conta do canal (em dias), digite o número de dias em que deseja que os dados sejam armazenados.
O mínimo de 7 e o máximo é 1100.
Observação
Os jobs para expurgar os dados são executados apenas uma vez a cada 24 a 48 horas. Portanto, dependendo do tempo do job, os dados podem ser retidos por até 48 horas a mais do que o período de retenção designado.
A exclusão dos dados da conta de canal do usuário após o período de retenção especificado só afeta dados relacionados ao canal que são armazenados como parte de uma identidade de usuário unificada. Quando a vinculação da conta do canal não tiver sido ativada, os dados de perfil do usuário do canal serão retidos por 14 dias.
Para canais em que a vinculação de canal não é suportada, o período de 14 dias também se aplica, mesmo que a vinculação de conta de canal tenha sido globalmente ativada.