الاتصال بخدمات Azure أو الجهات الخارجية الأخرى عبر مكونات Dapr
قم بإنشاء اتصالات بأمان بخدمات Azure وخدمات الجهات الخارجية لمكونات Dapr باستخدام الهوية المدارة أو مخازن Azure Key Vault السرية.
قبل البدء، تعرف على المزيد حول الدعم المقدم لمكونات Dapr.
التوصيات
كلما أمكن، يوصى باستخدام مكونات Azure التي توفر دعم الهوية المدارة للاتصال الأكثر أمانا. استخدم مخازن Azure Key Vault السرية فقط عندما لا تكون مصادقة الهوية المدارة مدعومة.
نوع الخدمة | التوصية |
---|---|
مكون Azure مع دعم الهوية المدارة | استخدام تدفق الهوية المدارة (مستحسن) |
مكون Azure بدون دعم الهوية المدارة | استخدام مخزن البيانات السرية ل Azure Key Vault |
مكونات غير Azure | استخدام مخزن البيانات السرية ل Azure Key Vault |
استخدام الهوية المدارة (مستحسن)
بالنسبة للخدمات المستضافة من Azure، يمكن ل Dapr استخدام الهوية المدارة لتطبيقات الحاوية ذات النطاق للمصادقة على موفر خدمة الواجهة الخلفية. عند استخدام الهوية المدارة، لا تحتاج إلى تضمين معلومات سرية في بيان مكون. يوصى باستخدام الهوية المدارة لأنه يلغي تخزين الإدخال الحساس في المكونات ولا يتطلب إدارة مخزن سري.
إشعار
azureClientId
حقل بيانات التعريف (معرف العميل للهوية المدارة) مطلوب لأي مكون يصادق مع الهوية المدارة المعينة من قبل المستخدم.
استخدام مرجع مكون مخزن البيانات السرية Dapr
عند إنشاء مكونات Dapr للخدمات أو المكونات غير الممكنة لمعرف الإدخال التي لا تدعم مصادقة الهوية المدارة، تتطلب بعض حقول بيانات التعريف قيم إدخال حساسة. لهذا الأسلوب، قم باسترداد هذه الأسرار عن طريق الرجوع إلى مكون مخزن البيانات السرية Dapr الموجود الذي يصل بأمان إلى المعلومات السرية.
لإعداد مرجع:
- إنشاء مكون مخزن سري Dapr باستخدام مخطط Azure Container Apps. يبدأ نوع المكون لجميع مخازن Dapr السرية المدعومة ب
secretstores.
. - إنشاء مكونات إضافية (حسب الحاجة) التي تشير إلى مكون مخزن البيانات السرية Dapr الذي قمت بإنشائه لاسترداد إدخال بيانات التعريف الحساسة.
إنشاء مكون مخزن بيانات سرية في Dapr
عند إنشاء مكون مخزن سري في Azure Container Apps، يمكنك توفير معلومات حساسة في قسم بيانات التعريف بأي من الطرق التالية:
- بالنسبة إلى مخزن Azure Key Vault السري، استخدم الهوية المدارة لتأسيس الاتصال.
- بالنسبة للمتاجر السرية غير التابعة ل Azure، استخدم أسرار Kubernetes المدارة بواسطة النظام الأساسي والتي يتم تعريفها مباشرة كجزء من بيان المكون.
مخازن Azure Key Vault السرية
يعرض مخطط المكون التالي أبسط تكوين مخزن سري ممكن باستخدام مخزن Azure Key Vault السري.
publisher-app
subscriber-app
ويتم تكوينها لكل من النظام أو الهوية المدارة المعينة من قبل المستخدم مع الأذونات المناسبة على مثيل Azure Key Vault.
componentType: secretstores.azure.keyvault
version: v1
metadata:
- name: vaultName
value: [your_keyvault_name]
- name: azureEnvironment
value: "AZUREPUBLICCLOUD"
- name: azureClientId # Only required for authenticating user-assigned managed identity
value: [your_managed_identity_client_id]
scopes:
- publisher-app
- subscriber-app
أسرار Kubernetes المدارة بواسطة النظام الأساسي
كبديل لبيانات Kubernetes السرية ومتغيرات البيئة المحلية ومخازن بيانات Dapr السرية للملف المحلي، توفر Azure Container Apps نهجا مدارا من قبل النظام الأساسي لإنشاء أسرار Kubernetes والاستفادة منها. يمكن استخدام هذا الأسلوب للاتصال بخدمات غير Azure أو في سيناريوهات التطوير/الاختبار لنشر المكونات بسرعة عبر CLI دون إعداد مخزن سري أو هوية مدارة.
يعرف تكوين المكون هذا القيمة الحساسة كمعلمة سرية يمكن الرجوع إليها من قسم بيانات التعريف.
componentType: secretstores.azure.keyvault
version: v1
metadata:
- name: vaultName
value: [your_keyvault_name]
- name: azureEnvironment
value: "AZUREPUBLICCLOUD"
- name: azureTenantId
value: "[your_tenant_id]"
- name: azureClientId
value: "[your_client_id]"
- name: azureClientSecret
secretRef: azClientSecret
secrets:
- name: azClientSecret
value: "[your_client_secret]"
scopes:
- publisher-app
- subscriber-app
الرجوع إلى مكونات مخزن Dapr السري
بمجرد إنشاء مخزن بيانات سرية ل Dapr باستخدام أحد النهج السابقة، يمكنك الرجوع إلى هذا المخزن السري من مكونات Dapr الأخرى في نفس البيئة. يوضح المثال التالي استخدام مصادقة معرف Entra.
componentType: pubsub.azure.servicebus.queue
version: v1
secretStoreComponent: "[your_secret_store_name]"
metadata:
- name: namespaceName
# Required when using Azure Authentication.
# Must be a fully-qualified domain name
value: "[your_servicebus_namespace.servicebus.windows.net]"
- name: azureTenantId
value: "[your_tenant_id]"
- name: azureClientId
value: "[your_client_id]"
- name: azureClientSecret
secretRef: azClientSecret
scopes:
- publisher-app
- subscriber-app