كيفية استخدام شهادة عميل في صفحة الدعوات

مرحباً،

لدينا تثبيت لـ Discourse يقتصر على المدعوين فقط. عند إرسال دعوة، يجب أن يتمكن المدعو من قبول الدعوة فقط إذا كان هناك شهادة عميل معينة موجودة في المتصفح.

هل لديكم أي تلميحات حول كيفية تحقيق ذلك؟

تحياتي،
هارمسترا

تحتاج إلى شيء مثل هذا ليظهر في تكوين nginx الخاص بك:

ssl_client_certificate /path/to/ca.pem;
ssl_verify_client on;

إذا كان يجب أن يكون موجودًا فقط للطلبات، فستحتاج إلى القيام بذلك في كتلة location تحتوي على مسار قبول الدعوة.

مرحبًا @michaeld،

هل من الممكن أيضًا استخدام حقل شهادة وحفظه في مثيل المستخدم كحقل مستخدم؟ على سبيل المثال، إذا أردنا حفظ تاريخ انتهاء الصلاحية، فهل يمكننا فعل ذلك؟

يبدو هذا معقداً بشكل غريب. ما هي حالة الاستخدام الخاصة بك؟

أوافق على ذلك.

حالة الاستخدام هي أن هناك منظمة هنا تقوم بمصادقة الشركات باستخدام شهادات العملاء هذه. نحن نحاول إنشاء مثيل Discourse حيث يمكن لهذه الشركات فقط الوصول إليه. يبدو الأمر سهلاً بما يكفي بناءً على مقتطف nginx المقدم من @michaeld.

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

آمل أن يكون الأمر واضحًا الآن، وإذا لم يكن كذلك، فلا تتردد في السؤال.

واو. يبدو الأمر أقل سخافة مما كنت أتخيل!

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

يمكنك تمرير الشهادة إلى Discourse باستخدام سطر مثل

proxy_set_header X-Cert-DN: $ssl_client_s_dn;

ثم استخدام نوع من الإضافات لقراءة القيمة من الرأس.