Sử dụng cửa hàng an toàn

Bạn đang xem tài liệu về Apigee Edge.
Truy cập vào tài liệu Apigee X.
thông tin

Sử dụng các API dịch vụ lưu trữ an toàn

Dịch vụ lưu trữ an toàn cho phép bạn lưu trữ dữ liệu nhạy cảm (chẳng hạn như thông tin đăng nhập bảo mật cho các dịch vụ phụ trợ) ở định dạng mã hoá để bảo vệ dữ liệu khỏi việc sử dụng trái phép. Các khu vực lưu trữ an toàn này được gọi là "kho lưu trữ" và có thể được giới hạn ở cấp tổ chức hoặc môi trường trên Apigee Edge.

Ví dụ: kho lưu trữ an toàn có thể được dùng để lưu trữ mật khẩu mà ứng dụng Node.js yêu cầu để truy cập vào một tài nguyên được bảo vệ, chẳng hạn như máy chủ cơ sở dữ liệu. Bạn có thể lưu trữ mật khẩu trong bộ nhớ an toàn thông qua một API trước khi triển khai và ứng dụng có thể tra cứu giá trị tại thời gian chạy.

Do đó, bạn không cần phải đưa mật khẩu vào hệ thống kiểm soát mã nguồn hoặc triển khai mật khẩu cùng với mã nguồn Node.js cho Apigee Edge. Thay vào đó, giá trị này được Apigee lưu trữ ở dạng mã hoá và chỉ được truy xuất khi ứng dụng cần.

Để biết tài liệu về các API lưu trữ an toàn, hãy xem Vaults (Kho lưu trữ). Các phần sau đây cũng cung cấp thông tin tổng quan về cách sử dụng API bộ nhớ an toàn.

Lưu trữ dữ liệu theo tổ chức

Mỗi tổ chức Apigee Edge đều có một nhóm các kho lưu trữ an toàn và mỗi môi trường có một kho lưu trữ bổ sung. Nhờ đó, những tổ chức có các yêu cầu bảo mật khác nhau cho các phần phụ trợ khác nhau có thể lưu trữ các giá trị bảo mật khác nhau. Phần này mô tả cách lưu trữ theo tổ chức.

Cách sử dụng

  • Truy xuất tên của tất cả các kho lưu trữ an toàn:
GET /o/{organization}/vaults
  • Truy xuất danh sách các mục (nhưng không phải giá trị được mã hoá của các mục đó) từ một kho lưu trữ có tên.
GET /o/{organization}/vaults/{name}
  • Truy xuất một mục duy nhất (nhưng không phải giá trị đã mã hoá của mục đó).

GET /o/{organization}/vaults/{name}/entries/{entryname}
  • Tạo một kho lưu trữ mới có tên "name" mà không có giá trị:

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
  • Đặt một mục mới vào kho lưu trữ bằng tên và giá trị bảo mật đã chỉ định.

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
  • Thay thế giá trị của mục được chỉ định bằng một giá trị mới:

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

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

  -d 'verymoresecret' -X PUT
  • Trả về "true" nếu giá trị đã chỉ định khớp với giá trị đã có trong cửa hàng và "false" nếu không khớp. Trong cả hai trường hợp, mã trạng thái HTTP 200 đều được sử dụng. Bạn có thể dùng thông tin này để xác thực nội dung của cửa hàng. Xin lưu ý rằng sau khi được lưu trữ, sẽ không có API nào để truy xuất giá trị chưa mã hoá:

    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
  • Xoá mục nhập cụ thể trong kho lưu trữ:
DELETE /o/{organization}/vaults/{vaultname}/entries/{entryname}
  • Xoá toàn bộ kho lưu trữ.

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

Lưu trữ dữ liệu theo môi trường

Bạn cũng có thể lưu trữ dữ liệu theo môi trường Apigee Edge. Trong trường hợp này, dữ liệu được giới hạn trong một môi trường (chẳng hạn như "prod"). Với tính năng này, trong thời gian chạy, các giá trị khác nhau có thể được lưu trữ tuỳ thuộc vào vị trí chạy tập lệnh Node.js.

Cách sử dụng

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}

Truy xuất các giá trị từ kho lưu trữ an toàn trong Node.js

Cài đặt apigee-access

Để sử dụng apigee-access trong mã Node.js, trước tiên, bạn cần cài đặt mô-đun này. Ví dụ:

  1. cd đến thư mục gốc của dự án.
  2. Thực thi: npm install apigee-access --save

Hàm

Hàm apigee-access getVault() được dùng để truy xuất một kho lưu trữ cụ thể, theo từng tổ chức hoặc dựa trên môi trường hiện tại nơi mã Node.js đang chạy.

getVault() nhận 2 tham số:

  • Tên của kho lưu trữ an toàn cần truy xuất.
  • Phạm vi có thể là organization hoặc environment. Nếu bạn không chỉ định, thì giá trị mặc định sẽ là organization.

Đối tượng do getVault() trả về có hai chức năng:

  • getKeys(callback): Trả về một mảng chứa tên của tất cả các khoá trong kho lưu trữ được chỉ định. Hàm callback sẽ được gọi bằng 2 đối số: Một lỗi nếu thao tác không thành công hoặc "undefined" nếu thao tác thành công và mảng thực tế làm đối số thứ hai.
  • get(key, callback): Trả về giá trị bảo mật được liên kết với một khoá cụ thể. Hàm callback sẽ được gọi bằng hai đối số: Một lỗi nếu thao tác không thành công hoặc "undefined" nếu thao tác thành công và giá trị thực tế làm đối số thứ hai.

Ví dụ

Sau đây là một mẫu Node.js minh hoạ cách lấy giá trị từ một kho lưu trữ. Mô-đun apigee-access được cài đặt để mã này hoạt động, như đã giải thích trước đó.

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