سؤال

لدي مشكلة إلى حد ما.

لدينا محرك واجهة مركزية سيتحدث إلى خدمة ويب ستوفر معلومات مكملة وتسمح لتقديم الطلب إلى الأنظمة الخارجية. كل هذا جيد وغرامة حتى يتعين علينا دمج هذا مع الأمن المطلوب من هذا المزود.

يصدرون شهادات موزعة من خلال البطاقات الذكية (مفتاح USB) الذي يجب أن يستخدمه المستخدم النهائي لتفاعل البرنامج مع النظام المذكور (خدمات الويب). يصرون على أن يتم توقيع (في بعض الأحيان متعددة) مقابل شهادة المستخدم النهائي على مفتاح USB الخاص به. المفتاح الخاص ، بالطبع ، محمي كلمة المرور.

كيف أقوم بتوصيل AXIS2 والتي ستتعامل في نهاية المطاف مع كل هذا بالشهادات الموجودة على جهاز كمبيوتر المستخدم النهائي.

يكون النظام في الغالب تطبيق عميل سميك قديم في Delphi 5 ، يتفاعل محرك الواجهة في الغالب مع قاعدة البيانات. لقد تمكنا الآن من توصيل قطعة من التعليمات البرمجية التي تربط بشكل فعال محطة المستخدم النهائي بخادم الواجهة عبر مقبس TCP بسيط.

---- تعديل ----

قمنا بتنفيذ الحل باستخدام اعتراض توقيع مخصص داخل CXF (قمنا بتغيير من المحور) الذي قام بإعادة توجيه محتوى الرسالة إلى وكيل توقيع والذي بدوره سيجد وتوصيل خدمة التوقيع الصحيحة التي تعمل في جلسة المستخدم التفاعلية حيث جاء الطلب الأصلي.

لقد قبلت إجابة يوجين لأنه على الرغم من أننا لم نستخدم المكونات التي حددها ، فقد قمنا بتنفيذ الحل الذي أعقب إرشادات اقتراحه العامة.

لا يوجد أي هروب من حقيقة أن التوقيع يجب القيام به في جلسة مستخدم تفاعلية بسبب رمز USB. تم فرض قيود إضافية بسبب حقيقة أننا استخدمنا الأنظمة القديمة والحاجة إلى عمل النظام في بيئة مشتركة (خادم سطح المكتب البعيد). على الرغم من أنه من الممكن أن لا يتم دعمه بشكل طبيعي بواسطة أطر عمل خدمة الويب أو مكتبات التشفير.

هل كانت مفيدة؟

المحلول

إذا كان لديك الشهادة الموجودة على رمز USB للعميل ، فيجب إجراء التوقيع (كعملية تشفير) على جانب العميل. إذا كنت تستطيع تعديل تطبيق Delphi هذا ، فيمكنك الاستخدام SecureBlackBox للتوقيع. لا أعرف شيئًا عن AXIS2 ، ولكن إذا سمح بإنشاء وحدات تشفير مخصصة وتوصيلها ، فأنت تصنع واحدة ستأخذ تجزئة (وهو ما تم توقيعه بالفعل) وإرساله إلى العميل للتوقيع.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top