Conectar o ServiceNow

Nesta página, descrevemos como conectar o ServiceNow ao Gemini Enterprise.

Depois de configurar a fonte de dados e importar os dados pela primeira vez, o repositório de dados sincroniza as informações dessa fonte com uma frequência que você seleciona durante a configuração.

Antes de começar

Antes de configurar a conexão, verifique se você tem o seguinte:

  1. Instância do ServiceNow: crie uma instância do ServiceNow seguindo as instruções na documentação do Desenvolvedor do ServiceNow.
  2. Google Cloud projeto: configure um Google Cloud projeto com uma conta de administrador capaz de gerenciar configurações no nível da organização, garantindo que ela possa configurar um pool de força de trabalho.

  3. Pool de funcionários: verifique se sua organização está configurada para gerenciar um pool de funcionários.

Configurar o ServiceNow

O ServiceNow oferece dois sites principais:

  1. Site principal do ServiceNow: o site da sua instância do ServiceNow.

    • Gerencia usuários, grupos e tarefas de administração do sistema.
    • URL: o URL da sua instância do ServiceNow.
    • Faça login usando suas credenciais de administrador.
  2. Site para desenvolvedores:

    • Configura a base de conhecimento, cria fluxos de trabalho e desenvolve aplicativos personalizados.
    • URL: https://developer.service-now.com.
    • Faça login usando seu ID do ServiceNow.

Para criar um endpoint OAuth:

  1. Faça login na instância principal do ServiceNow com uma função de administrador.
  2. Acesse Todos > OAuth do sistema > Registro de aplicativos.

    select
    Selecionar registro de aplicativo

  3. Clique em Novo.

    select
    Clique no botão "Novo"

  4. Clique em Criar um endpoint de API OAuth para clientes externos.

    select
    Selecione a opção para criar um endpoint de API OAuth para clientes externos

  5. Preencha os campos obrigatórios:

    1. Nome: insira um nome exclusivo.
    2. URL de redirecionamento: digite o URL de redirecionamento: https://vertexaisearch.cloud.google.com/console/oauth/servicenow_oauth.html
  6. Clique em Enviar para criar a credencial.

    select
    Insira o URL de redirecionamento

  7. Depois do envio, clique no nome para ver o ID do cliente.

    select
    Ver o ID do cliente

  8. O secret é mascarado. Clique no ícone de bloqueio ao lado dele para revelar e conferir o secret do cliente.

    select
    Clique no ícone de bloqueio

  9. Salve o ID do cliente e a chave secreta do cliente para uso posterior.

    select
    Copie o ID e a chave secreta do cliente

Para recuperar as credenciais da instância do ServiceNow:

  1. Acesse developer.service-now.com e clique em Gerenciar senha da instância.

    select
    Clique no botão "Gerenciar senha da instância"

  2. Mantenha uma cópia do URL, do nome de usuário e da senha da instância para usar quando necessário.

Nesta etapa, todas as cinco informações necessárias para configurar um repositório de dados do ServiceNow estão disponíveis. Se não houver problemas em usar a função de administrador para extrair dados, crie um repositório de dados.

Configurar funções e permissões de administrador

Eleve a função de administrador para security_admin e gerencie usuários e funções.

  1. Clique no ícone do seu perfil e selecione Promover função.

    select
    Clique no botão "Promover função"

  2. Selecione security_admin e clique em Atualizar. O papel security_admin ajuda a criar papéis e gerenciar usuários.

    select
    Selecione a função security_admin e clique no botão "Atualizar"

Configurar permissões e funções do usuário

Para criar um repositório de dados do ServiceNow no Gemini Enterprise, conceda as funções e permissões adequadas aos usuários. Antes de começar, é fundamental entender como o conector lida com o acesso à entidade incidente. Consulte Visibilidade de incidentes e controle de acesso.

Escolha uma das opções a seguir para conceder aos usuários as funções e permissões necessárias para configurar um repositório de dados em Google Cloud. Cada opção oferece o acesso necessário à sua instância.

Visibilidade de incidentes e controle de acesso

Para aumentar a segurança e evitar a exposição não intencional de dados, o conector do ServiceNow usa um controle de acesso restritivo para a entidade incident. Isso garante que os usuários finais só possam ver os incidentes com que estão diretamente associados.

