استكشاف أخطاء DKE وإصلاحها
يركّز هذا الفصل على التشفير مزدوج المفتاح (DKE) لـ Microsoft 365: المسار من عميل Office، مروراً بتسميات حساسية Microsoft Purview، وصولاً إلى نقطة نهاية مفاتيح DKE من DuoKey داخل مؤسستك (حاوية KMS API).
يتوافق النهج التشخيصي هنا مع إرشادات استكشاف أخطاء DKE الرسمية من Microsoft، معدّلاً لنشر DuoKey داخل المؤسسة قائم على الحاويات حيث تعمل خدمة DKE بوصفها حاوية KMS API خلف موجّه الدخول (Ingress Router) في OpenShift.
كيف تتكامل مكوّنات DKE معاً
يحمي المحتوى مفتاحان: المفتاح المُدار من Microsoft ومفتاح DKE الخاص بك، الذي لا يغادر أبداً نقطة النهاية داخل مؤسستك. إذا تعطّل أي طرف من هذا التدفّق، فلن يتمكّن المستخدمون من تطبيق المحتوى المحمي بـ DKE أو فتحه.
الخطوة 1 — هل نقطة نهاية مفاتيح DKE قابلة للوصول؟
هذا أسرع اختبار أولي. من شبكة عميل، افتح عنوان URL الخاص بالمفتاح في متصفح:
https://<dke-endpoint>/<keyname>
- المتوقع: استجابة JSON تحتوي على المفتاح العام (
kid،key، البيانات الوصفية للمفتاح). - لا شيء / انتهاء المهلة / رفض الاتصال: مشكلة في الشبكة أو DNS أو الدخول أو الحاوية.
فحوصات على جانب العنقود:
oc get route -n duokey # is the DKE/KMS route present?
oc get pods -n duokey -l app=duokey-kms-api # is the KMS API pod Running/Ready?
oc logs -n duokey -l app=duokey-kms-api --tail=200
curl -I https://<dke-endpoint>/<keyname> # status + TLS
| العرَض | السبب المحتمل | الحل |
|---|---|---|
| رفض الاتصال / انتهاء المهلة | جدار حماية / DNS / لا مسار | اسمح بالمنفذ 443 إلى نقطة النهاية؛ تحقّق من أن DNS العام يُحل إلى موازن التحميل؛ افحص مسار OpenShift |
| 502 / 503 | لا توجد حاوية KMS API سليمة | أصلح حاويات KMS API أولاً (oc describe، oc logs) |
404 على /<keyname> | اسم مفتاح خاطئ | تأكّد من أن اسم المفتاح يطابق تهيئة المفتاح المنشور |
الخطوة 2 — الثقة بـ TLS / الشهادة
يتطلّب عملاء DKE شهادة TLS صالحة وموثوقة على نقطة النهاية.
| العرَض | السبب | الحل |
|---|---|---|
certificate not trusted في المتصفح/Office | تستخدم نقطة النهاية مرجعاً مصدّقاً خاصاً/غير موثوق | استخدم شهادة موثوقة لدى العملاء، أو وزّع المرجع المصدّق الداخلي على العملاء |
| فشل المصافحة / إعادة تعيين | عدم توافق إصدار TLS / التشفير | واءِم tlsSecurityProfile الخاص بالدخول مع متطلبات العميل (أمن الشبكة) |
| عدم تطابق الاسم | CN/SAN للشهادة ≠ اسم مضيف نقطة النهاية | أعِد إصدار الشهادة بـ SAN الصحيح |
الخطوة 3 — المصادقة (Entra ID)
يُصرّح DKE بطلبات المفاتيح باستخدام رمز Entra ID (Azure AD). معظم أخطاء "تعذّر الحصول على المفتاح" هي حالات عدم تطابق في المُصدِر/الجمهور.
افحص تهيئة KMS API / DKE (المُسلّمة بوصفها ConfigMap/Secret، وهي مكافئة
لملف appsettings.json الخاص بـ Microsoft):
| الإعداد | يجب أن يطابق |
|---|---|
| المُصدِرون الصالحون | مُصدِر مستأجر Entra ID الخاص بك (https://sts.windows.net/<tenantId>/ أو v2 login.microsoftonline.com/<tenantId>/v2.0) |
| الجمهور / جمهور JWT | معرّف تطبيق DKE (App ID URI) / معرّف العميل المُسجّل في Entra ID |
| المستخدمون المصرّح لهم | البريد/UPN أو المجموعة المسموح لها بطلب المفاتيح |
| معرّف المستأجر | مستأجر Entra ID الخاص بك |
# Inspect the running DKE config (redact secrets)
oc get configmap duokey-kms-config -n duokey -o yaml
| العرَض | السبب | الحل |
|---|---|---|
| 401 Unauthorized | عدم تطابق المُصدِر/الجمهور، أو رمز غير موجود/منتهٍ | صحّح ValidIssuers/Audience؛ تأكّد من تسجيل تطبيق Entra |
| 403 Forbidden | المستخدم غير مدرج في قائمة المصرّح لهم | أضِف المستخدم/المجموعة إلى المستخدمين المصرّح لهم |
| يعمل للمسؤول وليس للمستخدمين | نطاق التصريح | راجع المستخدمين المصرّح لهم / تعيين المجموعات |
تأكّد من وجود تسجيل تطبيق DKE في Entra ID، وأنه يعرض الجمهور المتوقع / معرّف التطبيق (App ID URI)، وأن موافقة المسؤول قد مُنحت. يُعدّ عدم تطابق المُصدِر/الجمهور أكثر أسباب فشل DKE شيوعاً على الإطلاق.
الخطوة 4 — تهيئة تسمية الحساسية (Purview)
يجب أن تشير تسمية حساسية DKE إلى نقطة النهاية الخاصة بك وأن تكون منشورة.
- في Microsoft Purview، يجب أن تحتوي إعدادات التشفير لتسمية DKE على
عنوان URL الدقيق لنقطة نهاية DKE (
https://<dke-endpoint>). - يجب أن تكون سياسة التسمية منشورة للمستخدمين المستهدفين.
- امنح وقتاً لانتشار التسمية/السياسة إلى العملاء.
| العرَض | السبب | الحل |
|---|---|---|
| التسمية مفقودة في Office | السياسة غير منشورة / لم تنتشر | انشر السياسة؛ انتظر المزامنة؛ سجّل الخروج/الدخول |
| التسمية تُطبَّق لكن المحتوى غير قابل للقراءة في مكان آخر | نقطة النهاية غير قابلة للوصول لذلك المستخدم | أعِد فحص الخطوات 1–3 من الشبكة المتأثرة |
| نقطة نهاية خاطئة | خطأ مطبعي في عنوان URL في التسمية | صحّح عنوان URL لنقطة نهاية DKE في التسمية |
الخطوة 5 — عميل Office
| العرَض | السبب | الحل |
|---|---|---|
| "حدث خطأ ما" عند التطبيق/الفتح | نقطة النهاية غير قابلة للوصول أو فشل المصادقة | نفّذ الخطوتين 1 و3 من شبكة العميل |
| عميل أقدم لا يمكنه استخدام DKE | الإصدار لا يدعم DKE | حدّث إلى إصدار من تطبيقات Microsoft 365 يدعم DKE |
| إخفاقات متقطعة بعد تغيير التهيئة | رمز / ذاكرة تخزين مؤقت قديمة | سجّل الخروج ثم الدخول؛ امسح ذاكرة اعتماد Office المؤقتة |
| يعمل عبر الإنترنت ويفشل دون اتصال | يتطلّب DKE الوصول إلى نقطة النهاية عند الفتح | يجب أن تكون نقطة النهاية قابلة للوصول كلما فُتح محتوى محمي |
قائمة تحقّق من طرف إلى طرف
- نقطة نهاية المفاتيح تُعيد مفتاحاً عاماً بصيغة JSON في متصفح:
https://<dke-endpoint>/<keyname> - حاويات KMS API في حالة
Running/Ready؛ المسار موجود - شهادة TLS صالحة وموثوقة لدى العملاء
- مُصدِر Entra ID + الجمهور يطابقان تهيئة DKE
- المستخدم مدرج في المستخدمين/المجموعة المصرّح لهم
- تسمية DKE تشير إلى نقطة النهاية الصحيحة ومنشورة
- عميل Office إصدار يدعم DKE وبإمكانه الوصول إلى نقطة النهاية
التصعيد إلى DuoKey
اجمع وأرسل إلى [email protected]:
oc logs -n duokey -l app=duokey-kms-api --tail=500
oc get route,pods -n duokey
oc get configmap duokey-kms-config -n duokey -o yaml # redact secrets
أرفِق: الخطأ الدقيق، وما إذا كان اختبار نقطة نهاية المفاتيح في المتصفح ينجح، والمستخدم (المستخدمين) المتأثرين، وأي تغييرات حديثة على التسمية أو Entra ID.