استفاده از فروشگاه امن

درحال مشاهده اسناد Apigee Edge هستید.
به اسناد Apigee X بروید.
اطلاعات

استفاده از میاناهای برنامه‌سازی کاربردی سرویس فروشگاه امن

سرویس فروشگاه امن به شما امکان می‌دهد داده‌های حساس، مثل اطلاعات اعتباری امنیتی برای سرویس‌های زیرینه، را در قالب رمزگذاری‌شده ذخیره کنید تا از استفاده غیرمجاز محافظت شوند. این مناطق ذخیره‌سازی امن «گاوصندوق» نامیده می‌شوند و می‌توانند در سطوح سازمان یا محیط در Apigee Edge محدود شوند.

برای مثال، از فروشگاه امن می‌توان برای ذخیره کردن گذرواژه موردنیاز برنامه Node.js برای دسترسی به منبع محافظت‌شده، مثل سرور پایگاه داده، استفاده کرد. می‌توانید گذرواژه را قبل‌از استقرار ازطریق API در فروشگاه امن ذخیره کنید و برنامه می‌تواند مقدار را در زمان اجرا جستجو کند.

بنابراین، با انجام این کار، نیازی به درج گذرواژه در سیستم کنترل کد منبع یا استقرار آن در کنار کد منبع Node.js در Apigee Edge نیست. درعوض، مقدار توسط Apigee به‌صورت رمزگذاری‌شده ذخیره می‌شود و فقط زمانی که برنامه به آن نیاز داشته باشد بازیابی می‌شود.

برای مستندات مربوط به میاناهای برنامه‌سازی کاربردی فروشگاه امن، Vaults (گاوصندوق‌ها) را ببینید. بخش‌های زیر نمای کلی استفاده از میانای برنامه‌سازی کاربردی فروشگاه امن را نیز ارائه می‌دهد.

ذخیره داده‌ها براساس سازمان

هر سازمان 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
  • اگر مقدار مشخص‌شده با آنچه ازقبل در فروشگاه وجود دارد مطابقت داشته باشد، «درست» و اگر مطابقت نداشته باشد، «نادرست» برمی‌گرداند. در هر دو مورد، از کد وضعیت 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. به دایرکتوری ریشه پروژه خود بروید.
  2. اجرا: npm install apigee-access --save

توابع

از تابع apigee-access getVault()‎ برای بازیابی خزانه خاصی استفاده می‌شود، چه براساس سازمان و چه براساس محیط فعلی که کد Node.js در آن اجرا می‌شود.

‫getVault() دو پارامتر می‌گیرد:

  • نام فروشگاه امن برای بازیابی.
  • محدوده، که می‌تواند organization یا environment باشد. اگر مشخص نشده باشد، organization درنظر گرفته می‌شود.

شیء برگشتی از getVault() دو تابع دارد:

  • getKeys(callback): آرایه‌ای حاوی نام‌های همه کلیدهای موجود در انبار مشخص‌شده را برمی‌گرداند. تابع برگشتی با دو آرگومان فراخوانی خواهد شد: اگر عملکرد ناموفق باشد، خطا، یا اگر موفق باشد، «تعریف‌نشده»، و آرایه واقعی به‌عنوان آرگومان دوم.
  • get(key, callback): مقدار امن مرتبط با یک کلید خاص را برمی‌گرداند. تابع فراخوانی با دو آرگومان فراخوانده خواهد شد: اگر عملیات ناموفق باشد، خطا، یا اگر موفق باشد، «تعریف‌نشده»، و مقدار واقعی به‌عنوان آرگومان دوم.

مثال

در اینجا نمونه 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
});