SDK para Java

Prev Next

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();