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

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

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

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

เช่น คุณอาจใช้ที่เก็บที่ปลอดภัยเพื่อจัดเก็บรหัสผ่านที่แอปพลิเคชัน Node.js กำหนดเพื่อเข้าถึงทรัพยากรที่มีการป้องกัน เช่น เซิร์ฟเวอร์ฐานข้อมูล คุณจัดเก็บรหัสผ่านไว้ใน Secure Store ผ่าน 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 ซึ่งอาจใช้เพื่อตรวจสอบเนื้อหาของ Store โปรดทราบว่าเมื่อจัดเก็บแล้ว จะไม่มี 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}

ดึงค่าจาก Secure Store ใน Node.js

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

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

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

ฟังก์ชัน

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

getVault() จะมีพารามิเตอร์สองตัว:

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

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

  • getKeys(callback): แสดงผลอาร์เรย์ที่มีชื่อคีย์ทั้งหมดในห้องนิรภัยที่ระบุ ระบบจะเรียกใช้ฟังก์ชันเรียกกลับด้วยอาร์กิวเมนต์ 2 รายการ ได้แก่ ข้อผิดพลาดหากการดำเนินการล้มเหลว หรือ "ไม่ระบุ" หากไม่มี และอาร์เรย์จริงเป็นอาร์กิวเมนต์ที่ 2
  • get(key, callback): แสดงผลค่าความปลอดภัยที่เชื่อมโยงกับคีย์หนึ่งๆ ระบบจะเรียกใช้ฟังก์ชันเรียกกลับด้วยอาร์กิวเมนต์ 2 ตัว ได้แก่ ข้อผิดพลาดหากการดำเนินการล้มเหลว หรือ "ไม่ระบุ" หากไม่มี และค่าจริงเป็นอาร์กิวเมนต์ที่ 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
});