خدمة WCF التي تم استضافتها على موقع IIS وموقع العميل على IIS

StackOverflow https://stackoverflow.com/questions/2158023

سؤال

هذا هو الإعداد المطلوب:

  • الخدمة مع WSHTPBInding على IIS 6 على الجهاز 1 خلف جدار الحماية.
  • العميل هو موقع الواجهة الأمامية على IIS 6 على الجهاز 2 على DMZ.

نحن قادرون حاليًا على مصادقة العميل باستخدام مصادقة Windows ، ولكن مع انتحال شخصية

<identity impersonate="true" userName="OurCompany\Me" password="Blahblahblah" />

نظرًا لأن موقع الويب سيستخدم "ASPNET" كاسم مستخدم ، وهو ليس في المجال.

نريد الآن الابتعاد عن هذه الطريقة ، بسبب مشكلة السلامة ؛ لا نريد فضح هذا النوع من المعلومات على DMZ.

  1. هل هناك أي طريقة للحصول على المصادقة بشكل صحيح دون استخدام انتحال شخصية على تكوين العميل؟

  2. إذا تغيرنا حتى نستخدم مصادقة الشهادة ، فهل سيؤثر ذلك على عمليات الخدمة التي تتطلب انتحال شخصية (الانتحال المطلوب للوصول إلى الملف على الشبكة على سبيل المثال)؟

شكرًا.

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

المحلول

لقد تم حل هذا الآن ، وأعتقد أنه سيكون من البناء مشاركة الحلول.

من حيث سؤالي الأصلي - سواء كان قادرًا على القيام بالانتحال دون تعيينه بشكل صريح في التكوين أو في رمز النهاية الأمامية. كما ذكر ما ورد أعلاه ، تعمل طريقة تجمع التطبيق ، ولكن فقط عندما يكون كل من العميل والخادم في نفس المجال.

نظرًا لأن عميل موقع الويب الذي يقع في DMZ لا يمكنه الوصول إلى الشبكة المحلية على الإطلاق ، مما يعني أننا غير قادرين على انتحال شخصية أي مستخدم للشبكة (هذا عيب في سؤالي الأصلي ، قائلاً إن الانتحال يعمل - لم يكن يعمل بالفعل) .

وبالتالي فإن الطريقة الوحيدة للذهاب هي استخدام الشهادة. نظرًا لأن هذه الاتصالات الداخلية ، فقد قمت بإنشاء شهادة اختبار على كل جانب من جوانب الخادم / العميل مع MakeCert. باستخدام مصادقة شهادة Peer Trust ، أتمكن من عمل الاتصال بين العميل والخادم. سيضمن ذلك عدم تقديم معلومات حساب مستخدم Windows / Network في منطقة DMZ.

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