التكوين
عند العمل مقابل DuoKey Cockpit، يُكوَّن مزوّد PKCS#11 عبر ملف pkcs11.toml إضافةً إلى تجاوزات اختيارية بمتغيّرات البيئة DKE_PKCS11_*. لا يحمل الملف سوى عنصرين أساسيين — عنوان وسيط Cockpit والرمز الحامل access_guid — لأن Cockpit يحلّ التطبيق والمستأجر من جانب الخادم.
تصف هذه الصفحة نموذج التكوين على المستوى المعماري. للاطلاع على المخطط الكامل والقيم الافتراضية وتخطيط الترحيل من v1 إلى v2، راجع تكوين مزوّد PKCS#11 (pkcs11.toml).
نظرة عامة
ملف التكوين
يقرأ المزوّد تكوينه عند C_Initialize من المسار الموجود في متغيّر البيئة DKE_PKCS11_CONF. يضبط Oracle هذا في ملف تعريف مستخدم Oracle (أو في غلاف OKV). المسار الشائع للتثبيت هو:
/usr/local/okv/hsm/generic/pkcs11.toml
المخطط
# pkcs11.toml — DuoKey PKCS#11 provider configuration
[http_config]
# Full Cockpit proxy URL for this Oracle TDE app (required).
# It already contains the app identity and access_guid, so no separate
# endpoint, tenant, or credential fields are needed.
server_url = "https://cockpit.example.com/api/apps/APP_ID/tde/pkcs11/ACCESS_GUID"
# Bearer token used to authenticate every request — the app's access_guid.
access_token = "ACCESS_GUID"
# HTTP request timeout in seconds (default: 30).
timeout_secs = 30
# Verify the server's TLS certificate (default: true).
# Set to false ONLY for testing against self-signed certificates.
verify_tls = true
[pkcs11]
# Id of the single virtual slot the library presents (default: 0).
slot_id = 0
# Logging level: "error" | "warn" | "info" | "debug" | "trace" (default: "info").
logging_level = "info"
# Optional folder for provider log files (default: none — logs to stderr).
logging_folder = "/var/log/dke-pkcs11"
[http_config] — الاتصال بـ Cockpit
| المفتاح | النوع | الافتراضي | الغرض |
|---|---|---|---|
server_url | نص | (مطلوب) | عنوان وسيط Cockpit الكامل لهذا التطبيق. يحتوي على هوية التطبيق وaccess_guid، لذا لا حاجة إلى حقول منفصلة لنقطة النهاية أو المستأجر. |
access_token | نص | "" | الرمز الحامل المُرسَل كـ Authorization: Bearer …. بالنسبة لـ Oracle TDE، هذا هو access_guid الخاص بالتطبيق. |
timeout_secs | عدد صحيح | 30 | مهلة HTTP لكل طلب. |
verify_tls | قيمة منطقية | true | التحقّق من شهادة TLS. أبقِها true في الإنتاج. |
[pkcs11] — سلوك المزوّد المحلي
| المفتاح | النوع | الافتراضي | الغرض |
|---|---|---|---|
slot_id | عدد صحيح | 0 | معرّف الفتحة الافتراضية الوحيدة المعروضة على Oracle. |
logging_level | نص | "info" | مستوى تفصيل سجلات المزوّد. |
logging_folder | نص | (لا يوجد) | دليل سجلات المزوّد؛ إن لم يُضبط، تذهب السجلات إلى stderr. |
نموذج المصادقة
- بيانات اعتماد واحدة. المصادقة هي رمز حامل
access_guidواحد، مُضمَّن فيserver_urlومُكرَّر كـaccess_token. لا يوجد تدفّق OAuth2 لبيانات اعتماد العميل، ولاclient_id/client_secret، ولا اسم مستخدم / كلمة مرور، ولا اكتشاف OpenID Connect. - لا حقل مستأجر. يحلّ Cockpit المستأجر من جانب الخادم من هوية التطبيق في العنوان — لا يوجد معرّف مستأجر أو ترويسة مستأجر على جانب العميل.
- لا حقل Vault. يُدار الـ Vault / مخزن المفاتيح الداعم بواسطة التطبيق في Cockpit، لا من جانب العميل.
إن access_guid في server_url / access_token هو بيان اعتماد حامل. قصر الملف على مستخدم نظام تشغيل Oracle — على سبيل المثال chmod 600، ومملوك لـ oracle — ودوّر رمز الوصول الخاص بالتطبيق من Cockpit إن تعرّض للكشف.
تجاوزات متغيّرات البيئة
تأخذ متغيّرات البيئة الأولوية على الملف، لذا يمكنك الاحتفاظ بـ pkcs11.toml أساسي والتجاوز لكل مضيف:
| متغيّر البيئة | يتجاوز |
|---|---|
DKE_PKCS11_CONF | مسار ملف pkcs11.toml |
DKE_PKCS11_SERVER_URL | http_config.server_url |
DKE_PKCS11_ACCESS_TOKEN | http_config.access_token |
DKE_PKCS11_VERIFY_TLS | http_config.verify_tls (0 / false / no = مُعطَّل) |
DKE_PKCS11_SLOT_ID | pkcs11.slot_id |
DKE_PKCS11_LOGGING_LEVEL | pkcs11.logging_level |
DKE_PKCS11_LOGGING_FOLDER | pkcs11.logging_folder |
إن لم يُقدَّم مسار ملف، يمكن للمكتبة بناء تكوينها بالكامل من متغيّرات البيئة، شريطة ضبط عنوان الخادم ورمز الوصول على الأقل.
الحصول على القيم
لا تجمع هذه القيم يدوياً. في Cockpit، افتح تطبيق Oracle TDE واستخدم حزمة النشر الخاصة به — يولّد Cockpit لك ملف pkcs11.toml (بعنوان server_url وaccess_guid الصحيحين)، وتصديرات البيئة، وبرامج Oracle SQL النصية لتنزيلها.
التحقّق
تتحقّق المكتبة من التكوين أثناء التهيئة:
- عنوان الخادم موجود وصحيح التنسيق.
- رمز الوصول موجود.
- عند الفشل، تُعيد التهيئة
CKR_DEVICE_ERROR(اتصال / تكوين) أوCKR_PIN_INCORRECT(مصادقة).
أفضل ممارسات الأمن
- لا تودع أبداً ملف
pkcs11.tomlأوaccess_guidفي نظام التحكّم في الإصدارات. - قيّد أذونات الملف على مستخدم نظام تشغيل Oracle (
chmod 600). - دوّر رمز وصول التطبيق من Cockpit وفق جدول منتظم وفوراً إن تعرّض للكشف.
- أبقِ
verify_tls = trueواستخدم TLS 1.2+ لجميع الاتصالات.
الخطوات التالية
- تدفّق الاتصال ← - شاهد كيفية استخدام التكوين
- نظرة عامة على البنية ← - افهم البنية الإجمالية
- تكوين مزوّد PKCS#11 (pkcs11.toml) ← - المخطط الكامل وتخطيط الترحيل من v1 إلى v2