Ir para o conteúdo

Registro de Auditoria

Introdução

A página Registro de auditoria do Management Console permite que os administradores da organização Harmony recuperem logs de atividades do usuário Harmony que ocorrem no Management Console, API Manager e Cloud Studio e usuários externos acessando o API Manager Portal página.

Para acessar a página, faça login no portal Harmony, em seguida, use o menu do portal Harmony no canto superior esquerdo e navegue até Management Console > Audit Logging:

Registro de auditoria

Como alternativa à visualização de logs de auditoria nesta página, você pode recuperar logs de auditoria usando uma API REST. A API do serviço de log de auditoria é descrito mais adiante nesta página.

Nota

Os logs de auditoria são retidos por 30 dias após a atividade do usuário ocorrer.

Pré-requisitos

Para ativar e visualizar logs de auditoria, você deve ser membro de uma papel com Admin permissão na organização.

Habilitar Registro de Auditoria

O controle para ativar ou desativar o log de auditoria é sincronizado nessas duas páginas do Management Console:

  • Esta página: selecione Log de auditoria desativado para ativar ou Log de auditoria ativado para desativar o log de auditoria para o currently active organization:

    cabeçalho da página 1a

    cabeçalho da página 1b

  • Organizations página: Selecione a organização apropriada na tabela. Na gaveta Políticas da Organização, selecione a aba Gerenciamento de API e selecione Ativar log de auditoria para ativar ou desativar o log de auditoria para a organização.

Cabeçalho da Página Registro de Auditoria

O cabeçalho na parte superior da página inclui uma barra de pesquisa, filtros de data e hora e opções adicionais:

cabeçalho da página 2

A barra de pesquisa permite que você filtre os logs pelos critérios de pesquisa fornecidos abaixo:

Barra de pesquisa

Critérios de Pesquisa

Estes são exemplos de critérios de pesquisa que podem ser usados:

Critério Pesquisa válida
Nome de usuário username=example@jbexample.com
Ação action=query
action=update
ID do ambiente environmentid=123456
Nome do ambiente environmentname=production

As pesquisas podem conter uma combinação de critérios. Os critérios de pesquisa combinados devem ser separados por ponto e vírgula (;) entre cada critério. Estes são exemplos de pesquisas combinadas válidas:

action=update;environment=production
environmentid=123456;action=create

Filtros de Data e Hora

Por padrão, os dados do log de auditoria dos últimos dois dias são exibidos na tabela de log de auditoria.

Para alterar o período, clique em {{ no such element: dict object['calendarToday'] }} ícone de calendário na barra de intervalo de datas:

Barra de intervalo de datas

Um seletor de datas é aberto, onde você pode definir as datas de início e término para o período de exibição:

Filtro de data de registro de auditoria

Para redefinir o período para o padrão, clique na barra de intervalo de datas {{ no such element: dict object['closeX'] }} ícone de reinicialização.

Opções Adicionais

À direita dos filtros de data e hora estão os seguintes controles:

  • {{ no such element: dict object['refresh'] }} Atualizar: Atualiza os dados da tabela.

  • {{ no such element: dict object['columnsFilter'] }} Configurações de colunas: Abra a gaveta de configurações de colunas:

    Configurações de colunas

    Use isto para alterar a disposição e a visibilidade das colunas. A gaveta tem os seguintes controles:

    • Mostrar tudo: Torna todas as colunas visíveis.
    • {{ no such element: dict object['dragVerticalSmall'] }} Mover: Arraste e solte para alterar a posição da coluna em relação às outras.
    • {{ no such element: dict object['eyeFilled'] }} Ocultar: A coluna está visível. Clique para ocultá-la.
    • {{ no such element: dict object['eyeFilledCross'] }} Mostrar: A coluna está oculta. Clique para mostrá-la.
    • Salvar: Salva as colunas.
    • Cancelar: Fecha a gaveta de colunas sem salvar as alterações.
  • {{ no such element: dict object['download'] }} Download: Clique para baixar um arquivo ZIP contendo um arquivo CSV com os dados atuais do log de auditoria com base nos filtros aplicados e critérios de pesquisa.

Quando há mais de 100 operações, elas são divididas em páginas de 100 cada. Você pode navegar por elas usando estes botões de navegação na parte inferior da tabela:

