استخدام المتجر الآمن

يتم الآن عرض مستندات Apigee Edge.
انتقِل إلى مستندات Apigee X.
المعلومات

استخدام واجهات برمجة تطبيقات خدمات المتجر الآمن

تتيح لك خدمة "المتجر الآمن" تخزين البيانات الحساسة بتنسيق مشفّر، مثل بيانات الاعتماد الأمنية للخدمات الخلفية، حتى تحميها من الاستخدام غير المصرّح به. وتُسمى مناطق التخزين الآمنة هذه "الخزنات"، ويمكن تحديدها على مستوى المؤسسة أو البيئة على Apigee Edge.

على سبيل المثال، يمكن استخدام المخزن الآمن لتخزين كلمة المرور التي يطلبها تطبيق Node.js للوصول إلى مورد محمي، مثل خادم قاعدة بيانات. يمكنك تخزين كلمة المرور في المتجر الآمن من خلال واجهة برمجة التطبيقات قبل النشر، ويمكن للتطبيق البحث عن القيمة في وقت التشغيل.

وبالتالي، لا حاجة إلى تضمين كلمة المرور في نظام التحكّم في رمز المصدر، أو لنشرها مع رمز المصدر Node.js في Apigee Edge. بدلاً من ذلك، تخزّن Apigee القيمة في نموذج مشفّر ولن يتم استردادها إلا عندما يحتاج التطبيق إليها.

للحصول على مستندات حول واجهات برمجة تطبيقات المتجر الآمن، يُرجى الاطّلاع على Vault. وتقدِّم الأقسام التالية أيضًا نظرة عامة على استخدام Secure store 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" إذا كانت القيمة المحددة تتطابق مع القيمة المتوفرة في المتجر، وعرض "false" إذا لم تكن مطابقة لها. وفي كلتا الحالتين، يتم استخدام رمز حالة HTTP المتمثل في 200. ويمكن استخدام هذه المعلومات للتحقق من محتوى المتجر. يُرجى العِلم بأنّه بمجرد تخزين البيانات، لا تتوفّر واجهة برمجة تطبيقات لاسترداد القيمة غير المشفّرة:

    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
    
  • حذف إدخال Vault المحدَّد:
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. القرص المضغوط إلى الدليل الجذري لمشروعك.
  2. التنفيذ: npm install apigee-access --save

الدوال

تُستخدَم الدالة apigee-access getVault() لاسترداد خزنة معيّنة، إما لكل مؤسسة أو استنادًا إلى البيئة الحالية التي يتم فيها تشغيل رمز Node.js.

تستغرق getVault() معلَمتين:

  • اسم المتجر الآمن المطلوب استرداده
  • النطاق، والذي قد يكون organization أو environment. إذا لم يتم تحديد السمة، يتم استخدام السمة organization.

يحتوي الكائن الذي تم إرجاعه بواسطة getVault() على دالتين:

  • getKeys(callback): لعرض مصفوفة تتضمّن أسماء كل المفاتيح في الخزنة المحدّدة. سيتم استدعاء دالة رد الاتصال باستخدام وسيطتين: خطأ إذا تعذّرت العملية، أو "غير معرَّفة" في حال لم يتم ذلك، والصفيف الفعلي كوسيطة ثانية.
  • get(key, callback): لعرض القيمة الآمنة المرتبطة بمفتاح معيّن. سيتم استدعاء دالة رد الاتصال باستخدام وسيطتين: خطأ إذا تعذّر إتمام العملية، أو "غير معرَّفة" إذا لم يتم ذلك، والقيمة الفعلية كوسيطة ثانية.

مثال

في ما يلي نموذج Node.js يوضّح كيفية الحصول على قيمة من Vault. تم تثبيت وحدة apigee-access لكي يعمل هذا الرمز على النحو الموضَّح سابقًا.

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