خدمة WCF التي تم استضافتها على موقع IIS وموقع العميل على IIS
-
23-09-2019 - |
سؤال
هذا هو الإعداد المطلوب:
- الخدمة مع WSHTPBInding على IIS 6 على الجهاز 1 خلف جدار الحماية.
- العميل هو موقع الواجهة الأمامية على IIS 6 على الجهاز 2 على DMZ.
نحن قادرون حاليًا على مصادقة العميل باستخدام مصادقة Windows ، ولكن مع انتحال شخصية
<identity impersonate="true" userName="OurCompany\Me" password="Blahblahblah" />
نظرًا لأن موقع الويب سيستخدم "ASPNET" كاسم مستخدم ، وهو ليس في المجال.
نريد الآن الابتعاد عن هذه الطريقة ، بسبب مشكلة السلامة ؛ لا نريد فضح هذا النوع من المعلومات على DMZ.
هل هناك أي طريقة للحصول على المصادقة بشكل صحيح دون استخدام انتحال شخصية على تكوين العميل؟
إذا تغيرنا حتى نستخدم مصادقة الشهادة ، فهل سيؤثر ذلك على عمليات الخدمة التي تتطلب انتحال شخصية (الانتحال المطلوب للوصول إلى الملف على الشبكة على سبيل المثال)؟
شكرًا.
المحلول
لقد تم حل هذا الآن ، وأعتقد أنه سيكون من البناء مشاركة الحلول.
من حيث سؤالي الأصلي - سواء كان قادرًا على القيام بالانتحال دون تعيينه بشكل صريح في التكوين أو في رمز النهاية الأمامية. كما ذكر ما ورد أعلاه ، تعمل طريقة تجمع التطبيق ، ولكن فقط عندما يكون كل من العميل والخادم في نفس المجال.
نظرًا لأن عميل موقع الويب الذي يقع في DMZ لا يمكنه الوصول إلى الشبكة المحلية على الإطلاق ، مما يعني أننا غير قادرين على انتحال شخصية أي مستخدم للشبكة (هذا عيب في سؤالي الأصلي ، قائلاً إن الانتحال يعمل - لم يكن يعمل بالفعل) .
وبالتالي فإن الطريقة الوحيدة للذهاب هي استخدام الشهادة. نظرًا لأن هذه الاتصالات الداخلية ، فقد قمت بإنشاء شهادة اختبار على كل جانب من جوانب الخادم / العميل مع MakeCert. باستخدام مصادقة شهادة Peer Trust ، أتمكن من عمل الاتصال بين العميل والخادم. سيضمن ذلك عدم تقديم معلومات حساب مستخدم Windows / Network في منطقة DMZ.