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 bảo mật

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

Ví dụ: kho bảo mật có thể dùng để lưu trữ mật khẩu mà Node.js yêu cầu để truy cập 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ị trong thời gian chạy.

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

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

GET /o/{organization}/vaults/{name}/entries/{entryname}
  • Tạo một kho chứa mới có tên là "name" 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 chứa tên đã chỉ định và giá trị bảo mật.

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ị được chỉ định khớp với giá đã có trong cửa hàng và giá trị "false" nếu thì không. Trong cả hai trường hợp, mã trạng thái HTTP 200 sẽ được sử dụng. Thông tin này có thể 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ữ, sẽ không có API nào để truy xuất dữ liệu chưa mã hoá giá trị:

    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 Vault đượ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 môi trường (chẳng hạn như "sản phẩm"). 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 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 giá trị từ kho bảo mật trong Node.js

Đang cài đặt apigee-access

Để sử dụng apigee-access trong mã Node.js, bạn cần cài đặt mã này đầu tiên. 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ể, theo mỗi tổ chức của bạn 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 hàng bảo mật cần truy xuất.
  • Phạm vi, có thể là organization hoặc environment. Nếu không đã chỉ định, thì organization được giả định.

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

  • 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 "không xác định" nếu không có 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 . 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 "không xác định" nếu khô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 lưu trữ. Chiến lược phát hành đĩa đơn Mô-đun apigee-access đã được cài đặt để mã này hoạt động, như đã giải thích trước đây.

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