مرحباً بالجميع،
أخيراً نجحت في دمج موقع Discourse الخاص بي مع Shibboleth. كان الأمر بسيطاً… بمجرد أن فهمت كيف يعمل
.
-
قم بتشغيل Shibboleth على خادم ويب واحد (لا يشترط أن يكون نفس خادم Discourse). لنسمّه
shib.univ.edu. -
أنشئ دليلاً على
shib.univ.eduمخصصاً لعملية SSO الخاصة بـ Discourse. لنسمّهdiscourse-sso. -
حمِّ هذا الدليل باستخدام Shibboleth. إذا كنت تستخدم Apache، فعادة ما يعني ذلك إضافة شيء مشابه لما يلي في ملف
discourse-sso/.htaccess:# Shibboleth header AuthType Shibboleth ShibRequireSession On ShibApplicationId default ShibExportAssertion On require shib-user ~ ^.+@univ\.edu$ -
احصل على مكتبة تقوم بعملية التوقيع الموصوفة في دليل SSO الرسمي لـ Discourse. أنا أستخدم cviebrock/discourse-php. قم بإنشاء ملف
sso.phpهنا بناءً على تعليمات الاستخدام. -
ستكون قيمتا
usernameوemailفي متغير البيئةeppn. لذا إذا اتبعت تعليمات الاستخدام الموضحة في cviebrock/discourse-php (الرابط أعلاه)، فيجب عليك فقط تعيين:// Insert your user authentication code here ... // Required and must be consistent with your application $userEmail = getenv( 'eppn' ); // Required and must be unique to your application $userId = strstr( $userEmail, '@', true ); -
فعّل SSO من خلال دليل SSO الرسمي لـ Discourse. اجعل عنوان
sso urlيشير إلىhttps://shib.univ.edu/discourse-sso/sso.phpوستكون جاهزاً.
GI