SDK para .NET

Prev Next

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