Como parte dessa abordagem restritiva, o conector não respeita permissões amplas e baseadas em função para visibilidade de incidentes. As funções padrão do ServiceNow, como itil e sn_incident_read, que podem conceder a um usuário visibilidade de todos os incidentes na interface do ServiceNow, não concedem o mesmo nível de acesso no Gemini Enterprise.

Os usuários com qualquer uma das seguintes funções têm visibilidade global de incidentes e podem ver todos os incidentes:

  • admin
  • incident_manager
  • change_manager

Todos os outros usuários só podem ver um incidente se o abriram, reabriram, resolveram ou fecharam. Eles também podem ver um incidente se:

  • No grupo de atribuições do incidente.
  • Um autor da chamada associado ao incidente.
  • Um cessionário.
  • Em uma lista de interesses.
  • Em uma lista de observações de trabalho.
  • Em uma lista de atribuídos adicionais.

Esse comportamento impede que um usuário do Gemini Enterprise encontre um incidente a que não tem acesso. Devido às restrições adicionais em comparação com as permissões mais amplas do ServiceNow, esse comportamento pode impedir que um usuário encontre um incidente no Gemini Enterprise a que tem acesso no ServiceNow.

Criar uma função personalizada com regras de ACL (recomendado)

Crie um papel personalizado com o conjunto mínimo de permissões.

  1. Acesse Tudo > Administração de usuários > Funções.

    select
    Selecionar papéis

  2. Clique em Novo.

    select
    Clique no botão "Novo"

  3. Informe um nome e clique em Enviar.

    select
    Selecione um nome e envie

  4. Acesse Segurança do sistema > Controle de acesso (ACL).

    select
    Selecione controle de acesso (ACL)

  5. Clique em Nova para criar uma regra de ACL.

    select
    Clique no botão "Novo"

  6. Repita as duas etapas a seguir até conceder acesso a todas as tabelas necessárias.

    1. Use sys_user_role como exemplo para ver como o acesso à tabela é concedido.

      select
      Selecione sys_user_role

    2. Clique em Enviar e selecione a função.

Tabelas obrigatórias

O conector precisa de acesso a essas tabelas para que cada entidade seja executada.

Nome da tabela Descrição

incidente

Mostrar incidentes nos resultados da pesquisa.

sc_cat_item

Mostrar itens do catálogo nos resultados da pesquisa.

sc_cat_item_user_criteria_mtom

Mostre os usuários que podem acessar itens do catálogo com base nos critérios de usuário.

sc_cat_item_user_criteria_no_mtom

Mostra os usuários que não podem acessar itens do catálogo com base em critérios de usuário.

sc_cat_item_user_mtom

Mostrar quais usuários podem acessar itens do catálogo.

sc_cat_item_user_no_mtom

Mostrar usuários que não podem acessar itens do catálogo.

kb_knowledge

A lista de artigos de conhecimento que podem ser mostrados nos resultados da pesquisa.

kb_knowledge_base

A lista de bases de conhecimento que podem ser mostradas nos resultados da pesquisa.

kb_uc_can_contribute_mtom

Mostrar quem pode contribuir para bases de conhecimento com base nos critérios do usuário.

kb_uc_can_read_mtom

Mostrar quem pode ler bases de conhecimento com base nos critérios do usuário.

kb_uc_cannot_read_mtom

Mostre quem não consegue ler bases de conhecimento com base nos critérios do usuário.

sys_user_role

Lista de funções que podem ser atribuídas aos usuários.

sys_user_has_role

Lista de funções mapeadas para os usuários.

sys_user_group

Lista de segmentos de grupo de usuários.

sys_user_grmember

Lista de participantes do grupo.

sys_user

Lista de todos os usuários.

core_company

Lista de todos os atributos da empresa.

cmn_location

Lista de todos os atributos de local.

cmn_department

Lista de todos os atributos de departamento.

user_criteria

Lista de registros de critérios do usuário.

sp_portal

Vincular o URI do portal nos resultados da pesquisa.

m2m_sp_portal_knowledge_base

URI do portal de links para artigos de conhecimento nos resultados da pesquisa.

m2m_sp_portal_catalog

URI do portal de links para itens do catálogo nos resultados da pesquisa.

