O SDK Segura para .NET facilita o acesso dos desenvolvedores aos serviços Segura em seu código C# e permite construir aplicações robustas utilizando os serviços PAM e DSM da Segura. Os serviços incluem Credenciais, Dispositivos e DevOps Secret Manager.
Requisitos
Para executar o SDK, seu sistema deve atender aos requisitos mínimos, incluindo .NET Framework >= 4.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
, fornecendo a URL do PAM, o Client ID da aplicação OAuth 2.0 e o Client Secret da aplicação OAuth 2.0.
using Segura;
// Instanciar um cliente de credencial.
var client = new CredentialClient(
"https://cofre.Segura.com", // URL do PAM
"7e02a0e07eef10e73f56585a9a505fb2e", // Client ID da aplicação OAuth 2.0
"431eaba0fb56bf360272b54892" // Client Secret da aplicação OAuth 2.0
);
Ou:
using Mt4.Segura.Auth;
// Instanciar um cliente.
var client = new CredentialClient(
"https://cofre.Segura.com", // URL do PAM
"7e02a0e07eef10e73f56585a9a505fb2e", // Client ID da aplicação OAuth 2.0
"431eaba0fb56bf360272b54892" // Client Secret da aplicação OAuth 2.0
);
Criar ou atualizar uma credencial
Utilize o método Save
para criar ou atualizar uma credencial. Se uma credencial com os parâmetros fornecidos for encontrada, 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âmetro | Tipo | Obrigatório | Exemplo |
---|---|---|---|
hostname |
String | SIM | mycredential02 |
ip |
String | SIM | 22.13.50.71 |
identifier |
String | SIM | 5 |
username |
String | SIM | credential05 |
Exemplo: salvar uma credencial
client.Save("mycredential02",
"22.13.50.71",
"5",
"credential05");
Buscar uma credencial registrada
Utilize o método Get
para consultar uma única credencial.
Assinatura do método
public Credential Get(string hostname = null, string ip = null, string username = null) { ...
Parâmetro | Tipo | Obrigatório | Descrição |
---|---|---|---|
hostname |
String | NÃO | mycredential02 |
ip |
String | NÃO | 22.13.50.71 |
username |
String | NÃO | credential05 |
Exemplo: buscar a credencial credential05
do dispositivo com hostname mycredential02
var credential = client.Get(hostname: "mycredential02",
username: "credential05");
Listar credenciais
Utilize o método Fetch
para consultar uma lista de credenciais.
Assinatura do método
public List<Credential> Fetch(string hostname = null, string ip = null, string username = null, string all = null) { ...
Parâmetro | Tipo | Obrigatório | Descrição |
---|---|---|---|
hostname |
String | NÃO | mycredential02 |
ip |
String | NÃO | 22.13.50.71 |
username |
String | NÃO | credential05 |
all |
String | NÃO | Busca o valor nos campos hostname, ip ou username |
Exemplo 1: listar todas as credenciais
var credentials = client.Fetch();
Exemplo 2: listar todas as credenciais do dispositivo com hostname mycredential02
var credentials = client.Fetch(hostname: "mycredential02");
Desativar uma credencial
Utilize o método Disable
para inativar uma credencial.
Assinatura do método
private void Disable(string hostname = null, string ip = null, string username = null) { ...
Parâmetro | Tipo | Obrigatório | Descrição |
---|---|---|---|
hostname |
String | NÃO | mycredential02 |
ip |
String | NÃO | 22.13.50.71 |
username |
String | NÃO | credential05 |
Exemplo: desativar a credencial credential05
do dispositivo com hostname mycredential02
var credential = client.Disable(hostname: "mycredential02",
username: "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
, fornecendo a URL, Client ID da aplicação OAuth 2.0 e Client Secret da aplicação OAuth 2.0.
using Segura;
// Instanciar um cliente de dispositivo.
var device = new DeviceClient(
url: "https://cofre.Segura.com", // URL
client_id: "7e02a0e07eef10e73f56585a9a505fb2e", // Client ID da aplicação OAuth 2.0
client_secret: "431eaba0fb56bf360272b54892" // Client Secret da aplicação OAuth 2.0
);
Criar ou atualizar um dispositivo
Utilize 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âmetro | Tipo | Obrigatório | Descrição |
---|---|---|---|
hostname |
String | SIM | mydevice02 |
ip |
String | SIM | 22.13.50.71 |
site |
String | SIM | AWS |
model |
String | SIM | CentOS 7 |
vendor |
String | SIM | CentOS |
type |
String | SIM | Deve ser um existente. Server |
Exemplo: salvando um dispositivo
var device = client.Save("mydevice02",
"22.13.50.71",
"AWS",
"CentOS 7",
"CentOS",
"Server" );
Buscar um dispositivo registrado
Utilize o método Get
para consultar um único dispositivo.
Assinatura do método:
public Device Get(string identifier) { ...
Filtro | Tipo | Obrigatório | Descrição |
---|---|---|---|
identifier |
String | SIM | Hostname ou id do dispositivo |
Exemplo: buscar o dispositivo com hostname localhost
var device = client.Get("localhost");
Listar dispositivos
Utilize o método Fetch
para consultar uma lista de dispositivos.
Assinatura do método
public List<Device> Fetch(string hostname = null, string ip = null, string type = null, string vendor = null, string model = null, string site = null) { ...
Filtro | Tipo | Obrigatório |
---|---|---|
hostname |
String | NÃO |
ip |
String | NÃO |
type |
String | NÃO |
vendor |
String | NÃO |
model |
String | NÃO |
site |
String | NÃO |
Exemplo 1: listar todos os dispositivos
var devices = client.Fetch();
Exemplo 2: listar dispositivos do tipo server
var devices = client.Fetch(type: "server");
Desativar um dispositivo
Utilize o método Disable
para inativar um dispositivo.
Assinatura do método
private void Disable(string identifier) { ...
Filtro | Tipo | Obrigatório | Descrição |
---|---|---|---|
identifier |
String | SIM | Hostname ou id do dispositivo |
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.
Criar um objeto do tipo ApplicationClient
Para instanciar um cliente de aplicação, utilize a classe ApplicationClient
.
Você deverá fornecer os seguintes parâmetros:
- URL do Vault.
client_ID
.client_secret
.
using Segura;
// Instanciar um cliente de aplicação.
var client = new ApplicationClient(
"https://cofre.Segura.com", // URL do PAM
"7e02a0e07eef10e73f56585a9a505fb2e", // Client ID da aplicação OAuth 2.0
"431eaba0fb56bf360272b54892" // Client Secret da aplicação OAuth 2.0
);
Criar ou atualizar uma aplicação
Utilize 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 = null) { ...
Parâmetro | Tipo | Obrigatório | Exemplo |
---|---|---|---|
application |
String | SIM | checkout |
system |
String | SIM | ecommerce |
environment |
String | SIM | production |
unique_key |
String | NÃO | checkout_auth01 |
Exemplo: salvando uma aplicação
var application = client.Save("checkout",
"ecommerce",
"production" );
Obter informações e segredos da aplicação cliente
Utilize o método Get
para retornar as informações da aplicação cliente.
Assinatura do método
public Application Get() { ...
Exemplo: obter informações e segredos da aplicação
var application = client.Get();
Registrar segredos da aplicação
Utilize o método RegisterSecret
para registrar os segredos da aplicação.
Assinatura do método
public void RegisterSecret(string secret_type, string access_keys, List<KeyValuePair<string, string>> key_value, string credentials, string certificate, string ssh_key) { ...
Parâmetro | Tipo | Obrigatório | Exemplo |
---|---|---|---|
secret_type |
String | SIM | access_key , key_value , credential , certificate ou ssh_key |
access_keys |
String | SIM | Informação de Access Key (apenas para o tipo access_key ) |
key_value |
List<KeyValuePair<string, string>> | SIM | Informação de pares chave/valor (apenas para o tipo key_value ) |
credentials |
String | SIM | Informação de credencial (apenas para o tipo credential ) |
certificate |
String | SIM | Informação de certificado (apenas para o tipo certificate ) |
ssh_key |
String | SIM | Informação de chave SSH (apenas para o tipo ssh_key ) |
Exemplo: criar um segredo de aplicação (para o tipo key_value
)
client.RegisterSecret("key_value",
"",
new List<KeyValuePair<string, string>>{ new KeyValuePair<string, string>("key1", "val1"),
new KeyValuePair<string, string>("key2", "val2"),
new KeyValuePair<string, string>("key3", "val3")},
"",
"valid_certificate_value", // Forneça um valor de certificado válido aqui
"");
Registrar variáveis da aplicação
Utilize 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âmetro | Tipo | Obrigatório | Descrição |
---|---|---|---|
env |
String | SIM | As variáveis de ambiente da aplicação |
helm |
String | SIM | O helm da aplicação |
map |
String | SIM | O mapa de variáveis |
Exemplo: registrando as variáveis da aplicação
client.RegisterVariables("PATH=C:\\,SHELL=cmd",
"helm",
"map" );
Excluir a autorização da aplicação
Utilize 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();