Shibboleth SSO مع Discourse

مرحباً بالجميع،

أخيراً نجحت في دمج موقع Discourse الخاص بي مع Shibboleth. كان الأمر بسيطاً… بمجرد أن فهمت كيف يعمل :joy:.

  1. قم بتشغيل Shibboleth على خادم ويب واحد (لا يشترط أن يكون نفس خادم Discourse). لنسمّه shib.univ.edu.

  2. أنشئ دليلاً على shib.univ.edu مخصصاً لعملية SSO الخاصة بـ Discourse. لنسمّه discourse-sso.

  3. حمِّ هذا الدليل باستخدام Shibboleth. إذا كنت تستخدم Apache، فعادة ما يعني ذلك إضافة شيء مشابه لما يلي في ملف discourse-sso/.htaccess:

     # Shibboleth header
     AuthType Shibboleth
     ShibRequireSession On
     ShibApplicationId default
     ShibExportAssertion On
    
     require shib-user ~ ^.+@univ\.edu$
    
  4. احصل على مكتبة تقوم بعملية التوقيع الموصوفة في دليل SSO الرسمي لـ Discourse. أنا أستخدم cviebrock/discourse-php. قم بإنشاء ملف sso.php هنا بناءً على تعليمات الاستخدام.

  5. ستكون قيمتا 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 );
    
  6. فعّل SSO من خلال دليل SSO الرسمي لـ Discourse. اجعل عنوان sso url يشير إلى https://shib.univ.edu/discourse-sso/sso.php وستكون جاهزاً.

GI

7 إعجابات