Conceder e verificar o acesso à ACL

O conector exige acesso de ACL aos campos de item do catálogo da tabela sc_cat_item.

Para conceder e verificar o acesso, faça o seguinte:

  1. Conceda acesso explícito criando uma nova regra de ACL e inserindo manualmente sc_cat_item.* no campo Nome do formulário.

    select
    Digite sc_cat_item.*

  2. Verifique se as ACLs foram atualizadas.

  3. Acesse sys_security_acl_role_list.do na barra de pesquisa.

    select
    Digite sys_security_acl_role_list.do

  4. Defina Papel como o papel que você quer verificar.

    select
    Selecionar papel para verificar

  5. Verifique se as ACLs necessárias estão atribuídas à função.

Usar uma função personalizada com administradores de entidades

Usar a função de administrador pode não ser adequado para equipes ou organizações que querem evitar a atribuição de permissões muito poderosas. Essa opção fornece um papel com três permissões específicas que concedem o acesso necessário.

  1. Acesse Todos > Segurança do sistema > Usuários e grupos > Funções.

    select
    Adicionar papéis

  2. Selecione Novo e insira um nome.

    select
    Clique no botão "Novo"

  3. Clique em Enviar.

    select
    Clique no botão "Enviar"

  4. Encontre o papel criada na lista.

    select
    Pesquise usando o nome da função e clique nela.

  5. Navegue até Contém papéis > Editar.

    select
    Clique no botão Editar

  6. Adicione os seguintes papéis ao papel recém-criado e clique em Salvar.

    • catalog_admin
    • knowledge_admin
    • incident_manager

    select
    Adicione papéis e clique no botão "Salvar"

  7. Confirme as atualizações.

    select
    Confirmar papéis

  8. A figura a seguir mostra o papel personalizado que inclui três papéis:

    select
    Funções personalizadas

Usar um papel de administrador

Você pode usar uma função de administrador para extrair dados. Use a função de administrador padrão configurada com a instância ou crie um novo usuário com uma função de administrador fazendo o seguinte:

  1. Acesse Todos > Administração de usuários > Usuários.

    select
    Selecionar usuários

  2. Crie um usuário com um nome.

    select
    Selecionar nome de usuário

  3. Ative a opção Somente acesso ao serviço da Web. Ao selecionar Acesso somente ao serviço da Web, você cria um usuário não interativo.

    Usuários interativos x usuários não interativos: os usuários interativos podem fazer login na interface do ServiceNow ou no portal de serviços usando o nome de usuário e a senha. Eles podem acessar uma instância por um URL que aponta para uma página, um formulário ou uma lista da interface. Também é possível se conectar usando métodos de Logon único (SSO, na sigla em inglês), como autenticação de resumo ou Linguagem de marcação para autorização de segurança (SAML). Além disso, eles podem usar as credenciais para autorizar conexões SOAP, se permitido por configurações de segurança estritas, e têm acesso irrestrito a outras conexões de API, como WSDL, JSON, XML ou XSD.

    Já os usuários não interativos só podem usar as credenciais para autorizar conexões de API como JSON, SOAP e WSDL. Eles não podem fazer login na interface do ServiceNow e só podem acessar a instância por protocolos de API.

  4. Depois de criar o usuário, selecione-o na lista.

    select
    Escolher um usuário

  5. Clique em Funções > Editar.

    select
    Editar funções

  6. Adicionar Administrador.

  7. Clique em Salvar para adicionar uma lista de papéis ao usuário.

    select
    Adicionar lista de papéis ao usuário

  8. Clique em Definir senha, gere automaticamente e salve.

    select
    Definir senha

