Zentao
Zentao هو نظام/أداة إدارة مشاريع رشيقة (scrum)، ولكنه لا يدعم OIDC بحد ذاته. لدمج Zentao مع Casdoor SSO، نحتاج إلى استخدام وحدة OIDC الطرفية الثالثة تسمى zentao-oidc، وسيوضح لك هذا المستند كيفية القيام بذلك.
الخطوة 1: نشر Casdoor و Zentao
أولاً، نشر Casdoor وZentao. بعد نشر ناجح، تأكد من:
- يمكن تسجيل الدخول إلى Casdoor واستخدامه بنجاح.
- يمكنك تسجيل الدخول واستخدام Zentao بنجاح.
الخطوة 2: دمج وحدة Zentao OIDC الطرفية الثالثة
تثبيت zentao-oidc بتشغيل الأمر التالي:
git clone https://github.com/casdoor/zentao-oidc.git
بدلاً من ذلك، يمكنك تحميل الZIP وفك ضغطه.
تُستخدم هذه الوحدة لدمج Zentao مع SSO لـ OpenId. إليك كيفية استخدامها:
انسخ دليل
oidc
بالكامل إلى وحدة Zentao واستخدمه كوحدة من Zentao. أعد تسمية الحزمة المحملة إلى "oidc".قم بتكوين الفلتر.
نظرًا لأن إطار عمل Zentao يقوم بتصفية المعلمات في الرابط ولا يسمح بالمسافات، فأنت بحاجة إلى وضع الكود التالي في نهاية
/config/my.php
.$filter->oidc = new stdclass();
$filter->oidc->index = new stdclass();
$filter->oidc->index->paramValue['scope'] = 'reg::any';تعديل
/module/commom/model.php
.أضف 'oidc' إلى قائمة الوصول المجهول وأضف سطرًا إلى طريقة
isOpenMethod
فيmodel.php
.public function isOpenMethod($module, $method)
{
if ($module == 'oidc' and $method == 'index') {
return true;
}
}إذا كنت لا تريد ظهور شاشة تسجيل الدخول Zentao، انتقل مباشرةً إلى شاشة تسجيل الدخول Casdoor.
تعديل السطر الأخير من الكود في
public function checkPriv()
في/module/common/model.php
.//return print(js::locate(helper::createLink('user', 'login', "referer=$referer")));
return print(js::locate(helper::createLink('oidc', 'index', "referer=$referer")));تعديل طريقة
setSuperVars()
داخلframework/base/router.class.php
وعلق العبارات التالية.public function setSuperVars()
// unset($_REQUEST);
الخطوة 3: تكوين تطبيق Casdoor
- إنشاء تطبيق Casdoor جديد أو استخدام واحد موجود.
- أضف رابط التحويل الخاص بك.
- أضف المزود الذي تريده واملأ الإعدادات المطلوبة الأخرى.
الخطوة 4: تكوين Zentao
تكوين ملف config.php
في دليل oidc
.
$config->oidc->clientId = "<Your ClientId>";
$config->oidc->clientSecret = "<Your ClientSecret>";
$config->oidc->issuer = "http://localhost:8000";
اضبط رابط التحويل الخاص بك في module/oidc
في طريقة public function index()
.
$oidc->setRedirectURL($path."/zentao/oidc-index.html");
الرابط هنا يشير إلى استدعاء طريقة 'index' في وحدة 'oidc'. تحتاج أيضًا إلى تعيين فاصل للمتغيرات. بشكل افتراضي، يستخدم الإطار شرطة ("-"). يرجى الرجوع إلى إطار عمل Zentao الرسمي لمزيد من التفاصيل. "إطار عمل zentaoPHP"