Audit logging Paginator

  • Primeira página: Vá para a primeira página.

  • Página anterior: Ir para a página anterior.

  • Próxima página: Vá para a próxima página.

  • Última página: Vá para a última página.

Exibir Logs de Auditoria

Cada linha na tabela de registros de auditoria exibe dados de registro de auditoria de atividades e logins ocorridos no Management Console, no API Manager e no Cloud Studio:

Tabela de registro de auditoria

  • Nome de usuário: O nome de usuário do usuário que realiza a atividade.

  • Ação: A ação executada pelo usuário, entre Criar, Excluir, Atualizar ou Consultar:

    • Criar: Indica que o usuário criou novos dados no conteúdo de uma página no Management Console, uma API no API Manager ou um projeto no Cloud Studio. Por exemplo, criar um novo agente no Management Console ou implantar um projeto no Cloud Studio seriam ações Criar.

    • Excluir: Indica que o usuário excluiu dados do conteúdo de uma página no Management Console, de uma API no API Manager ou de um projeto no Cloud Studio. Por exemplo, excluir um agente no Management Console ou excluir um projeto do Cloud Studio seriam ações de Excluir.

    • Atualização: Indica que o usuário atualizou o conteúdo de uma página no Management Console, de uma API no API Manager ou de um projeto no Cloud Studio. Por exemplo, alterar o nome de um agente no Management Console seria uma ação de Atualização.

    • Consulta: Indica que o usuário visualizou o conteúdo de uma página no Management Console, uma API no API Manager ou um projeto no Cloud Studio. Por exemplo, visualizar a lista de projetos no Cloud Studio seria uma ação de Consulta.

  • Informações da atividade: Quando ocorre uma ação de implantação, esta coluna exibe os nomes do projeto e da operação afetados do Cloud Studio. Quando um projeto é implementado, o nome do projeto é exibido. Quando uma única operação é implementada, o nome do projeto que contém a operação e o nome da operação são exibidos. Quando um perfil de segurança do API Manager é incluído ou removido, a mudança é exibida. Quando uma papel de usuário é alterada, a alteração é exibida.

  • Hora: O carimbo de data/hora da atividade. Os horários são exibidos no fuso horário do seu navegador.

  • ID do ambiente: O ID do ambiente ou ambientes onde a atividade ocorre.

  • Nome do Ambiente: O nome do ambiente onde a atividade ocorre.

  • Jitterbit Endpoint URL: Uma descrição do endpoint. Se nenhuma descrição estiver disponível, o URL do endpoint será mostrado.

API de Serviço de Registro de Auditoria

Como alternativa à visualização de logs de auditoria na página Registro de auditoria do Management Console, você pode recuperar logs de auditoria usando uma API REST. Isso requer o uso de utilitários de linha de comando, como curl, ou aplicativos como Postman.

Para usar a API do Audit Log Service, depois de habilitar o registro de auditoria para a organização (descrita anteriormente nesta página), siga estas etapas:

  1. Recupere um token de autenticação usando a API User Service Controller. Esse token é necessário para usar a API do Audit Log Service.

  2. Recuperar logs usando a API do serviço de log de auditoria.

Recuperar um Token de Autenticação

A recuperação de um token de autenticação requer o uso da API User Service Controller.

Importante

Se a sua Harmony organização tem TFA habilitado, esta solicitação falhará. A recuperação do token de autenticação requer duas solicitações diferentes.

Um exemplo de solicitação mostrando o login na região NA e a recuperação do token de autorização:

Using curl
curl --location --request PUT 'https://na-east.jitterbit.com/jitterbit-cloud-restful-service/user/login' \
--header 'Content-Type: application/json' \
--data-raw '{
    "email": "alice@jbexample.com",
    "password": "Jitterbit4Ever!"
}'

URL Base

O URL base depende da região em que a organização está localizada:

Região URL base
NA https://na-east.jitterbit.com/jitterbit-cloud-restful-service/user/login
EMEA https://emea-west.jitterbit.com/jitterbit-cloud-restful-service/user/login
Ásia-PACÍFICA https://apac.jitterbit.com/jitterbit-cloud-restful-service/user/login

Cabeçalhos

Estes cabeçalhos são obrigatórios:

Cabeçalho Obrigatório Exemplo Descrição
Content-Type Obrigatório 'Content-Type: application/json' Indica o formato que será enviado na solicitação.

Parâmetros Corporais

Esses parâmetros obrigatórios são passados no corpo da solicitação:

Parâmetro obrigatório Obrigatório Tipo Exemplo Descrição
email Obrigatório Cadeia de caracteres alice@jbexample.com Nome de usuário Harmony (endereço email) com uma papel com permissão Admin na organização
password Obrigatório Cadeia de caracteres Jitterbit4Ever! Senha do usuário Harmony

Corpo de Resposta

O corpo da resposta retornado contém uma lista das organizações às quais o usuário está associado, além do token de autenticação ("authenticationToken"). Esse token é necessário para autorização subsequente com a API Audit Logging. Neste exemplo, o token de autenticação é "1_70dfe7f7-1d47-4ad5-be5d-bc4a222dd2g4". O ID da organização é mostrado como "123456" para a primeira organização à qual este usuário pertence. Um exemplo da resposta:

Response Body
{
  "status": true,
  "operation": "User login",
  "authenticationToken": "1_70dfe7f7-1d47-4ad5-be5d-bc4a222dd2g4",
  "serverUrl": "https://na-east.jitterbit.com",
  "cloudAppsUrl": "https://na-east.jitterbit.com",
  "orgAttrs": [
    {
      "orgId": "123456",
      "orgName": "JB Example Company",
      "orgZoneUrl": "https://na-east.jitterbit.com"
    },
    {
      "orgId": "20970",
      "orgName": "example@jbexample.com",
      "orgZoneUrl": "https://na-east.jitterbit.com"
    }
  ],
  "defaultOrgId": "123456",
  "sessionTimeoutInSeconds": 14400
}

Recuperar um Token de Autenticação com TFA Habilitado

Se o Harmony organização tem a autenticação de dois fatores (TFA) ativada, a recuperação do token de autenticação requer duas solicitações usando a API User Service Controller:

  1. Recuperar um código TFA

  2. Use o código TFA para recuperar um token de autenticação

Recuperar um Código TFA

Um código TFA válido é necessário para recuperar um token de autenticação quando o TFA está habilitado. Um exemplo de solicitação mostrando o login na região NA e a solicitação de um código TFA:

Using curl
curl --location --request PUT 'https://na-east.jitterbit.com/jitterbit-cloud-restful-service/user/login' \
--header 'Content-Type: application/json' \
--data-raw '{
    "email": "alice@jbexample.com",
    "password": "Jitterbit4Ever!",
    "deviceId": "abcd"
}'
URL Base

O URL base depende da região em que a organização está localizada:

Região URL base
NA https://na-east.jitterbit.com/jitterbit-cloud-restful-service/user/login
EMEA https://emea-west.jitterbit.com/jitterbit-cloud-restful-service/user/login
Ásia-PACÍFICA https://apac.jitterbit.com/jitterbit-cloud-restful-service/user/login
Cabeçalhos

Estes cabeçalhos são obrigatórios:

Cabeçalho Obrigatório Exemplo Descrição
Content-Type Obrigatório 'Content-Type: application/json' Indica o formato que será enviado na solicitação.
Parâmetros Corporais

Esses parâmetros obrigatórios são passados no corpo da solicitação:

Parâmetro obrigatório Obrigatório Tipo Exemplo Descrição
email Obrigatório Cadeia de caracteres alice@jbexample.com Nome de usuário Harmony (endereço email) com uma papel com permissão Admin na organização
password Obrigatório Cadeia de caracteres Jitterbit4Ever! Senha do usuário Harmony
deviceId Obrigatório Cadeia de caracteres abcd Identificador que será utilizado para confirmar o código TFA na próxima solicitação
Corpo de Resposta

O corpo da resposta retornado contém uma mensagem de erro indicando que um código TFA foi enviado ao endereço email do usuário.

Response Body
{
  "status": false,
  "operation": "User login",
  "errorCode": "VALIDATE_TFA_LOGIN_EMAIL",
  "errorMessage": "Validate your login with authentication code. An email from Jitterbit with the code was sent to you.",
  "authenticationToken": null,
  "serverUrl": "https://na-east.jitterbit.com",
  "orgAttrs": [],
  "defaultOrgId": null
}