Conceder um papel a um usuário

  1. Acesse Todos > Administração de usuários > Usuários.

    select
    Selecionar usuários

  2. Encontre ou crie um novo usuário.

    select
    Encontrar ou criar um novo usuário

  3. Se nenhum usuário estiver disponível, acesse Segurança do sistema > Usuários e grupos > Usuários.

    select
    Selecionar usuários

  4. Clique em Novo.

    select
    Clique no botão "Novo"

  5. Crie uma conta de serviço na tabela de usuários. Clique em Acesso somente ao serviço da Web.

    select
    Clique na opção "Acesso somente ao serviço da Web"

  6. Role a tela até Funções.

    select
    Navegue até "Papéis"

  7. Clique em Editar.

    select
    Editar papéis

  8. Conceda e atribua o papel criado ao usuário. Com base no tipo de papel que você criou na etapa anterior, selecione o adequado e atribua ao usuário. Clique em Salvar.

    select
    Selecione e atribua a função

    OU

    select
    Atribua a função e salve

  9. Confira a função personalizada com ACL.

    select
    Função personalizada com ACL

  10. Consiga o nome de usuário e a senha do usuário e clique em Definir senha.

    select
    Definir senha

  11. Gere uma senha automaticamente e guarde-a para uso posterior.

    select
    Gerar uma senha automaticamente

Criar um conector do ServiceNow

Console

Para usar o Google Cloud console e sincronizar dados do ServiceNow com o Gemini Enterprise, siga estas etapas:

  1. No console do Google Cloud , acesse a página Gemini Enterprise.

    Gemini Enterprise

  2. No menu de navegação, selecione Repositório de dados.

  3. Clique em Criar repositório de dados.

  4. Na página Selecionar uma fonte de dados, role a tela ou pesquise ServiceNow para conectar sua fonte de terceiros.

  5. Insira as informações de autenticação do ServiceNow.

    • URI da instância
    • ID do cliente
    • Chave secreta do cliente
    • Conta de usuário
    • Senha

    select
    Informações de autenticação do ServiceNow

  6. Preencha um nome exclusivo para seu repositório de dados e clique em Criar.

  7. Selecione quais entidades sincronizar:

    • Artigo de conhecimento

    • Catálogo de serviços

    • Incidente

    • Anexo

  8. Para filtrar entidades do índice ou garantir que elas sejam incluídas nele, clique em Filtrar.

    Especificar filtros para incluir ou excluir entidades
    Especificar filtros para incluir ou excluir entidades

  9. Clique em Salvar.

  10. Clique em Continuar.

  11. Selecione a Frequência de sincronização para Sincronização completa e a Frequência de sincronização incremental para Sincronização incremental de dados. Para mais informações, consulte Programações de sincronização.

    Se quiser programar sincronizações completas separadas de dados de entidade e identidade, expanda o menu em Sincronização completa e selecione Opções personalizadas.

    Opções personalizadas para sincronização completa de dados.
    Definir programações separadas para sincronização completa de entidades e de identidades.
  12. Selecione uma região para o conector de dados.

  13. Clique em Criar. O Gemini Enterpriserise cria e exibe os repositórios de dados na página Repositórios de dados.

  14. Para verificar o status da ingestão, acesse a página Repositórios de dados e clique no nome do conector de dados para conferir os detalhes na página Dados. O estado do conector muda de Criação para Execução quando ele começa a sincronizar dados. Quando a transferência for concluída, o estado vai mudar para Ativo para indicar que a conexão com a origem de dados está configurada e aguardando a próxima sincronização programada.

    Dependendo do tamanho dos dados, a ingestão pode levar de vários minutos a várias horas.

Ativar a sincronização em tempo real

A sincronização em tempo real só sincroniza entidades de documento e não sincroniza dados relacionados a entidades de identidade. A tabela a seguir mostra quais eventos de documento são compatíveis com a sincronização em tempo real.

Entidades do ServiceNow Criar Atualizar Excluir Alterações de permissão
Anexos
Catálogos
Incidentes
Conhecimento

