Korzystanie z bezpiecznego sklepu

Wyświetlasz dokumentację Apigee Edge.
Przejdź do dokumentacji Apigee X.
info

Korzystanie z interfejsów API usługi bezpiecznego magazynu

Usługa bezpiecznego magazynu umożliwia przechowywanie danych wrażliwych, takich jak dane logowania do usług backendowych, w zaszyfrowanym formacie, dzięki czemu są one chronione przed nieautoryzowanym użyciem. Te bezpieczne obszary przechowywania nazywane są „magazynami” i mogą być ograniczone do poziomu organizacji lub środowiska w Apigee Edge.

Bezpieczny magazyn może być na przykład używany do przechowywania hasła wymaganego przez aplikację Node.js, aby uzyskać dostęp do chronionego zasobu, takiego jak serwer bazy danych. Przed wdrożeniem możesz zapisać hasło w bezpiecznym magazynie za pomocą interfejsu API, a aplikacja może wyszukać wartość w czasie działania.

Dzięki temu nie trzeba uwzględniać hasła w systemie kontroli kodu źródłowego ani wdrażać go razem z kodem źródłowym Node.js w Apigee Edge. Zamiast tego wartość jest przechowywana przez Apigee w zaszyfrowanej postaci i będzie pobierana tylko wtedy, gdy aplikacja jej potrzebuje it.

Dokumentację interfejsów API bezpiecznego magazynu znajdziesz w artykule Magazyny. W kolejnych sekcjach znajdziesz też omówienie korzystania z interfejsu API bezpiecznego magazynu.

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 bezpieczeństwa w przypadku różnych backendów, mogą przechowywać różne bezpieczne wartości. W tej sekcji opisujemy 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 magazynie 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
  • Zwróć „true”, jeśli podana wartość jest zgodna z wartością już znajdującą się w magazynie, a „false”, jeśli nie. W obu przypadkach używany jest kod stanu HTTP 200. Może to służyć do sprawdzania zawartości magazynu. Pamiętaj, że po zapisaniu nie ma interfejsu API, który umożliwia pobranie niezaszyfrowanej wartości:

    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 magazynie:
DELETE /o/{organization}/vaults/{vaultname}/entries/{entryname}
  • Usuń cały magazyn.

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

Przechowywanie danych według środowiska

Dane możesz też przechowywać według środowiska Apigee Edge. W takim przypadku dane są ograniczone do środowiska (np. „prod”). Dzięki tej funkcji w czasie działania można przechowywać różne wartości w zależności od tego, gdzie jest uruchamiany 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

Instalowanie apigee-access

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

  1. Przejdź do katalogu głównego projektu.
  2. Uruchom polecenie: npm install apigee-access --save

Funkcje

Funkcja apigee-access getVault() służy do pobierania konkretnego magazynu, w zależności od organizacji lub bieżącego środowiska, w którym jest uruchamiany kod Node.js.

Funkcja getVault() przyjmuje 2 parametry:

  • Nazwa bezpiecznego magazynu do pobrania.
  • Zakres, który może być organization lub environment. Jeśli nie zostanie określony, przyjmuje się wartość organization.

Obiekt zwracany 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łędem, jeśli operacja się nie powiedzie, lub „undefined”, jeśli się nie powiedzie, oraz rzeczywistą tablicą jako drugim argumentem.
  • get(key, callback): zwraca bezpieczną wartość powiązaną z konkretnym kluczem. Funkcja wywołania zwrotnego zostanie wywołana z 2 argumentami: błędem, jeśli operacja się nie powiedzie, lub „undefined”, jeśli się nie powiedzie, oraz rzeczywistą wartością jako drugim argumentem.

Przykład

Oto przykład Node.js, który pokazuje, jak pobrać wartość z magazynu. Aby ten kod działał, musisz zainstalować moduł apigee-access , jak opisano wcześniej.

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