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:
- cd do katalogu głównego projektu.
- 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
lubenvironment
. 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 });