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

Bạn đang xem tài liệu về Apigee Edge.
Chuyển đến tài liệu về Apigee X.
thông tin

Sử dụng API dịch vụ cửa hàng an toàn

Dịch vụ cửa hàng bảo mật 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 của các dịch vụ phụ trợ, ở định dạng mã hoá để những dữ liệu này được bảo vệ khỏi hành vi sử dụng trái phép. Những khu vực lưu trữ an toàn này được gọi là "kho lưu trữ" và có thể thuộc phạm vi cấp tổ chức hoặc cấp môi trường trên Apigee Edge.

Ví dụ: kho bảo mật 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 kho bảo mật thông qua API trước khi triển khai và ứng dụng có thể tra cứu giá trị này trong thời gian chạy.

Do đó, nhờ đó, 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ưới dạng mã hoá và chỉ được truy xuất khi ứng dụng cần.

Để xem tài liệu về API kho bảo mật, hãy xem phần Vault. Các phần sau đây cũng cung cấp thông tin tổng quan về cách sử dụng API cửa hàng bảo mật.

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

Mỗi tổ chức Apigee Edge đều có một nhóm cửa hàng bảo mật và mỗi môi trường có thêm một cửa hàng. Nhờ đó, những tổ chức có yêu cầu riêng về bảo mật cho từng hệ thống phụ trợ 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ả kho bảo mật:
GET /o/{organization}/vaults
  • Truy xuất danh sách các mục nhập (nhưng không phải giá trị đã mã hoá của các mục nhập đó) từ một kho lưu trữ được đặt tên.
GET /o/{organization}/vaults/{name}
  • Truy xuất một mục nhập (nhưng không truy xuất giá trị đã mã hoá của mục nhập đó).

GET /o/{organization}/vaults/{name}/entries/{entryname}
  • Tạo một kho lưu trữ mới có tên là "name" (tên) 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 nhập mới vào kho chứa cù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ề "đúng" nếu giá trị được chỉ định khớp với giá trị đã có trong cửa hàng và "sai" nếu giá trị không khớp. Trong cả hai trường hợp, mã trạng thái HTTP là 200 sẽ được sử dụng. Thông tin này có thể được dùng để xác thực nội dung của cửa hàng. Xin lưu ý rằng sau khi được lưu trữ, không có API nào để truy xuất giá trị không 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 kho lưu trữ được chỉ định:
DELETE /o/{organization}/vaults/{vaultname}/entries/{entryname}
  • Xoá toàn bộ kho chứa.

    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 bằng môi trường Apigee Edge. Trong trường hợp này, dữ liệu nằm trong phạm vi của 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ị có thể được lưu trữ tuỳ thuộc vào nơi tập lệnh Node.js đang chạy.

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ữ bảo mật trong Node.js

Đang 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ã này. Ví dụ:

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

Hàm

Hàm getVault() truy cập apigee được dùng để truy xuất một kho lưu trữ cụ thể, cho mỗi 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 hai tham số:

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

Đối tượng được getVault() trả về có hai hàm:

  • getKeys(callback): Trả về một mảng chứa tên của tất cả khoá trong kho lưu trữ được chỉ định. Hàm callback sẽ được gọi với 2 đối số: Một lỗi nếu thao tác không thành công hoặc "không xác định" nếu thao tác không 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 liên kết với một khoá cụ thể. Hàm callback sẽ được gọi với 2 đối số: Một lỗi nếu thao tác không thành công hoặc "không xác định" nếu thao tác không thành công và giá trị thực tế làm đối số thứ hai.

Ví dụ:

Đây là mẫu Node.js minh hoạ cách nhận giá trị từ kho chứa. 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
});