سؤال

هل هناك طريقة لتطبيق الويب Java للحصول على معلومات حول شهادات الأمان المثبتة على جهاز المرء عبر طلب HTTP ومنح الوصول بشكل انتقائي إذا تم تثبيت شهادة معينة على الجهاز.

في الأساس ، يجب أن يكون تطبيق الويب هو الترفيه عن الطلب فقط من جهاز كمبيوتر محمول من الشركة ، ويجب أن يرفض الوصول بنص الخطأ المناسب.

(يمكن أن تكون هذه هي الفوز بأجهزة الكمبيوتر المحمولة مع بعض الشهادات المثبتة على جهازها أو يمكن أن تكون من مجموعة معينة من IPS ثابتة.)

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

المحلول

نعم ، هذا ممكن باستخدام شهادات عميل HTTPS. يعتمد الإعداد والتكوين الدقيق على خادم التطبيق الخاص بك ومتطلبات محددة ، ولكن سيناريو شائع هو أن تقوم بإنشاء شركة CA (سلطة إصدار الشهادات) لإصدار شهادات العميل التي قد تقتصر على عناوين IP للعميل وتكوين خادم التطبيق الخاص بك HTTPS Connector يطلب شهادة عميل والثقة الشهادات الصادرة عن كاليفورنيا الخاصة بك.

بعد الانتهاء من التكوين المناسب ، يتم/يتم توفير شهادة (شهادات) العميل لتطبيق الويب من خلال سمة طلب Servlet:

X509Certificate[] certificates = (X509Certificate[])
    request.getAttribute("javax.servlet.request.X509Certificate");

نصائح أخرى

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

زوجان آخران:

  • سيتيح لك أي خادم تطبيق تقريبًا تعيين متجر شهادات موثوق به - قائمة شهادات CA التي سيقبلها تطبيق HTTPS Client Auth. حدد هذا إلى CA الذي يوفر شهادات العميل - إما شركة داخلية CA أو مزود شهادة.
  • اختيار CA أو CA الداخلي هو واحد الشركات. سيستغرق CA الداخلي القوى العاملة لإعداد وصيانة ، موفر لك CA يكلفك المال لكل شهادة. يصل إلى نقطة مفاضلة حيث يكون من الأرخص جعل الشهادات بنفسك ، ولكن حتى تصل إلى هذه النقطة ، قد يكون مزود CA أرخص.
  • إذا كان لديك CA داخلي وقاعدتك هي أن "أي آلة شركة (مع شهادة) يمكنها الوصول تستخدم لأي شخص غير أشخاص في الشركة.
  • إذا كان لديك مزود CA ، فقد تحتاج إلى الحد من التحكم في الوصول إلى أبعد من ذلك واستخدام الكود الذي قدمه Jambjo للحصول على الشهادة والنظر في المعلومات الموجودة فيه. عادةً ما يكون هناك مكون منظمة (O) والوحدة التنظيمية (OU) ضمن موضوع DN (الاسم المتميز) الذي سيخبرك بالمنظمة التي أنتجت هذه الشهادة. يجب أن تكون قادرًا على التحقق من ذلك للتأكد من أن لديك كمبيوتر شركة.
  • من القابل للحياة القيام بـ O و OU في التحقق مما إذا كنت تعلم أن مزود CA الخاص بك لن يمنح أبدًا أسماء شركتك O و OU لأي شخص سوى عضو في شركتك. إذا لم يكن الأمر كذلك ، فقد تحتاج إلى التحقق من مخزن بيانات النهاية الخلفية (مثل دليل LDAP) للتأكد من أن جهاز المستخدم أو المستخدم معروف لك.
  • من الممكن أيضًا ربط عنوان IP الخاص بالجهاز بالشهادة - غالبًا ما يتم استخدام الموضوع (الاسم البديل الموضوع) لهذا عند إنشاء الشهادة. لا أوصي بذلك ، لأنك ستحتاج إلى شهادة جديدة إذا قمت بتغيير عنوان IP للجهاز. يبدو معقدًا بشكل غير ضروري لأغراضك.
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top