- 12 minutos de leitura
- Imprimir
- Tema escuroTema claro
- Pdf
PAM Core
- 12 minutos de leitura
- Imprimir
- Tema escuroTema claro
- Pdf
O senhasegura WebService A2A possui métodos de consulta, criação e alteração de informações armazenadas na aplicação como: adicionar, alterar e inativar dispositivos e credenciais, além de outros. Para utilizar esses métodos o recurso PAM deve ser selecionado na autorização da aplicação.
Dispositivos
Consultar a lista de dispositivos
Este método lista todos os dispositivos no PAM Core, de acordo com as permissões definidas para a autorização A2A utilizada.
GET /iso/pam/device
Resposta esperada
HTTP/1.1 200 OK
{
"response": {
"status": 200,
"mensagem": "2 devices found",
"erro": false,
"message": "2 devices found",
"error": false
},
"devices": [
{
"id": "1",
"hostname": "mydevicehostname",
"ip": "172.10.20.30",
"model": "Windows Server 2012",
"type": "Server",
"vendor": "Microsoft",
"site": "LAX",
},
{
"id": "6",
"hostname": "myseconddevice",
"ip": "41.41.208.182",
"model": "CentOS 7",
"type": "Server",
"vendor": "CentOS",
"site": "AWS"
}
]
}
Obter um dispositivo
Este método retorna informações sobre um dispositivo identificado por seu ID.
GET /iso/pam/device/[DEVICE_ID]
Resposta esperada
HTTP/1.1 200 OK
{
"response": {
"status": 200,
"mensagem": "Dispositivo 53",
"erro": false,
"cod_erro": 0,
"message": "Dispositivo 53",
"error": false,
"error_code": 0
},
"device": {
"id": "53",
"hostname": "desktop-91.com",
"ip": "172.10.20.90",
"model": "Ubuntu",
"type": "Desktop",
"vendor": "Linux",
"site": "AWS",
"device_domain": "senhasegura.lab",
"device_tags": "api, app",
"connectivities": "SSH:22",
"session_remote_config": "SSH:EXPECT:FILL",
"tags": "tag1"
}
}
Resposta esperada quando o dispositivo não é encontrado
HTTP/1.1 400 Bad Request
{
"response": {
"status": 400,
"mensagem": "1011: Device not found",
"erro": true,
"message": "1011: Device not found",
"error": true
},
"exception": {
"code": 1011,
"message": "1011: Device not found",
"detail": null
}
}
Desativar um dispositivo
Este método desativa um dispositivo identificado por seu ID. Quando um dispositivo estiver inativo, todas as suas credenciais também serão inativadas automaticamente.
DELETE iso/pam/device/[DEVICE_ID]
Resposta esperada
HTTP/1.1 200 OK
{
"response": {
"status": 200,
"mensagem": "Device successfully deactivated",
"erro": false,
"message": "Device successfully deactivated",
"error": false
}
}
Resposta esperada quando desativar um dispositivo que não existe
HTTP/1.1 400 Bad Request
{
"response": {
"status": 400,
"mensagem": "1011: Device not found",
"erro": true,
"message": "1011: Device not found",
"error": true
},
"exception": {
"code": 1011,
"message": "1011: Device not found",
"detail": null
}
}
Adicionar ou atualizar um dispositivo
Este método adiciona ou atualiza um dispositivo no PAM Core.
POST /iso/pam/device
{
"response": {
"status": 201,
"mensagem": "Dispositivo registrado com sucesso!",
"erro": false,
"cod_erro": 0,
"message": "Dispositivo registrado com sucesso!",
"error": false,
"error_code": 0
},
"device": {
"id": "53",
"hostname": "desktop-91.com",
"ip": "172.10.20.90",
"model": "Ubuntu",
"type": "Desktop",
"vendor": "Linux",
"site": "AWS",
"device_domain": "senhasegura.lab",
"device_tags": "api, app",
"connectivities": "SSH:22",
"session_remote_config": "SSH:EXPECT:FILL",
"tags": "tag1"
}
}
Parâmetros
A tabela a seguir é um exemplo dos parâmetros de entrada necessários:
Campo | Tipo | Exemplo | Obrigatório | Obs. | Novo dispositivo Default value |
---|---|---|---|---|---|
hostname | String | localhost | Sim | Nome do dispositivo. | - |
ip | String | 127.0.0.1 | Sim | Endereço IP do dispositivo. | - |
tipo | String | Server | Sim | Tipo do dispositivo. Caso não exista, um novo será criado. | - |
fornecedor | String | Debian | Sim | Fornecedor do dispositivo. Caso não exista, um novo será criado. | - |
modelo | String | 10.0 Buster | Sim | Modelo do dispositivo. Caso não exista, um novo será criado. | - |
local | String | Default | Sim | Local do dispositivo. Caso não exista, um novo será criado. | - |
device_domain | String | senhasegura.lab | Não | Nome longo ou curto do domínio, já existente no senhasegura. | - |
device_tags | String | api, app | Não | Tags do dispositivo. | - |
conectividades | String | SSH:22, HTTPS:443 | Não | Conectividades do dispositivo. | - |
session_remote_config | String | SSH:EXPECT:FILL | Não | Expressões para login. | - |
Caso exista um dispositivo com o hostname informado, ele será atualizado. Caso contrário, um novo dispositivo será criado.
Resposta esperada
HTTP/1.1 200 OK
{
"response": {
"status": 201,
"mensagem": "Device successfully registered!",
"erro": false,
"message": "Device successfully registered!",
"error": false
},
"device": {
"id": "9",
"hostname": "mydevice02",
"ip": "22.13.50.71",
"site": "AWS"
}
}
Resposta esperada quando registrar um dispositivo sem fornecer dados necessários
HTTP/1.1 400 Bad Request
{
"response": {
"status": 400,
"mensagem": "1004: The device's hostname was not informed",
"erro": true,
"message": "1004: The device's hostname was not informed",
"error": true
},
"exception": {
"code": 1004,
"message": "1004: The device's hostname was not informed",
"detail": null
}
}
Credenciais
Listar credenciais
Este método lista todas as credenciais no PAM Core, de acordo com as permissões definidas para a autorização A2A utilizada.
GET /iso/pam/credential
Resposta esperada
HTTP/1.1 200 OK
{
"response": {
"status": 200,
"mensagem": "2 credentials found",
"erro": false,
"message": "2 credentials found",
"error": false
},
"credentials": [
{
"id": "1",
"identifier": "fakeuser01ws",
"username": "fakeuser01",
"expiration": null,
"change": "2020-11-17 16:14:35",
"view": null,
"hostname": "fakedevice01",
"management_ip": "172.10.20.30",
"type": "Local User",
"type_code": "1",
"device_model": "Fake Product",
"device_type": "Server",
"device_vendor": "Fake Vendor",
"automatic_change": "0",
"connectivity": "",
"connectivity_code": ""
},
{
"id": "2",
"identifier": "fakeuser02ws",
"username": "fakeuser02",
"expiration": null,
"change": "2020-11-17 16:14:35",
"view": null,
"hostname": "fakedevice01",
"management_ip": "172.10.20.30",
"type": "Local User",
"type_code": "1",
"device_model": "Fake Product",
"device_type": "Server",
"device_vendor": "Fake Vendor",
"automatic_change": "0",
"connectivity": "",
"connectivity_code": ""
}
]
}
Obter credencial
Este método retorna informações sobre uma credencial identificada por seu ID.
GET /iso/pam/credential/[CREDENTIAL_ID]
Resposta esperada
HTTP/1.1 200 OK
{
"response": {
"status": 200,
"mensagem": "Credential 5",
"erro": false,
"message": "Credential 5",
"error": false
},
"credential": {
"id": "5",
"tag": "robot-test-5",
"username": "credential_5",
"password": "[email protected]",
"content": "[email protected]",
"hostname": "destktop-91.com",
"parent_credential_cod": null,
"parent_credential": null,
"additional": "CREDADD01",
"domain": "",
"ip": "172.10.10.90",
"port": "22",
"model": "Ubuntu",
"expiration_time": "2021-01-16T17:31:39"
}
}
Resposta esperada quando a credencial não existe ou o acesso é negado
HTTP/1.1 400 Bad Request
{
"response": {
"status": 400,
"mensagem": "1007: Credential not found",
"erro": true,
"message": "1007: Credential not found",
"error": true
},
"exception": {
"code": 1007,
"message": "1007: Credential not found",
"detail": null
}
}
Inativar credencial
Este método desativa uma credencial identificada por seu ID.
DELETE /iso/pam/credential/[CREDENTIAL_ID]
Resposta esperada
HTTP/1.1 200 OK
{
'response': {
'status': 200,
'mensagem': 'Credential successfully deactivated',
'erro': False,
'message': 'Credential successfully deactivated',
'error': False
}
}
Resposta esperada quando o cliente A2A não tem permissão para acessar a credencial ou a credencial já está inativa
HTTP/1.1 400 Bad Request
{
'response': {
'status': 400,
'mensagem': '1007: Credential not found',
'erro': True,
'message': '1007: Credential not found',
'error': True
},
'exception': {
'code': 1007,
'message': '1007: Credential not found',
'detail': None
}
}
Adicionar ou atualizar credencial
Este método adiciona ou atualiza uma credencial no PAM Core.
POST /iso/pam/credential
Parâmetros
Campo | Tipo | Exemplo | Obrigatório | Obs. | Nova Credencial Default Value |
---|---|---|---|---|---|
ID | Int | 123 | Não | ID da credencial. Necessário para atualizar. | Gerado por senhasegura |
username | String | my_user | Sim* | Nome de usuário da credencial. | usr |
conteúdo | String | [email protected] | Não | Senha da credencial. | - |
adicional | String | DATABASE | Não | Informação adicional. | - |
tags | String | api, app | Não | Tags da credencial. | - |
credential_type | String | Domain User | Não | Tipo de credencial. Caso não exista, um novo será criado. | Local User |
domínio | String | senhasegura.lab | Não | Nome longo ou curto do domínio. Ele já deve existir no senhasegura. | - |
parent_password | Int | 123 | Não | ID da credencial pai. | - |
hostname | String | localhost | Sim | Nome do dispositivo. | - |
IP | String | 127.0.0.1 | Sim | IP do dispositivo. | - |
tipo | String | Server | Não | Tipo de dispositivo. Caso não exista, um novo será criado. | - |
fornecedor | String | Debian | Não | Fornecedor do dispositivo. Caso não exista, um novo será criado. | - |
modelo | String | 10.0 Buster | Não | Modelo do dispositivo. Caso não exista, um novo será criado. | - |
local | String | Default | Não | Local do dispositivo. Caso não exista, um novo será criado. | - |
device_domain | String | senhasegura.lab | Não | Nome longo ou curto do domínio. Ele já deve existir no senhasegura. | - |
device_tags | String | api, app | Não | Tags do dispositivo. | - |
conectividades | String | SSH:22, HTTPS:443 | Não | Conectividades do dispositivo. | - |
session_remote_config | String | SSH:EXPECT:FILL | Não | Expressões para login. | - |
*Obrigatório apenas ao criar uma nova credencial, não para atualizações. Para atualizar uma credencial, deve-se informar o ID da credencial ou IP do dispositivo, hostname do dispositivo e nome de usuário.
Resposta esperada
HTTP/1.1 200 OK
{
"response": {
"status": 201,
"mensagem": "Credential updated successfully!",
"erro": false,
"message": "Credential updated successfully!",
"error": false
},
"credential": {
"id": "5",
"tag": "robot-test-5"
}
}
Resposta esperada quando um dos dados necessários não é fornecido
HTTP/1.1 400 Bad Request
Os seguintes códigos de erro podem ocorrer se os dados necessários não forem fornecidos:
- 1004: o nome do host do dispositivo não foi informado
- 1005: o IP do dispositivo não foi informado
- 1007: Credencial não encontrada
{
"response": {
"status": 400,
"mensagem": "1004: The device's hostname was not informed",
"erro": true,
"message": "1004: The device's hostname was not informed",
"error": true
},
"exception": {
"code": 1004,
"message": "1004: The device's hostname was not informed",
"detail": null
}
}
Liberar a custódia da credencial
DELETE /iso/pam/credential/custody/[CREDENTIAL_ID]
Quando uma solicitação de senha é realizada via API, a credencial fica sob custódia do solicitante. Para liberar a custódia é necessário utilizar este método.
Resposta esperada
HTTP/1.1 200 OK
{
"response": {
"status": 200,
"mensagem": "Credential custody 1 released",
"erro": false,
"message": "Credential custody 1 released",
"error": false
}
}
No exemplo acima, o número "1" é o ID da credencial.
Resposta esperada quando você não tem acesso à credencial ou a credencial não existe
HTTP/1.1 400 Bad Request
{
"response": {
"status": 400,
"mensagem": "1007: Credential not found",
"erro": true,
"message": "1007: Credential not found",
"error": true
},
"exception": {
"code": 1007,
"message": "1007: Credential not found",
"detail": null
}
}
Informações protegidas
Obter uma informação protegida
Este método só permite consultar uma única informação protegida.
GET /iso/pam/info/[PROTECTED_INFORMATION_ID]
Resposta esperada
HTTP/1.1 200 OK
{
"response": {
"status": 201,
"mensagem": "Information successfully registered!",
"erro": false,
"message": "Information successfully registered!",
"error": false
},
"info": {
"name": "saas_vault1",
"type": "access credential",
"service": "saas_client",
"url": "10.10.10.2",
"content": "login: mt4adm, password: mt4admp4ss",
"users_allowed": "admin, account_manager, mscharra",
"identifier": "INFOSAASVAULT1"
}
}
Resposta esperada quando você não tem acesso à informação ou não existe
HTTP/1.1 400 Bad Request
{
"response": {
"status": 400,
"mensagem": "1026: The information content was not informed",
"erro": false,
"message": "1026: The information content was not informed",
"error": false
},
"exception": {
"code": 1026,
"message": "1026: The information content was not informed",
"detail": null
}
}
Resposta esperada quando você tem acesso à informação, mas está inativa
HTTP/1.1 400 Bad Request
{
"response": {
"status": 400,
"mensagem": "1024: Inactive information",
"erro": true,
"message": "1024: Inactive information",
"error": true
},
"exception": {
"code": 1024,
"message": "1024: Inactive information",
"detail": null
}
}
Inativar uma informação protegida
Você também pode inativar uma informação protegida usando métodos WebService A2A.
DELETE /iso/pam/info/[PROTECTED_INFORMATION_ID]
Resposta esperada
HTTP/1.1 200 OK
{
"response": {
"status": 200,
"mensagem": "Information successfully deactivated",
"erro": false,
"message": "Information successfully deactivated",
"error": false
}
}
Resposta esperada quando você não tem acesso à informação ou não existe
HTTP/1.1 400 Bad Request
{
"response": {
"status": 400,
"mensagem": "1023: Information not found",
"erro": true,
"message": "1023: Information not found",
"error": true
},
"exception": {
"code": 1023,
"message": "1023: Information not found",
"detail": null
}
}
Resposta esperada quando a informação já está inativa
HTTP/1.1 400 Bad Request
{
"response": {
"status": 400,
"mensagem": "1024: Inactive information",
"erro": true,
"message": "1024: Inactive information",
"error": true
},
"exception": {
"code": 1024,
"message": "1024: Inactive information",
"detail": null
}
}
Criar uma informação protegida
POST /iso/pam/info
Parâmetros
Campo | Tipo | Exemplo | Req. | Obs. |
---|---|---|---|---|
conteúdo | String | Meus dados secretos | Sim | Dados secretos a serem protegidos. O upload do arquivo não está disponível. |
Resposta esperada
HTTP/1.1 200 OK
{
"response": {
"status": 201,
"mensagem": "Information successfully registered!",
"erro": false,
"message": "Information successfully registered!",
"error": false
},
"info": {
"id": "4",
"tag": null
}
}
As informações a seguir são um exemplo dos parâmetros de entrada completos:
Campo | Tipo | Exemplo | Req. | Obs. |
---|---|---|---|---|
conteúdo | String | Meus dados secretos | Sim | Conteúdo de texto simples a ser protegido. O upload do arquivo não está disponível. |
identificador | String | INFO1298 | Não | Identificador exclusivo usado para solicitar esses dados. |
nome | String | Minhas informações protegidas | Não | Nome da informação a ser apresentado nas páginas senhasegura. |
tipo | String | Credencial de acesso | Não | Tipo de informação. Deve ser um existente. |
Resposta esperada
HTTP/1.1 200 OK
{
"response": {
"status": 201,
"mensagem": "Information successfully registered!",
"erro": false,
"message": "Information successfully registered!",
"error": false
},
"info": {
"id": "18",
"tag": "INFOIDV0GSF"
}
}
Resposta esperada quando o conteúdo da informação não é fornecido
HTTP/1.1 400 Bad Request
{
"response": {
"status": 400,
"mensagem": "1026: The information content was not informed",
"erro": true,
"message": "1026: The information content was not informed",
"error": true
},
"exception": {
"code": 1026,
"message": "1026: The information content was not informed",
"detail": null
}
}
Sessões Proxy
Criar um URL autenticado de sessão da web
POST /iso/remote/session
Este método permite gerar uma URL autenticada para iniciar uma sessão web em um dispositivo previamente cadastrado na solução usando o senhasegura Web Proxy. Caso não seja informada uma resolução, o sistema utilizará o valor de 1920x1080 como padrão do sistema.
A tabela a seguir é um exemplo dos parâmetros de entrada necessários:
Campo | Tipo | Exemplo | Req. | Obs. |
---|---|---|---|---|
usuário | String | usuário senhasegura | Sim | Nome de usuário para autenticação no senhasegura. Deve existir na solução. |
credencial | String | administrador | Sim | Nome de usuário de credencial a ser usado para sessão da web. |
dispositivo | String | 172.12.32.14 | Sim | Nome do host ou IP do dispositivo de destino. |
protocolo | String | SSH | Sim | Protocolo de rede (SSH, RDP, HTTPS...). |
dispositivo remoto | String | 123 | Não | Device ID, IP ou Hostname para sessão web. Necessário apenas para sessões que usam credenciais de domínio. |
remoteAddr | String | 201.13.25.61 | Não | Endereço IP de conexão do usuário. A sessão funcionará online a partir deste endereço IP. |
porto | Int | 22 | Não | Porta a ser usada na sessão. Caso não seja informado, será utilizada a porta padrão configurada no dispositivo. |
aplicativo remoto | Int | 123 | Não | ID RemoteApp. Usado em caso de sessão RemoteApp. |
tamanho de tela | String | 1900x1200 | Resolução da tela. |
Resposta esperada
HTTP/1.1 200 OK
{
"response": {
"status": 200,
"mensagem": "Session created successfully",
"erro": false,
"message": "Session created successfully",
"error": false
},
"session": {
"session_url": "https://senhasegura/modulos/auth?_sr=cmJzOkQwUzdq
Wk9zQkhKY2FvRkNaQ0Q2OVRnbVdmTnk1MEc2cDNnM1orM2ltL3BxQURZNW91WW1G
TExFU2JlYldkTlRabFNWb0Z2VzllU0E1WlIraEtJM3NvMlZmZ0NZTXV4QlNFWEt
PUko3YlMxQWNwZmxYTWw2ZGxsUlFEOCtPdlBq",
"token": "c4ac50a35bcc0a0d1641b02e64dd7c6421d3e5be2afa5378ca29ce5621e2eb38"
}
}
A URL da sessão é válida por 30 segundos. Após esse tempo, você precisa gerar um novo.
Resposta esperada quando um dos dados necessários não é fornecido
HTTP/1.1 400 Bad Request
O seguinte erro pode ocorrer se os dados necessários não forem fornecidos:
- usuário: usuário não especificado
- credencial: credencial não especificada
- dispositivo: dispositivo de credencial não especificado
- protocolo: protocolo inválido
{
"response": {
"status": 400,
"mensagem": "Credential not specified",
"erro": true,
"cod_erro": 0,
"message": "Credential not specified",
"error": true,
"error_code": 0
}
}
Encerramento obrigatório da sessão de proxy
A sessão de proxy termina indicando o motivo do encerramento. Use essa funcionalidade para que sistemas externos como SIEM possam encerrar sessões com base nos alertas emitidos pelo próprio senhasegura.
DELETE /iso/session/drop/[SESSION_IDENTIFIER]
Resposta esperada
{
"response": {
"status": 200,
"menssage": "Session finished",
"erro": false
}
}