Para ativar a sincronização em tempo real do conector, siga estas etapas.

  1. No console Google Cloud , acesse a página Gemini Enterprise.

    Gemini Enterprise

  2. No menu de navegação, selecione Repositório de dados.

  3. Clique no nome do conector do ServiceNow para ativar a sincronização em tempo real.

  4. Na página Dados do conector, aguarde até que o Estado do conector mude para Ativo.

  5. No campo Sincronização em tempo real, clique em Ver/editar.

    Ver e editar as configurações de sincronização em tempo real
    Ver e editar as configurações de sincronização em tempo real.

  6. Clique no botão Ativar sincronização em tempo real para a posição ativada.

  7. Informe um valor para Chave secreta do cliente. Esse valor é usado para verificar eventos de webhook do ServiceNow. Recomendamos usar uma string de 20 caracteres.

    Ativar a sincronização em tempo real e fornecer uma chave secreta do cliente
    Ative a sincronização em tempo real e forneça uma chave secreta do cliente.

  8. Clique em Salvar.

    Aguarde o campo Sincronização em tempo real mudar para Em execução.

  9. Acesse sua instância do ServiceNow usando uma conta com uma função de administrador.

  10. Clique em Todos.

  11. No campo Filtro, digite sys_properties.list e envie.

    Localizar propriedades do sistema no ServiceNow
    Localize as propriedades do sistema no ServiceNow.

  12. Clique em Nova para criar uma propriedade do sistema.

    Criar uma nova propriedade do sistema no ServiceNow
    Crie uma propriedade do sistema no ServiceNow.

  13. Preencha os campos da nova propriedade do sistema.

    • Em Nome, insira um nome descritivo, como webhook_secret.

    • Em Valor, insira o valor usado no campo Chave secreta do cliente nas configurações de sincronização em tempo real do conector do Gemini Enterprise.

  14. Clique em Enviar.

    Preencha os campos da nova propriedade do sistema
    Preencha os campos da nova propriedade do sistema do ServiceNow.

Criar um webhook para entidades de conhecimento

Para criar um webhook para entidades de conhecimento do ServiceNow, siga estas etapas.

  1. Acesse sua instância do ServiceNow usando uma conta com uma função de administrador e clique em Tudo > Definição do sistema > Regras de negócios.

    Ver regras de negócios do ServiceNow
    Consulte as regras de negócios do ServiceNow.

  2. Clique em Nova para criar uma regra de negócios.

    Criar uma regra de negócios do ServiceNow
    Crie uma regra de negócios do ServiceNow.

  3. Preencha os campos do webhook.

    • Em Nome, insira um nome descritivo, como Knowledge webhook.

    • Selecione Avançado.

    • Em Tabela, selecione Conhecimento [kb_knowledge].

    Preencher campos para o webhook de entidade de conhecimento
    Preencha os campos do webhook da entidade de conhecimento.

  4. Clique em Quando executar.

    • Em Quando, selecione antes.

    • Selecione Inserir, Atualizar e Excluir.

    Especificar quando o webhook da entidade de conhecimento deve ser executado
    Especifique quando o webhook da entidade de conhecimento deve ser executado.

  5. Clique em Avançado.

  6. Cole o seguinte código no campo Script, substituindo o valor do endpoint pelo URL de notificação do webhook fornecido quando você ativou a sincronização em tempo real para o conector do Gemini Enterprise:

    (function executeRule(current, previous /*null when async*/) {
      var request = new sn_ws.RESTMessageV2();
      request.setEndpoint('WEBHOOK_NOTIFICATION_URL');
      request.setHttpMethod('POST');
    
      var token = gs.getProperty('webhook_secret');
      var requestBody = "{\"sys_id\":\"" + current.sys_id + "\",\"entity\":\"" + "knowledge" + "\",\"operation\":\"" + current.operation() + "\"}"; 
      request.setRequestHeader("Accept","application/json");
      request.setRequestHeader('Content-Type','application/json');
      request.setRequestBody(requestBody);
      var signature = SncAuthentication.encode(requestBody, token, "HmacSHA256");
      request.setRequestHeader("X-Hub-Signature", 'sha256=' + signature);
    
      var response = request.execute();
      gs.log(response.getBody());
    })(current, previous);
    

    Insira o script fornecido
    Insira o script fornecido.

  7. Clique em Enviar.

    Envie sua nova regra de negócios
    Envie sua nova regra de negócios.

Criar um webhook para entidades de catálogo

