سؤال

لذلك أحاول حاليًا إنشاء مزود OpenID.لقد حاولت استخدام اثنين من حزم خادم OpenID المستندة إلى Java - Atlassian's Crowd وWSO2 Identity Server.الآن، في تنفيذي، يعد الأمان أمرًا ضروريًا، مما يعني استخدام SSL والحصول على OpenIDs المستندة إلى HTTPS.الآن، بالنسبة لكل من WSO2 وCrowd، هناك عدد كبير من المواقع التي لا تعمل مع OpenIDs المتوفرة.من بين 20 موقعًا تم اختبارها، فشلت 8 مع Crowd، و10 فشلت مع WSO2.معدل الفشل المرتفع هذا غير مقبول حقًا.يدعي كل موقع تقريبًا يواجه مشكلة أنه لا يمكنه العثور على نقطة نهاية OpenID.

عندما استخدمت OpenIDs بدون SSL (وبالتالي OpenIDs المستندة إلى HTTP) فجأة أصبحت المواقع أكثر امتثالًا، مع فشل اثنين منها فقط.أنا أستخدم شهادة من AusCERT، لذا لا ينبغي أن تكون المشكلة بسبب الشهادات الموقعة ذاتيًا.

في البداية اعتقدت أن هذا كان مجرد مسألة وجود عدد كبير من RPs التي ببساطة لم تقبل OpenIDs المستندة إلى HTTPS.لقد حاولت تسجيل الدخول إلى نفس المواقع التي كنت أفشل فيها باستخدام OpenID المستند إلى HTTPS من Verisign، وقد نجح الأمر.وبالنظر عن كثب إلى كل من WSO2 وCrowd، اكتشفت أنهما لا يتوافقان تمامًا مع مواصفات OpenID 2.0 - على وجه الخصوص، ولا يوفر أي منهما رابطًا في الرأس إلى مستند XRDS لاكتشاف yadis.مع الأخذ في الاعتبار أن مشكلتي هي أن المواقع لا يمكنها اكتشاف نقطة نهاية OpenID على عنوان URL الذي أقدمه، يبدو الأمر ذا صلة باستثناء أنه عندما لا أستخدم SSL، يكون الاكتشاف المستند إلى HTML كافيًا.

هل لدى أي شخص أي فكرة عن أين تكمن مشكلتي حقًا؟يبدو أن وثيقة XRDS المفقودة يجب أن تكون ذات صلة، ولكنها قد تكون مجرد ذريعة حمراء.باستثناء ذلك، إذا كان أي شخص يعرف بديلاً جيدًا لـ Crowd أو WSO2 والذي تم توثيقه جيدًا، ويعمل بشكل جيد وفقًا للمواصفات، وسهل التهيئة (نسبيًا)، فسيكون من الجيد أن يعرف ذلك!

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

المحلول

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

إذا كان .NET خيارًا لمزود الخدمة الخاص بك، فاطلع على المصدر المجاني والمفتوح DotNetOpenAuth المكتبة، والتي يمكنك استضافتها بنفسك وتستخدمها بعض العمليات الرئيسية مثل ماي سبيس و netidme.com و آحرون.لقد اكتمل تنفيذ OpenID 2.0، وهو يدعم الولايات المتحدة.ملف تعريف ICAM OpenID 2.0 الحكومي، وقد تم استخدامه في العديد من اختبارات التشغيل البيني والأمان والامتثال، وهو يعمل مع كل من OpenID 1.1 و2.0 RPs لذا من المحتمل جدًا أن يكون لديك إمكانية تشغيل تفاعلي جيدة مع العديد/جميع RPs.لديها مجموعة من ميزات أمان إضافية يمكنك فقط تشغيله (مثل طلب HTTPS كما قلت فهو مطلب).

(الكشف الكامل:لقد كتبت DotNetOpenAuth.)

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