Registro de Auditoria¶
Introdução¶
A página Registro de auditoria do Management Console permite que administradores da organização Harmony (membros de uma papel com Admin permissão de organização) para recuperar registros de atividades do usuário Harmony que ocorrem no Management Console e Cloud Studio e usuários externos acessando o API Manager Portal página.
Para acessar a página Registro de auditoria, faça login no Portal Harmony, em seguida, use o menu Harmony Portal no canto superior esquerdo e navegue até Management Console > Audit Logging:
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. A API do serviço de registro de auditoria é descrito posteriormente nesta página.
Nota
Os registros de auditoria são retidos por 30 dias após a atividade do usuário.
Pré-requisitos¶
Para ativar e visualizar logs de auditoria, você deve ser membro de uma papel com permissão Admin na organização. Para obter informações sobre funções e permissões, consulte Gerenciando permissões, funções e membros.
Habilitar Registro de Auditoria¶
Para ativar e desativar o log de auditoria para uma organização específica:
-
Faça login no Portal Harmony e vá para Management Console > Organizações.
-
Selecione a organização apropriada no menu da barra de navegação superior.
-
Use o menu Ação dessa organização para selecionar Editar políticas da organização.
-
Selecione Ativar registro de auditoria e clique em Salvar para salvar as políticas da organização e ativar o registro de auditoria para a organização.
Nota
Certifique-se de estar acessando a organização desejada, que pode ser alterada na barra de navegação superior (veja Alterando a Organização Selecionada em Portal Harmony).
Cabeçalho da Página de Registro de Auditoria¶
O cabeçalho na parte superior da página Registro de auditoria inclui filtros de data e hora, uma barra de pesquisa e opções adicionais:
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.
Use os campos de calendário De e Para para filtrar os dados do registro de auditoria por data e hora:
-
De: Clique no ícone de calendário para ajustar a data de início dos registros de auditoria. Clique no ícone do relógio para ajustar o horário de início dos logs de auditoria.
-
Para: Clique no ícone de calendário para ajustar a data de término dos registros de auditoria. Clique no ícone do relógio para ajustar o horário de término dos registros de auditoria.
Depois que a data e os horários desejados forem selecionados, clique no botão de pesquisa na barra de pesquisa para preencher a tabela de registros de auditoria com os registros de auditoria desejados.
Barra de Pesquisa¶
A barra de pesquisa permite filtrar os logs pelos critérios de pesquisa fornecidos abaixo:
Critérios de Pesquisa¶
Estes são exemplos dos 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 |
Nome da Operação | operationname=login |
Combinar Pesquisas¶
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
Opções Adicionais¶
Opções adicionais de registro de auditoria são exibidas no lado direito da página, próximo à barra de pesquisa:
-
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 nos critérios de pesquisa.
-
Seta para baixo: Clique para filtrar as colunas exibidas na tabela de log de auditoria. Por padrão, todas as colunas estão selecionadas para serem exibidas:
Ver Registros de Auditoria¶
Cada linha na tabela de logs de auditoria exibe dados de log de auditoria de atividades e logins ocorridos no Management Console e Cloud Studio:
-
Nome de usuário: O nome de usuário do usuário que realiza a atividade.
-
Jitterbit Endpoint URL: O nome (caminho) da chamada de API para o Harmony que foi registrada.
-
Ação: A ação executada pelo usuário, uma entre Criar, Excluir, Atualizar ou Consultar:
-
Criar: Indica que o usuário criou novos dados no conteúdo de uma página em Management Console ou um projeto em 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 ou um projeto em 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 ou um projeto em Cloud Studio. Por exemplo, alterar o nome de um agente em Agentes > Agentes seria uma ação Update.
-
Consulta: Indica que o usuário visualizou o conteúdo de uma página no Management Console ou um projeto em Cloud Studio. Por exemplo, visualizar a lista de projetos no Cloud Studio seria uma ação de Consulta.
-
-
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 onde a atividade ocorre.
-
Nome do Ambiente: O nome do ambiente onde a atividade ocorre.
Nota
Colunas vazias para ID do ambiente e Nome do ambiente indicam que a atividade não está relacionada a um ambiente específico.
-
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.
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:
-
Recupere um token de autenticação usando a API User Service Controller. Esse token é necessário para usar a API do Audit Log Service.
-
Se a sua Harmony organização não tem a autenticação de dois fatores (TFA) ativada, recupere seu token de autenticação com uma solicitação de login padrão.
-
Se a sua Harmony organização tem o TFA habilitado, recuperando o token de autenticação requer duas solicitações:
-
-
Recuperar registros 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 tiver o TFA ativado, essa 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:
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 |
APAC | 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 formato que será enviado na solicitação. |
Parâmetros Corporais¶
Estes 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 | Corda | alice@jbexample.com | Nome de usuário Harmony (endereço e-mail ) com uma papel com permissão Admin na organização |
password | Obrigatório | Corda | 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 bem impresso da resposta:
{
"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 Ativado¶
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:
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:
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 |
APAC | 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 formato que será enviado na solicitação. |
Parâmetros Corporais¶
Estes 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 | Corda | alice@jbexample.com | Nome de usuário Harmony (endereço e-mail ) com uma papel com permissão Admin na organização |
password | Obrigatório | Corda | Jitterbit4Ever! | Senha do usuário Harmony |
deviceId | Obrigatório | Corda | abcd | Identificador que será utilizado para confirmar o código TFA no próximo pedido |
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 e-mail do usuário.
{
"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 e-mail 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:
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 |
APAC | 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 formato que será enviado na solicitação. |
Parâmetros Corporais¶
Estes 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 | Corda | alice@jbexample.com | Nome de usuário Harmony (endereço e-mail ) com uma papel com permissão Admin na organização |
password | Obrigatório | Corda | Jitterbit4Ever! | Senha do usuário Harmony |
code | Obrigatório | Corda | 112233 | Código TFA enviado para o e-mail do usuário Harmony |
deviceId | Obrigatório | Corda | abcd | Identificador apresentado para gerar o código TFA no pedido 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 bem impresso da resposta:
{
"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 Registros de Auditoria¶
Depois de ter o token de autenticação, o ID da organização e um período de interesse, você poderá recuperar os logs de auditoria. Um exemplo que mostra a recuperação de todos os registros começando em 1º de janeiro de 2021 e incluindo a versão detalhada dos registros:
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 estiverem presentes na saída do log, as senhas, frases de senha e tokens de autenticação serã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 |
APAC | 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 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 realiza 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 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 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 | Corda | 123456 | ID da organização Harmony. A organização deve estar localizada na região que corresponde ao URL base. |
queryParams | organization_name | Opcional | Corda | JB Example Company | Nome da organização. |
queryParams | operation_name | Opcional | Corda | /jitterbit-cloud-restful-service/... | O nome (URL) da operação (a chamada de API para Harmony) que foi registrada. |
queryParams | action | Opcional | Corda | QUERY | A ação executada pela operação. |
queryParams | action_timestamp | Opcional | Corda | 2021-01-01T00:00:00.000Z | A partir do carimbo de data e hora, no formato yyyy-MM-ddTHH:mm:ss.sssZ. |
queryParams | environment_ids | Opcional | Corda | 132510, 132520, 132530 | Lista separada por vírgulas de IDs de ambiente a serem usados na consultar. |
queryParams | environment_names | Opcional | Corda | 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 serão retornados. Especifique um horário no futuro para retornar todos os logs. Os registros são retidos por trinta dias. Embora você possa especificar uma data no passado e no futuro, apenas os registros dos últimos trinta dias de atividade estarão disponíveis. |
range | fromTimestamp | Obrigatório | Corda | 2021-01-01T00:00:00.000Z | Carimbo de data e hora "De", no formato yyyy-MM-ddTHH:mm:ss.sssZ. |
range | toTimestamp | Obrigatório | Corda | 2022-01-01T00:00:00.000Z | Carimbo de data e hora "até", no formato yyyy-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
, a partir de 1º de janeiro de 2023, incluindo a versão detalhada dos registros, e baixado como CSV em formato de arquivo compactado (ZIP) para um arquivo de saída:
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 Registro¶
Este é um exemplo de fragmento da saída JSON retornada pelo auditlog
endpoint:
{
"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.