Korzystanie z bezpiecznego sklepu

Przeglądasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X.
Informacje

Korzystanie z interfejsów API usługi bezpiecznego sklepu

Usługa bezpiecznego magazynu umożliwia przechowywanie danych wrażliwych, takich jak dane logowania zabezpieczeń do usług backendu, w formie zaszyfrowanej, dzięki czemu są chronione przed nieautoryzowanym użyciem. Te bezpieczne obszary przechowywania są nazywane „magazynami” i można je ograniczyć do poziomu organizacji lub środowiska w Apigee Edge.

Magazyn bezpieczny może być na przykład używany do przechowywania hasła wymaganego przez aplikację Node.js w celu dotarcia do chronionego zasobu, takiego jak serwer bazy danych. Możesz zapisać hasło w bezpiecznym magazynie za pomocą interfejsu API przed wdrożeniem, a aplikacja będzie mogła wyszukiwać wartość w czasie działania.

Dzięki temu nie trzeba umieszczać hasła w systemie sterowania kodem źródłowym ani wdrażać go razem z kodem źródłowym Node.js w Apigee Edge. Zamiast tego wartość jest przechowywana przez Apigee w formie zaszyfrowanej i jest pobierana tylko wtedy, gdy aplikacja jej potrzebuje.

Dokumentację dotyczącą interfejsów API bezpiecznych magazynów znajdziesz w artykule Vault. Poniższe sekcje zawierają również omówienie korzystania z interfejsu Secure Store API.

Przechowywanie danych według organizacji

Każda organizacja Apigee Edge ma zestaw bezpiecznych magazynów, a każde środowisko ma dodatkowy magazyn. Dzięki temu organizacje, które mają różne wymagania dotyczące zabezpieczeń dla różnych backendów, mogą przechowywać różne bezpieczne wartości. W tej sekcji opisano przechowywanie według organizacji.

Wykorzystanie

  • Pobierz nazwy wszystkich bezpiecznych magazynów:
GET /o/{organization}/vaults
  • Pobierz listę wpisów (ale nie ich zaszyfrowanych wartości) z nazwanego magazynu.
GET /o/{organization}/vaults/{name}
  • Pobierz pojedynczy wpis (ale nie jego zaszyfrowaną wartość).

GET /o/{organization}/vaults/{name}/entries/{entryname}
  • Utwórz nowy magazyn o nazwie „name” bez wartości:

POST /o/{organization}/vaults

{ "name": "{name}" }

curl https://api.enterprise.apigee.com/v1/o/testorg/vaults
  -H "Content-Type: application/json"
  -d '{"name": "test2" }' -X POST
  • Umieść w skarbcu nowy wpis o podanej nazwie i bezpiecznej wartości.

POST /o/{organization}/vaults/{vaultname}/entries

{ "name": "{entryname}", "value": "{securevalue}" }


curl https://api.enterprise.apigee.com/v1/o/testorg/vaults/test2/entries
  -H "Content-Type: application/json"
  -d '{"name": "value1", "value": "verysecret" }' -X POST
  • Zastąp wartość określonego wpisu nową wartością:

PUT /o/{organization}/vaults/{vaultname}/entries/{entryname}

curl https://api.enterprise.apigee.com/v1/o/testorg/vaults/test2/entries/value1

  -d 'verymoresecret' -X PUT
  • Zwraca wartość „true” (prawda), jeśli wskazana wartość jest zgodna z wartością znajdującą się w magazynie, lub „false” (fałsz), jeśli nie jest. W obu przypadkach używany jest kod stanu HTTP 200. Można go użyć do weryfikacji zawartości magazynu. Pamiętaj, że po zapisaniu nie ma interfejsu API, który mógłby pobrać niezaszyfrowaną wartość:

    POST /o/{organization}/vaults/{vaultname}/entries/{entryname}?action=verify
    
    curl https://api.enterprise.apigee.com/v1/o/testorg/vaults/test2/entries/value1?action=verify
      -d 'verymoresecret'  -X POST
    
  • Usuń określony wpis w Vault:
DELETE /o/{organization}/vaults/{vaultname}/entries/{entryname}
  • Usuń cały magazyn.

    DELETE /o/{organization}/vaults/{name}
    

Przechowywanie danych według środowiska

Możesz też przechowywać dane według środowiska Apigee Edge. W tym przypadku dane są ograniczone do środowiska (np. „prod”). Dzięki tej funkcji w środowisku wykonawczym mogą być przechowywane różne wartości w zależności od tego, gdzie działa skrypt Node.js.

Wykorzystanie

GET /o/{organization}/e/{env}/vaults

GET /o/{organization}/e/{env}/vaults/{name}

GET /o/{organization}/e/{env}/vaults/{name}/entries/{entryname}

POST /o/{organization}/e/{env}/vaults

POST /o/{organization}/e/{env}/vaults/{vaultname}/entries

PUT /o/{organization}/e/{env}/vaults/{vaultname}/entries/{entryname}

POST /o/{organization}/e/{env}/vaults/{vaultname}/entries/{entryname}?action=verify

DELETE /o/{organization}/e/{env}/vaults/{vaultname}/entries/{entryname}

DELETE /o/{organization}/e/{env}/vaults/{name}

Pobieranie wartości z bezpiecznego magazynu w Node.js

Instaluję Apigee-access

Aby używać apigee-access w kodzie Node.js, musisz go najpierw zainstalować. Na przykład:

  1. cd do katalogu głównego projektu.
  2. Wykonaj: npm install apigee-access --save

Funkcje

Funkcja getVault() apigee-access służy do pobierania konkretnego Vault (według organizacji lub bieżącego środowiska, w którym działa kod Node.js).

getVault() przyjmuje dwa parametry:

  • Nazwa bezpiecznego magazynu do pobrania.
  • Zakres, którym może być organization lub environment. Jeśli nie podasz żadnej wartości, zostanie domyślnie przyjęta wartość organization.

Obiekt zwrócony przez getVault() ma 2 funkcje:

  • getKeys(callback): zwraca tablicę zawierającą nazwy wszystkich kluczy w określonym magazynie. Funkcja wywołania zwrotnego zostanie wywołana z 2 argumentami: błąd w przypadku niepowodzenia lub „nieokreślona”, jeśli nie działa, a rzeczywista tablica jako drugi argument.
  • get(key, callback): zwraca bezpieczną wartość powiązaną z określonym kluczem. Funkcja wywołania zwrotnego zostanie wywołana z 2 argumentami: błąd w przypadku niepowodzenia lub „nieokreślona”, jeśli nie działa, oraz rzeczywista wartość jako drugi argument.

Przykład

Oto przykład środowiska Node.js, które pokazuje, jak uzyskać wartość z Vault. Aby ten kod działał, zgodnie z opisem powyżej został zainstalowany moduł apigee-access.

var apigee = require('apigee-access');
   var orgVault = apigee.getVault('vault1', 'organization');
   orgVault.get('key1', function(err, secretValue) {
   // use the secret value here
});