Para criar um webhook para entidades do catálogo do ServiceNow, siga as etapas em Criar um webhook para entidades de conhecimento, com as seguintes diferenças:

  • Ao criar uma regra de negócios, em Tabela, selecione Item do catálogo [sc_cat_item].

  • Na guia Avançado, em Script, cole o código a seguir, substituindo o valor do endpoint pelo URL de notificação do webhook fornecido quando você ativou a sincronização em tempo real para o conector do Gemini Enterprise:

    (function executeRule(current, previous /*null when async*/) {
      var request = new sn_ws.RESTMessageV2();
      request.setEndpoint('WEBHOOK_NOTIFICATION_URL');
      request.setHttpMethod('POST');
    
      var token = gs.getProperty('webhook_secret');
      var requestBody = "{\"sys_id\":\"" + current.sys_id + "\",\"entity\":\"" + "catalog" + "\",\"operation\":\"" + current.operation() + "\"}"; 
      request.setRequestHeader("Accept","application/json");
      request.setRequestHeader('Content-Type','application/json');
      request.setRequestBody(requestBody);
      var signature = SncAuthentication.encode(requestBody, token, "HmacSHA256");
      request.setRequestHeader("X-Hub-Signature", 'sha256=' + signature);
    
      var response = request.execute();
      gs.log(response.getBody());
    })(current, previous);
    

Criar um webhook para entidades de incidentes

Para criar um webhook para entidades de incidentes do ServiceNow, siga as etapas em Criar um webhook para entidades de conhecimento, com as seguintes diferenças:

  • Ao criar uma regra de negócios, em Tabela, selecione Incidente [incident].

  • Na guia Avançado, em Script, cole o código a seguir, substituindo o valor do endpoint pelo URL de notificação do webhook fornecido quando você ativou a sincronização em tempo real para o conector do Gemini Enterprise:

    (function executeRule(current, previous /*null when async*/) {
      var request = new sn_ws.RESTMessageV2();
      request.setEndpoint('WEBHOOK_NOTIFICATION_URL');
      request.setHttpMethod('POST');
    
      var token = gs.getProperty('webhook_secret');
      var requestBody = "{\"sys_id\":\"" + current.sys_id + "\",\"entity\":\"" + "incident" + "\",\"operation\":\"" + current.operation() + "\"}"; 
      request.setRequestHeader("Accept","application/json");
      request.setRequestHeader('Content-Type','application/json');
      request.setRequestBody(requestBody);
      var signature = SncAuthentication.encode(requestBody, token, "HmacSHA256");
      request.setRequestHeader("X-Hub-Signature", 'sha256=' + signature);
    
      var response = request.execute();
      gs.log(response.getBody());
    })(current, previous);
    

Criar um webhook para entidades de anexo

Para criar um webhook para entidades de anexos do ServiceNow, siga as etapas em Criar um webhook para entidades de conhecimento, com as seguintes diferenças:

  • Ao criar uma regra de negócios, em Tabela, selecione Anexo [sys_attachment].

  • Na guia Avançado, em Script, cole o código a seguir, substituindo o valor do endpoint pelo URL de notificação do webhook fornecido quando você ativou a sincronização em tempo real para o conector do Gemini Enterprise:

    (function executeRule(current, previous /*null when async*/) {
      var request = new sn_ws.RESTMessageV2();
      request.setEndpoint('WEBHOOK_NOTIFICATION_URL');
      request.setHttpMethod('POST');
    
      var token = gs.getProperty('webhook_secret');
      var requestBody = "{\"sys_id\":\"" + current.sys_id + "\",\"entity\":\"" + "attachment" + "\",\"operation\":\"" + current.operation() + "\"}"; 
        request.setRequestHeader("Accept","application/json");
        request.setRequestHeader('Content-Type','application/json');
        request.setRequestBody(requestBody);
        var signature = SncAuthentication.encode(requestBody, token, "HmacSHA256");
        request.setRequestHeader("X-Hub-Signature", 'sha256=' + signature);
    
        var response = request.execute();
        gs.log(response.getBody());
    })(current, previous);
    

Configurar o pool de força de trabalho

Com o pool de colaboradores, é possível gerenciar e autenticar usuários de provedores de identidade externos, como o Azure ou o Okta, no console Google Cloud . Para configurar o pool de força de trabalho e ativar o web app para acesso fácil do usuário, faça o seguinte:

  1. Crie um pool de força de trabalho no nível da organização em Google Cloud seguindo o manual de configuração adequado:

    1. Configuração do OIDC do Azure
    2. Configuração do SAML do Azure
    3. Configuração do Okta e do OIDC
    4. Configuração do Okta e do SAML
  2. Configure o pool de força de trabalho em Gemini Enterprise > Configurações para a região em que você cria o app.

Próximas etapas