Use o Código TFA para Recuperar um Token de Autenticação

O código TFA enviado ao endereço email do usuário agora pode ser usado na segunda solicitação para recuperar o token de autenticação. Um exemplo de solicitação mostrando o login na região NA com um código TFA e a recuperação do token de autorização:

Using curl
curl --location --request PUT 'https://na-east.jitterbit.com/jitterbit-cloud-restful-service/user/login/code' \
--header 'Content-Type: application/json' \
--data-raw '{
    "email": "alice@jbexample.com",
    "password": "Jitterbit4Ever!",
    "code": "112233"
    "deviceId": "abcd"
}'
URL Base

O URL base depende da região em que a organização está localizada:

Região URL base
NA https://na-east.jitterbit.com/jitterbit-cloud-restful-service/user/login/code
EMEA https://emea-west.jitterbit.com/jitterbit-cloud-restful-service/user/login/code
Ásia-PACÍFICA https://apac.jitterbit.com/jitterbit-cloud-restful-service/user/login/code
Cabeçalhos

Estes cabeçalhos são obrigatórios:

Cabeçalho Obrigatório Exemplo Descrição
Content-Type Obrigatório 'Content-Type: application/json' Indica o formato que será enviado na solicitação.
Parâmetros Corporais

Esses parâmetros obrigatórios são passados no corpo da solicitação:

Parâmetro obrigatório Obrigatório Tipo Exemplo Descrição
email Obrigatório Cadeia de caracteres alice@jbexample.com Nome de usuário Harmony (endereço email) com uma papel com permissão Admin na organização
password Obrigatório Cadeia de caracteres Jitterbit4Ever! Senha do usuário Harmony
code Obrigatório Cadeia de caracteres 112233 Código TFA enviado para o email do usuário Harmony
deviceId Obrigatório Cadeia de caracteres abcd Identificador enviado para gerar o código TFA na solicitação anterior
Corpo de Resposta

O corpo da resposta retornado contém uma lista das organizações às quais o usuário está associado, além do token de autenticação ("authenticationToken"). Esse token é necessário para autorização subsequente com a API Audit Logging. Neste exemplo, o token de autenticação é "1_70dfe7f7-1d47-4ad5-be5d-bc4a222dd2g4". O ID da organização é mostrado como "123456" para a primeira organização à qual este usuário pertence. Um exemplo da resposta:

Response Body
{
  "status": true,
  "operation": "User login",
  "authenticationToken": "1_70dfe7f7-1d47-4ad5-be5d-bc4a222dd2g4",
  "serverUrl": "https://na-east.jitterbit.com",
  "cloudAppsUrl": "https://na-east.jitterbit.com",
  "orgAttrs": [
    {
      "orgId": "123456",
      "orgName": "JB Example Company",
      "orgZoneUrl": "https://na-east.jitterbit.com"
    },
    {
      "orgId": "654321",
      "orgName": "example@jbexample.com",
      "orgZoneUrl": "https://na-east.jitterbit.com"
    }
  ],
  "defaultOrgId": "123456",
  "sessionTimeoutInSeconds": 14400
}

Recuperar Logs de Auditoria

Depois de ter o token de autenticação, o ID da organização e um período de tempo de seu interesse, você pode recuperar logs de auditoria. Um exemplo mostrando a recuperação de todos os registros começando em 1º de janeiro de 2021 e incluindo a versão detalhada dos registros:

Using curl
curl --request POST 'https://api.na.jitterbit.com/v1/auditlog?detail=true' \
--header 'accept: application/json' \
--header 'authToken: 1_70dfe7f7-1d47-4ad5-be5d-bc4a222dd2g4' \
--header 'Content-Type: application/json' \
--data-raw '{
    "queryParams": {
        "organization_id": "123456"
    },
    "range": {
        "fromTimestamp": "2021-01-01T00:00:00.000Z",
        "toTimeStamp": "9999-01-01T00:00:00.000Z"
    }
}'

Nota

Se presentes na saída do log, senhas, frases de senha e tokens de autenticação são substituídos por asteriscos para mascará-los.

URL Base

O URL base depende da região em que a organização está localizada:

