Métodos PAM Core
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
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",
"tags": "demo, test, testing"
},
{
"id": "2",
"hostname": "Admin Server",
"ip": "192.168.0.1",
"model": "Domain",
"type": "Domain",
"vendor": "Microsoft",
"site": "Default",
"tags": "demo, test, testing"
}
]
}
Consultar um único dispositivo
Você também pode consultar um único dispositivo usando os métodos WebService A2A .
Você deve substituir o wildchar *
pelo número de identificação do dispositivo ou identificador de webservice desejado.
GET /iso/pam/device/*
Resposta esperada
URI
Usando o Método POST
https://url_do_cofre/iso/pam/info
The following table is an example of the required input parameters:
Nome | Successo | Erro |
---|---|---|
status | 2xx | 4xx |
message | Informação cadastrada com sucesso | Informações não cadastradas |
erro | falso | verdadeiro |
info | Apenas divisão | |
name | Nome da informação. (obrigatório) Ex.: info1, info | |
type | Tipo de informação. (obrigatório) Ex.: access credential, Digital certificate | |
service | Nome do serviço ao qual a informação se refere. Ex.: facebook | |
url | URL do serviço referente às informações. Ex.: www.facebook.com | |
content | O conteúdo a ser protegido não pode ser apenas um arquivo de texto. (obrigatório) Ex.: protected information | |
users_allowed | Nome de usuário de usuários autorizados a acessar informações separados por vírgula. Ex: Admin, user1 | |
identifier | Identificador único da informação, para referência posterior. Ex: INFO129 |
HTTP/1.1 200 OK
{
"response": {
"status": 201,
"mensagem": "Informação cadastrada com sucesso!",
"erro": false,
"message": "Informação cadastrada com sucesso!",
"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 ao inativar um dispositivo que não existe
HTTP/1.1 400 Bad Request
{
"response": {
"status": 400,
"mensagem": "1026: O conteúdo da informação não foi informado",
"erro": false,
"message": "1026: O conteúdo da informação não foi informado",
"error": false
},
"exception": {
"code": 1026,
"message": "1026: O conteúdo da informação não foi informado",
"detail": null
}
}
Inativar um dispositivo
Você também pode inativar um dispositivo usando os métodos WebService A2A . Quando um dispositivo é inativo, todas as suas credenciais serão desativadas no senhasegura automaticamente também.
Você deve substituir o wildchar *
pelo número de identificação do dispositivo ou identificador desejado.
DELETE iso/pam/device/*
Resposta esperada
HTTP/1.1 200 OK
{
"response": {
"status": 200,
"mensagem": "Device successfully deactivated",
"erro": false,
"message": "Device successfully deactivated",
"error": false
}
}
Resposta esperada ao inativar 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
}
}
Criação e Atualização de um dispositivo
POST /iso/pam/device
A tabela a seguir é um exemplo dos parâmetros de entrada necessários:
Campo | Tipo | Exemplo | Obrig. | Obs. |
---|---|---|---|---|
hostname | String | mydevice02 | Sim | |
ip | String | 22.13.50.71 | Sim | |
site | String | AWS | Sim | |
model | String | CentOS 7 | Sim | |
vendor | String | CentOS | Sim | |
type | String | Server | Sim | Deve ser um tipo já cadastrado. |
Para atualizar um registro você deve utilizar este mesmo método. A consulta do registro será feita pelo nome da hostname. Ou seja, se você encontrar um dispositivo, o registro será atualizado. Se não encontrar, então o registro 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 ao registrar um dispositivo sem fornecer alguns 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
Consultar lista de credenciais
GET /iso/pam/credential
Este método retorna a lista de credenciais às quais o cliente A2A pode ter acesso.
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": ""
}
]
}
Consultar uma única credencial
GET /iso/pam/credential/*
Você também pode consultar uma única credencial usando os métodos WebService A2A .
Você deve substituir o wildchar *
pelo número Credential ID ou ID Identificator desejado.
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": "secret@2504",
"content": "secret@2504",
"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 uma credencial não existe ou não é permitido o acesso
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 uma credencial
DELETE /iso/pam/credential/*
Você também pode inativar uma credencial usando os métodos WebService A2A .
Você deve substituir o wildchar *
pelo número da Credencial ou ID identificador desejado.
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 não é permitido ao cliente A2A o acesso à credencial, ou quando 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
}
}
Atualizar uma credencial
POST /iso/pam/credential
Este método só permite atualizar uma credencial que já existe no senhasegura e à qual o cliente A2A já tem acesso. A tabela a seguir é um exemplo dos parâmetros de entrada necessários:
Campo | Tipo | Exemplo | Obrig. | Obs. |
---|---|---|---|---|
hostname | String | mydevice02 | Sim | |
ip | String | 22.13.50.71 | Sim | |
identifier | String | 5 | Sim | |
username | String | credential05 | Sim |
Para atualizar um registro você deve usar este mesmo método. Se o ID numérico (ID credencial) não for fornecido, a credencial será alterada por IP, Hostname e Username. Ou seja, se você encontrar um dispositivo, o registro será atualizado. Se não encontrar, então o registro será criado.
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 hostname do dispositivo não foi informado
1005: O IP do dispositivo não foi informado
1007: Credencial não encontrado
{
"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 de uma credencial
DELETE /iso/pam/credential/custody/*
Quando um saque de senha é realizado via API, a credencial permanece sob custódia do solicitante. Para liberar a custódia, é necessário utilizar este método.
Você deve substituir o wildchar *
pelo número da Credential ou ID identificador desejado.
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" é a identificação 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
Consultar uma única informação protegida
GET /iso/pam/info/*
Este método só permite que você consulte uma única informação protegida.
Você deve substituir o wildchar *
pelo número de identificação da Informação Protegida ou identificado desejado.
Resposta esperada
HTTP/1.1 200 OK
{
"response": {
"status": 200,
"mensagem": "Information 20",
"erro": false,
"message": "Information 20",
"error": false
},
"info": {
"id": "20",
"tag": "INFOID5",
"type": "Access credential",
"content": "INFOCONTENTNDIGH"
}
}
Resposta esperada quando você não tem acesso à informação ou ela 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 você tem acesso à informação, mas ela 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
DELETE /iso/pam/info/*
Você também pode inativar uma informação protegida usando os métodos WebService A2A .
Você deve substituir o wildchar *
pelo número de identificação da Informação Protegida ou identificador desejado.
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 ela 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
}
}
Criação de informações protegidas
Nova informação protegida
POST /iso/pam/info
Permite registrar uma nova informação protegida.
Campo | Tipo | Exemplo | Obrig. | Obs. |
---|---|---|---|---|
content | String | Meu conteúdo secreto | Sim | Conteúdo em texto a ser protegido. Não é possível realizar upload de arquivos. |
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
}
}
Alterar uma informação protegida
Campo | Tipo | Exemplo | Obrig. | Obs. |
---|---|---|---|---|
content | String | Meu conteúdo secreto | Sim | Conteúdo em texto a ser protegido. Não é possível realizar upload de arquivos. |
identifier | String | INFO1298 | Não | Identificador único da informação utilizada para identificação posterior. |
name | String | Minha informação | Não | Nome da informação que será apresentada nas telas do senhasegura . |
type | String | Access credential | Não | Tipo de informação. Deve ser um tipo já cadastrado |
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
}
}
Proxy de sessões
Criação de URL autenticada para sessão web
POST /iso/remote/session
Este método permite criar uma URL autenticada para incio de sessão web em dispositivos previamente cadastrados na solução através do senhasegura Web Proxy.
A tabela a seguir contém exemplos dos parâmetros de entrada:
Campo | Tipo | Exemplo | Obrig. | Obs. |
---|---|---|---|---|
user | String | senhasegura-user | Yes | Usuário para autenticação no senhasegura . Ela deve existir na solução. |
credential | String | admin | Yes | Usuário da credencial que será utilizada na sessão. |
device | String | 172.12.32.14 | Yes | Hostname ou IP do dispositivo relacionado a credencial da sessão. |
protocol | String | SSH | Yes | Protocolo de conexão no dispositivo. (SSH, RDP, HTTPS.). |
remotedevice | String | 123 | No | Código, IP ou Hostname do dispositivo, caso esteja utilizando credencial de domínio e queira realizar a sessão em dispositivo diferente do relacionado a credencial. |
remoteAddr | string | 201.13.25.61 | No | IP de conexão do usuário que irá utilizar a URL de sessão. Só será possível iniciar a sessão a partir deste endereço de IP. |
port | Int | 22 | No | Porta da conexão no dispositivo. Quando não informado, é utilizada a porta padrão do protocolo. |
remoteapp | Int | 123 | No | Código do RemoteApp. Utilizado para sessões com RemoteApp. |
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 de sessão é valida por 30 segundos. Após esse período será necessário o provisionamento de uma nova.
Resposta esperada quando o conteúdo da informação não é fornecido
HTTP/1.1 400 Bad Request
The following error may occur if the required data is not provided:
user: User not specified
credential: Credential not specified
device: Credential device not specified
protocol: Invalid protocol
\hfill
{
"response": {
"status": 400,
"mensagem": "Credential not specified",
"erro": true,
"cod_erro": 0,
"message": "Credential not specified",
"error": true,
"error_code": 0
}
}
Encerramento compulsório de sessão proxy
DELETE /iso/session/drop/[identifier]
Encerra a sessão proxy indicando o motivo do encerramento. Utilize essa funcionalidade para que sistemas externos como SIEM possam encerrar sessões baseadas nos alertas emitidos pelo próprio senhasegura .
Resposta
{
"response": {
"status": 200,
"mensagem": "Sessao encerrada",
"erro": false
}
}