การใช้ที่เก็บที่ปลอดภัย

คุณกำลังดูเอกสารประกอบ Apigee Edge
ไปที่ เอกสารประกอบเกี่ยวกับ Apigee X.
ข้อมูล

การใช้ API บริการร้านค้าที่ปลอดภัย

บริการร้านค้าที่ปลอดภัยช่วยให้คุณจัดเก็บข้อมูลที่ละเอียดอ่อน เช่น ข้อมูลเข้าสู่ระบบด้านความปลอดภัยสำหรับ แบ็กเอนด์ ในรูปแบบที่เข้ารหัส เพื่อปกป้องจากการใช้งานที่ไม่ได้รับอนุญาต เหล่านี้ พื้นที่เก็บข้อมูลที่ปลอดภัยเรียกว่า "ห้องนิรภัย" และสามารถกำหนดขอบเขตได้ในระดับองค์กรหรือ ระดับสภาพแวดล้อมใน Apigee Edge

เช่น อาจมีการใช้ร้านค้าที่ปลอดภัยเพื่อจัดเก็บรหัสผ่านที่ Node.js กำหนด เพื่อเข้าถึงทรัพยากรที่มีการป้องกัน เช่น เซิร์ฟเวอร์ฐานข้อมูล คุณสามารถจัดเก็บ ในที่จัดเก็บที่ปลอดภัยผ่านทาง API ก่อนการทำให้ใช้งานได้ และแอปพลิเคชันสามารถค้นหา ค่าขณะรันไทม์

เมื่อทำเช่นนี้ จึงไม่จำเป็นต้องใส่รหัสผ่านในการควบคุมซอร์สโค้ด หรือทำให้ใช้งานได้พร้อมกับซอร์สโค้ด Node.js ไปยัง Apigee Edge ค่าจะเป็น จัดเก็บโดย Apigee ในรูปแบบที่เข้ารหัสและจะดึงข้อมูลเมื่อแอปพลิเคชันต้องการเท่านั้น ได้

โปรดดูเอกสารประกอบของ API ร้านค้าที่ปลอดภัยในหัวข้อห้องนิรภัย ส่วนต่อไปนี้ยังนำเสนอภาพรวมของการใช้ API ร้านค้าที่ปลอดภัย

กำลังจัดเก็บข้อมูลตาม องค์กร

องค์กร Apigee Edge แต่ละแห่งมีชุดร้านค้าที่ปลอดภัย และสภาพแวดล้อมแต่ละรายการจะมี ร้านค้าเพิ่มเติม ซึ่งจะทำให้องค์กรที่มีข้อกำหนดด้านการรักษาความปลอดภัยแตกต่างกันสำหรับ แบ็กเอนด์จะเก็บค่าความปลอดภัยต่างๆ ได้ ส่วนนี้อธิบายการจัดเก็บตามองค์กร

การใช้งาน

  • เรียกดูชื่อร้านค้าที่ปลอดภัยทั้งหมด:
GET /o/{organization}/vaults
  • เรียกดูรายการ (แต่ไม่ใช่ค่าที่เข้ารหัส) จากห้องนิรภัยที่มีชื่อ
GET /o/{organization}/vaults/{name}
  • ดึงข้อมูลรายการเดียว (ไม่ใช่ค่าที่เข้ารหัส)

GET /o/{organization}/vaults/{name}/entries/{entryname}
  • สร้างห้องนิรภัยใหม่ชื่อ "name" ที่ไม่มีค่าใดๆ:

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
  • วางรายการใหม่ในห้องนิรภัยด้วยชื่อและค่าที่ปลอดภัยที่ระบุ

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
  • แทนที่ค่าของรายการที่ระบุด้วยค่าใหม่:

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

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

  -d 'verymoresecret' -X PUT
  • แสดงผล "true" หากค่าที่ระบุตรงกับค่าที่มีอยู่แล้วใน Store และ "false" ถ้า ใช้ไม่ได้ ในทั้งสองกรณี ระบบจะใช้รหัสสถานะ HTTP 200 ข้อมูลนี้อาจใช้เพื่อตรวจสอบ เนื้อหาในสโตร์ โปรดทราบว่าเมื่อจัดเก็บแล้ว จะไม่มี API สำหรับเรียกข้อมูลที่ไม่ได้เข้ารหัส ค่า:

    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
    
  • ลบรายการห้องนิรภัยที่ระบุ
DELETE /o/{organization}/vaults/{vaultname}/entries/{entryname}
  • ลบห้องนิรภัยทั้งหมด

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

การจัดเก็บข้อมูลตามสภาพแวดล้อม

นอกจากนี้ คุณยังจัดเก็บข้อมูลตามสภาพแวดล้อม Apigee Edge ได้ด้วย ในกรณีนี้ ข้อมูลจะกำหนดขอบเขตเป็น สภาพแวดล้อม (เช่น "prod") ฟีเจอร์นี้ช่วยให้จัดเก็บค่าที่แตกต่างกันขณะรันไทม์ได้ด้วย ขึ้นอยู่กับว่าสคริปต์ Node.js กำลังทำงานอยู่ที่ใด

การใช้งาน

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}

กำลังเรียกค่าจากร้านค้าที่ปลอดภัยใน Node.js

กำลังติดตั้ง apigee-access

หากต้องการใช้ apigee-access ในโค้ด Node.js คุณจะต้องติดตั้ง ก่อน เช่น

  1. cd ไปยังไดเรกทอรีรากของโปรเจ็กต์ของคุณ
  2. ดำเนินการ: npm install apigee-access --save

ฟังก์ชัน

ฟังก์ชัน apigee-access getห้องนิรภัย() จะใช้เพื่อดึงข้อมูลห้องนิรภัยที่เฉพาะเจาะจงตาม องค์กรหรือตามสภาพแวดล้อมปัจจุบันที่โค้ด Node.js ทำงานอยู่

getห้องนิรภัย() ใช้พารามิเตอร์ 2 ตัว ได้แก่

  • ชื่อร้านค้าที่ปลอดภัยที่จะดึงข้อมูล
  • ขอบเขต ซึ่งอาจเป็น organization หรือ environment หากไม่ ระบุไว้ ระบบจะถือว่าเป็น organization

อ็อบเจ็กต์ที่แสดงผลโดย getห้องนิรภัย() มี 2 ฟังก์ชันดังนี้

  • getKeys(callback): แสดงผลอาร์เรย์ที่มีชื่อคีย์ทั้งหมดใน ห้องนิรภัยที่ระบุ ฟังก์ชัน Callback จะถูกเรียกด้วยอาร์กิวเมนต์ 2 ตัว นั่นคือข้อผิดพลาดถ้าฟังก์ชัน การดำเนินการล้มเหลวหรือ "ไม่ระบุ" หากไม่ และอาร์เรย์จริงเป็นอาร์กิวเมนต์ที่สอง
  • get(key, callback): แสดงผลค่าที่ปลอดภัยซึ่งเชื่อมโยงกับ ระบบจะเรียกฟังก์ชัน Callback โดยใช้อาร์กิวเมนต์ 2 รายการ ได้แก่ ข้อผิดพลาดหากการดำเนินการล้มเหลว หรือ "undefined" หากไม่ใช่ และใช้ค่าจริงเป็นอาร์กิวเมนต์ที่ 2

ตัวอย่าง

ต่อไปนี้เป็นตัวอย่าง Node.js ที่สาธิตวิธีรับค่าจากห้องนิรภัย ติดตั้งโมดูล apigee-access แล้วเพื่อให้โค้ดนี้ทำงานได้ตามที่อธิบายไว้ ก่อนหน้านี้

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