Região URL base
NA https://api.na.jitterbit.com/v1/auditlog
EMEA https://api.emea.jitterbit.com/v1/auditlog
Ásia-PACÍFICA https://api.apac.jitterbit.com/v1/auditlog

Endpoints

O Audit Log Service tem estes endpoints (APIs) disponíveis:

Endpoint Opcional accept Cabeçalho Descrição
auditlog 'accept: application/json' Retorna logs de auditoria no formato JSON
auditlog/download 'accept: application/zip' Retorna logs de auditoria em um formato CSV compactado (ZIP) com formato de nome de arquivo audit-log_YYYY_MM_DD_HH_MM_SS.zip

Parâmetros de URL

Esses parâmetros podem ser passados na URL:

Parâmetro Obrigatório Tipo Exemplo Descrição
detail Opcional Booleano detail=true Indica se o user_id do usuário que está realizando a ação deve ser retornado nos dados. Por padrão, isso é false.

Cabeçalhos

Esses cabeçalhos podem ser usados na solicitação:

Cabeçalho Obrigatório Exemplo Descrição
accept Opcional 'accept: application/json'
'accept: application/zip'
Indica o formato que será aceito na resposta: um dos json ou zip. Se usado, deve corresponder ao endpoint conforme mostrado acima.
authToken Obrigatório 'authToken: 1_70dfe7f7-1d47-4ad5-be5d-bc4a222dd2g4' Passa o token de autorização (authenticationToken) retornado pela API User Service Controller.
Content-Type Obrigatório 'Content-Type: application/json' Indica o formato que será enviado na solicitação.

Parâmetros Corporais

Esses parâmetros podem ser passados no corpo da solicitação:

Parâmetro Chave Obrigatório Tipo Exemplo Descrição
queryParams Não aplicável Obrigatório Mapa "queryParams": {
"organization_id": "123456"
}
Os parâmetros de consultar usados ao pesquisar o banco de dados de log de auditoria; termos de consultar são combinados com um AND operador.
queryParams organization_id Obrigatório Cadeia de caracteres 123456 ID da organização Harmony. A organização deve estar localizada na região que corresponde ao URL base.
queryParams organization_name Opcional Cadeia de caracteres JB Example Company Nome da organização.
queryParams operation_name Opcional Cadeia de caracteres /jitterbit-cloud-restful-service/... O nome (URL) da operação (a chamada de API para Harmony) que foi registrada.
queryParams action Opcional Cadeia de caracteres QUERY A ação executada pela operação.
queryParams action_timestamp Opcional Cadeia de caracteres 2021-01-01T00:00:00.000Z A partir do carimbo de data e hora, no formato aaaa-MM-ddTHH:mm:ss.sssZ.
queryParams environment_ids Opcional Cadeia de caracteres 132510, 132520, 132530 Lista separada por vírgulas de IDs de ambiente a serem usados na consultar.
queryParams environment_names Opcional Cadeia de caracteres Development, QA Lista separada por vírgulas de nomes de ambiente a serem usados na consultar.
range Não aplicável Obrigatório Mapa "range": {
"fromTimestamp": "2021-01-01T00:00:00.000Z",
"toTimeStamp": "9999-01-01T00:00:00.000Z"
}
O intervalo de tempo dos logs de auditoria que devem ser retornados. Especifique um horário no futuro para retornar todos os logs. Os logs são retidos por trinta dias. Embora você possa especificar uma data no passado e no futuro, apenas os logs dos últimos trinta dias de atividade estão disponíveis.
range fromTimestamp Obrigatório Cadeia de caracteres 2021-01-01T00:00:00.000Z Carimbo de data e hora "De", no formato aaaa-MM-ddTHH:mm:ss.sssZ.
range toTimestamp Obrigatório Cadeia de caracteres 2022-01-01T00:00:00.000Z Carimbo de data e hora "Para", no formato aaaa-MM-ddTHH:mm:ss.sssZ.

Exemplo

Este exemplo usa o auditlog/download endpoint para recuperar todos os registros da organização 123456, com uma ação de QUERY, começando em 1º de janeiro de 2023, incluindo a versão detalhada dos registros, e baixado como CSV em um formato de arquivo compactado (ZIP) para um arquivo de saída:

