O SDK Segura para Java facilita o acesso dos desenvolvedores aos serviços Segura em seu código, permitindo construir aplicações robustas utilizando os serviços PAM e DSM da Segura. Os serviços incluem Credenciais, Dispositivos e Gerenciamento de Segredos DevOps.
Requisitos
Para executar o SDK, seu sistema precisa atender aos requisitos mínimos, incluindo Java JDK >= 8. Também é necessário obter um token de aplicação para autorização padrão OAuth 2.0 com o administrador do sistema.
Informações
- Cache local: todas as informações são armazenadas em cache local para reduzir o tempo de resposta das requisições. Os dados são criptografados antes do armazenamento para garantir a segurança.
- Credenciais: o objeto de credencial fornece um conjunto de métodos para consultar e registrar credenciais.
Criar um objeto do tipo CredentialClient
Para instanciar um cliente de credencial, utilize a classe CredentialClient
.
Você deverá fornecer os seguintes parâmetros:
- URL do PAM.
client_ID
.client_secret
.
import Segura;
// Instancie um cliente de credencial.
CredentialClient client = new CredentialClient(
"https://cofre.Segura.com", // URL do PAM
"7e02a0e07eef10e73f56585a9a505fb2e", // OAuth 2.0 Application Client ID
"431eaba0fb56bf360272b54892" // OAuth 2.0 Application Client Secret
);
Criar ou atualizar uma credencial
Use o método Save
para criar ou atualizar uma credencial. Se encontrar uma credencial com os parâmetros fornecidos, ela será alterada; caso contrário, uma nova credencial será criada.
Assinatura do método
public void Save(String hostname, String ip, String identifier, String username) { ... }
Parâmetros obrigatórios
Parâmetro | Tipo | Exemplo | Descrição |
---|---|---|---|
hostname |
String | mycredential02 |
Hostname da credencial |
ip |
String | 22.13.50.71 |
Endereço IP |
identifier |
String | 5 |
Identificador da credencial |
username |
String | credential05 |
Nome de usuário |
Exemplo: salvar uma credencial
client.Save("mycredential02","22.13.50.71", "5", "credential05");
Buscar uma credencial registrada
Use o método Get
para consultar uma única credencial. Assinatura do método:
public Credential Get(String hostname, String ip, String username) { ... }
Parâmetros disponíveis para filtro
Parâmetro | Tipo | Exemplo | Descrição |
---|---|---|---|
hostname |
String | mycredential02 | Hostname da credencial (opcional) |
ip |
String | 22.13.50.71 | Endereço IP (opcional) |
username |
String | credential05 | Nome de usuário (opcional) |
Exemplo: buscar a credencial credential05
do dispositivo com hostname mycredential02
Credential credential = client.Get("mycredential02", "", "credential05");
Listar credenciais
Use o método Fetch
para consultar uma lista de credenciais.
Assinatura do método
public ArrayList<Credential> Fetch(String hostname, String ip, String username, String all) { ... }
Parâmetros disponíveis para filtro
Parâmetro | Tipo | Exemplo | Descrição |
---|---|---|---|
hostname |
String | mycredential02 | Hostname da credencial (opcional) |
ip |
String | 22.13.50.71 | Endereço IP da credencial (opcional) |
username |
String | credential05 | Nome de usuário da credencial (opcional) |
all |
String | credential05 | Busca o valor nos campos hostname , ip ou username (opcional) |
Exemplo 1: listar todas as credenciais
ArrayList<Credential> credentials = client.Fetch();
Exemplo 2: listar todas as credenciais do dispositivo com hostname mycredential02
ArrayList<Credential> credentials = client.Fetch("mycredential02", "", "", "");
Desativar uma credencial
Use o método Disable
para inativar uma credencial.
Assinatura do método
private void Disable(String hostname, String ip, String username) { ... }
Parâmetros disponíveis para filtro
Parâmetro | Tipo | Exemplo | Descrição |
---|---|---|---|
hostname |
String | mycredential02 | Hostname da credencial (opcional) |
ip |
String | 22.13.50.71 | Endereço IP (opcional) |
username |
String | credential05 | Nome de usuário (opcional) |
Exemplo: desativar a credencial credential05
do dispositivo com hostname mycredential02
client.Disable("mycredential02","","credential05" );
Dispositivos
O objeto dispositivo fornece um conjunto de métodos para consultar e registrar dispositivos.
Criar um objeto do tipo DeviceClient
Para instanciar um cliente de dispositivo, utilize a classe DeviceClient
.
Você deverá fornecer os seguintes parâmetros:
- URL do Cofre.
client_ID
client_secret
.
import Segura;
// Instancie um cliente de dispositivo.
DeviceClient device = new DeviceClient(
"https://cofre.Segura.com", // URL
"7e02a0e07eef10e73f56585a9a505fb2e", // OAuth 2.0 Application
"431eaba0fb56bf360272b54892" // OAuth 2.0 Application Client
);
Criar ou atualizar um dispositivo
Use o método Save
para criar ou atualizar um dispositivo. Se um dispositivo com os parâmetros fornecidos for encontrado, ele será alterado; caso contrário, um novo dispositivo será criado.
Assinatura do método
public void Save(String hostname, String ip, String site, String model, String vendor, String type) { ... }
Parâmetros obrigatórios
Parâmetro | Tipo | Exemplo | Descrição |
---|---|---|---|
hostname |
String | mydevice02 | Hostname do dispositivo |
ip |
String | 22.13.50.71 | Endereço IP do dispositivo |
site |
String | AWS | Site ou local do dispositivo |
model |
String | CentOS 7 | Modelo ou versão do SO do dispositivo |
vendor |
String | CentOS | Fabricante do dispositivo |
type |
String | Server | Tipo de dispositivo (deve ser um existente) |
Exemplo: salvar um dispositivo
client.Save("mydevice02","22.13.50.71","AWS","CentOS 7","CentOS", "Server");
Buscar um dispositivo registrado
Use o método Get
para consultar um único dispositivo.
Assinatura do método
public Device Get(String identifier) { ... }
Parâmetro obrigatório para filtro
Parâmetro | Tipo | Exemplo | Descrição |
---|---|---|---|
identifier |
String | localhost |
Hostname ou ID do dispositivo a consultar |
Exemplo: buscar o dispositivo com hostname localhost
Device device = client.Get("localhost");
Listar dispositivos
Use o método Fetch
para consultar uma lista de dispositivos. Assinatura do método:
public ArrayList<Device> Fetch(String hostname, String ip, String type, String vendor, String model, { ... }
Parâmetros disponíveis para filtro
Parâmetro | Tipo | Exemplo | Descrição |
---|---|---|---|
hostname |
String | mydevice02 | Hostname do dispositivo (opcional) |
ip |
String | 22.13.50.71 | Endereço IP do dispositivo (opcional) |
type |
String | Server | Tipo do dispositivo (opcional) |
vendor |
String | CentOS | Fabricante do dispositivo (opcional) |
model |
String | CentOS 7 | Modelo do dispositivo (opcional) |
site |
String | AWS | Site ou local (opcional) |
Exemplo 1: listar todos os dispositivos
ArrayList<Device> devices = client.Fetch();
Exemplo 2: listar dispositivos do tipo server
ArrayList<Device> devices = client.Fetch("server");
Desativar um dispositivo
Use o método Disable
para inativar um dispositivo.
Assinatura do método
private void Disable(String identifier) { ... }
Parâmetro obrigatório para filtro
Parâmetro | Tipo | Exemplo | Descrição |
---|---|---|---|
identifier |
String | localhost |
Hostname ou ID do dispositivo a consultar |
Exemplo: inativar o dispositivo com hostname localhost
client.Disable("localhost");
Gerenciamento de segredos DevOps
O objeto DSM fornece um conjunto de métodos para registrar uma aplicação e gerenciar seus segredos e variáveis.
Criando um cliente DSM
Para instanciar um cliente de aplicação, utilize a classe ApplicationClient
.
Você deverá fornecer os seguintes parâmetros:
- URL do Cofre.
client_ID
.client_secret
.
import Segura;
ApplicationClient client = new ApplicationClient(
"https://cofre.Segura.com", // URL do PAM
"7e02a0e07eef10e73f56585a9a505fb2e", // OAuth 2.0 A
"431eaba0fb56bf360272b54892" // OAuth 2.0 Applicati
);
Criar ou atualizar uma aplicação
Use o método Save
para criar ou atualizar a aplicação. Se o cliente possuir uma aplicação com a combinação de aplicação, sistema e ambiente, ela será alterada; caso contrário, uma nova aplicação ou autorização será criada. Se a aplicação possuir provisionamento dinâmico habilitado, o destino irá provisionar automaticamente um segredo.
Assinatura do método
public void Save(String application, String system, String environment, String unique_key) { ... }
Parâmetros obrigatórios
Parâmetro | Tipo | Exemplo | Descrição |
---|---|---|---|
application |
String | checkout | Nome da aplicação |
system |
String | ecommerce | Sistema ao qual a aplicação pertence |
environment |
String | production | Ambiente da aplicação |
Parâmetro opcional
Parâmetro | Tipo | Exemplo | Descrição |
---|---|---|---|
unique_key |
String | checkout_auth01 | Chave única da aplicação |
Exemplo: salvar uma aplicação
client.Save("checkout", "ecommerce", "production","");
Obter informações e segredos da aplicação cliente
Use o método Get
para retornar as informações da aplicação cliente.
Application application = client.Get();
Assinatura do método
public Application Get() { ... }
Exemplo: obter informações e segredos da aplicação
Application application = client.Get();
Registrar segredos da aplicação
Use o método RegisterSecret
para registrar os segredos da aplicação.
Assinatura do método:
public void RegisterSecret(String secret_type, String access_keys, String key_value, String credential { ... }
Parâmetro obrigatório
Parâmetro | Tipo | Valores Possíveis | Descrição |
---|---|---|---|
secret_type |
String | access_key , key_value , credential , certificate , ssh_key |
Tipo de segredo a ser registrado |
Outros parâmetros obrigatórios (dependem do secret_type
)
Parâmetro | Tipo | Aplica-se a secret_type |
Descrição |
---|---|---|---|
access_keys |
String | access_key |
Chaves de acesso para o segredo |
key_value |
ArrayList<HashMap.SimpleEntry<>> | key_value |
Pares chave-valor para o segredo |
credentials |
String | credential |
Credenciais para o segredo |
certificate |
String | certificate |
Certificado para o segredo |
ssh_key |
String | ssh_key |
Chave SSH para o segredo |
Exemplo: criar um segredo de aplicação (para o tipo key_value
)
client.RegisterSecret("key_value", "access_keys", new ArrayList<HashMap.SimpleEntry<String, String>>() {{
add(new HashMap.SimpleEntry<>("key1", "val1"));
add(new HashMap.SimpleEntry<>("key2", "val2"));
add(new HashMap.SimpleEntry<>("key3", "val3"));
}}, "", "", "");
Registrando variáveis da aplicação
Use o método RegisterVariables
para registrar as variáveis da aplicação.
Assinatura do método
public void RegisterVariables(String env, String helm, String map) { ... }
Parâmetros obrigatórios
Parâmetro | Tipo | Descrição |
---|---|---|
env |
String | Variáveis de ambiente da aplicação |
helm |
String | Helm da aplicação |
map |
String | Mapa de variáveis |
Exemplo: registrar as variáveis da aplicação
client.RegisterVariables("PATH=C:\\,SHELL=cmd","helm", "map");
Excluir a autorização da aplicação
Use o método Delete
para excluir a autorização da aplicação cliente. Se o provisionamento dinâmico estiver habilitado para a aplicação, todos os segredos serão desprovisionados automaticamente.
Assinatura do método
public void Delete() { ... }
Exemplo: excluir a autorização da aplicação cliente
client.Delete();