Using curl
curl --request POST 'https://api.na.jitterbit.com/v1/auditlog/download?detail=true' \
--output 'download.zip' \
--header 'accept: application/zip' \
--header 'authToken: 1_70dfe7f7-1d47-4ad5-be5d-bc4a222dd2g4' \
--header 'Content-Type: application/json' \
--data-raw '{
    "queryParams": {
        "organization_id": "123456",
        "action": "QUERY"
    },
    "range": {
        "fromTimestamp": "2023-01-01T00:00:00.000Z",
        "toTimeStamp": "9999-01-01T00:00:00.000Z"
    }
}'

Exemplo de Saída de Log

Este é um fragmento de exemplo da saída JSON retornada pelo auditlog endpoint:

Response Body
{
  "records": [
    {
      "username": "alice@jbexample.com",
      "organization_id": "123456",
      "organization_name": "JB Example Company",
      "operation_name": "/jitterbit-cloud-restful-service/user/login",
      "action": "UPDATE",
      "action_timestamp": "2023-03-23T09:59:59.999Z",
      "environment_ids": null,
      "environment_names": null,
      "sort_values": [
        1680083968484
      ],
      "user_id": null,
      "acitivity_info": null,
      "request_body": "null",
      "response_body": "null"
    },
    {
      "username": "bob@jbexample.com",
      "organization_id": "123456",
      "organization_name": "JB Example Company",
      "operation_name": "/jitterbit-cloud-restful-service/subscription/list/647330",
      "action": "QUERY",
      "action_timestamp": "2023-03-23T08:59:59.999Z",
      "environment_ids": null,
      "environment_names": null,
      "sort_values": [
          1680081692921
      ],
      "user_id": null,
      "acitivity_info": null,
      "request_body": "null",
      "response_body": "{\"subscriptions\":[{\"organizationId\":\"123321\",\"lastUpdatedBy\":\"alice@jbexample.com\",\"offeringName\":\"Jitterbit Harmony Enterprise\",\"activatedOn\":1658343482577,\"createdBy\":\"alice@jbexample.com\",\"displayExpiresOn\":1660934256000,\"lastUpdatedOn\":1658343482660,\"expiresOn\":2607705456000,\"id\":\"125521\",\"createdOn\":1658343482577,\"offeringEnumId\":\"5\"}],\"operation\":\"List Subscription by Organization\",\"status\":true}"
    },
    {
      "username": "bob@jbexample.com",
      "organization_id": "123456",
      "organization_name": "JB Example Company",
      "operation_name": "/jitterbit-cloud-restful-service/project/env/detail/654321",
      "action": "CREATE",
      "action_timestamp": "2023-03-23T07:59:59.999Z",
      "environment_ids": [
          "654321"
      ],
      "environment_names": [
          "Default Environment"
      ],
      "sort_values": [
          1679393229672
      ],
      "user_id": null,
      "acitivity_info": "Project: Salesforce to NetSuite Operation: Get Customers",
      "request_body": "null",
      "response_body": "{\"projEnvDetails\":{\"noOfConnections\":0,\"lastUpdatedBy\":\"alice@jbexample.com\",\"agentClusterId\":1,\"noOfHostedEndPoints\":0,\"appRuntime\":\"sandbox\",\"agentGroupId\":\"99999\",\"urlPrefix\":\"defaultUrlPrefix\",\"permission\":7,\"envId\":\"654321\",\"agentGroupName\":\"Production Cloud Agent Group\",\"lowestAgentVersion\":\"11.0.0.0\",\"createdOn\":1515425638817,\"orgId\":\"123456\",\"noOfScripts\":0,\"noOfProjects\":0,\"createdBy\":\"bob@jbexample.com\",\"envName\":\"Default Environment\",\"envType\":2,\"noOfFileFormats\":0,\"envDesc\":\"Default environment created by Harmony\",\"lastUpdatedOn\":1661335689017,\"noOfOperations\":0},\"operation\":\"Get detail of a Project Env\",\"status\":true}"
    },
. . .
  ]
}

Nota

Para a saída retornada de environment_ids e environment_names, uma resposta com um null valor indica que a operação não causa impacto no ambiente. Uma resposta com um único valor indica que a operação ocorreu no nível do ambiente e impacta apenas esse ambiente. Uma resposta com diversos valores indica que a operação ocorreu no nível da organização e impacta diversos ambientes.