التخطي إلى المحتوى الرئيسي

GitLab

Casdoor يمكنه استخدام بروتوكول OIDC للربط بخادم GitLab المنشور ذاتيًا، وسيوضح لك هذا المستند كيفية القيام بذلك.

تحذير

كما تذكر وثائق GitLab، GitLab يعمل فقط مع مزودي OpenID الذين يستخدمون HTTPS، لذا تحتاج إلى نشر Casdoor مع HTTPS، مثل وضع Casdoor خلف عكس الوكيل NGINX مع إعداد شهادة SSL. Casdoor بحد ذاته يستمع فقط على المنفذ 8000 افتراضيًا عبر HTTP ولا يحتوي على أي وظائف متعلقة بـ HTTPS.

فيما يلي بعض الأسماء المذكورة في التكوين:

CASDOOR_HOSTNAME: اسم النطاق أو IP حيث يتم نشر خادم Casdoor، مثل https://door.casbin.com.

GITLAB_HOSTNAME: اسم النطاق أو IP حيث يتم نشر GitLab، مثل https://gitlab.com.

الخطوة 1: نشر Casdoor و GitLab

أولاً، يجب نشر Casdoor و GitLab.

بعد نشر ناجح، تحتاج إلى التأكد من:

  1. Casdoor يمكن تسجيل الدخول إليه واستخدامه بشكل طبيعي.
  2. قم بتعيين قيمة origin لـ Casdoor (conf/app.conf) إلى CASDOOR_HOSTNAME. تكوين Casdoor

الخطوة 2: تكوين تطبيق Casdoor

  1. إنشاء أو استخدام تطبيق Casdoor موجود.
  2. أضف عنوان URL لإعادة التوجيه: http://GITLAB_HOSTNAME/users/auth/openid_connect/callback.
  3. أضف المزود الذي تريده وأكمل الإعدادات الأخرى.

إعداد التطبيق من الجدير بالذكر، يمكنك الحصول على قيمتين في صفحة إعدادات التطبيق: Client ID و Client secret (انظر الصورة أعلاه)، وسنستخدمهما في الخطوة التالية.

افتح متصفحك المفضل وزر: http://CASDOOR_HOSTNAME/.well-known/openid-configuration، حيث سترى تكوين OIDC لـ Casdoor.

الخطوة 3: تكوين GitLab

يمكنك اتباع الخطوات أدناه لإعداد هذا، أو إجراء تغييرات مخصصة وفقًا لـ هذا المستند (على سبيل المثال، إذا كنت تقوم بتثبيت GitLab باستخدام الكود المصدري بدلاً من Omnibus).

  1. على خادم GitLab الخاص بك، افتح ملف التكوين.

    sudo editor /etc/gitlab/gitlab.rb
  2. أضف تكوين المزود. (يجب أن يتضمن عنوان URL لـ HOSTNAME http أو https)

    gitlab_rails['omniauth_providers'] = [
    {
    name: "openid_connect",
    label: "Casdoor", # optional label for the login button, defaults to "Openid Connect"
    args: {
    name: "openid_connect",
    scope: ["openid", "profile", "email"],
    response_type: "code",
    issuer: "<CASDOOR_HOSTNAME>",
    client_auth_method: "query",
    discovery: true,
    uid_field: "preferred_username",
    client_options: {
    identifier: "<YOUR CLIENT ID>",
    secret: "<YOUR CLIENT SECRET>",
    redirect_uri: "<GITLAB_HOSTNAME>/users/auth/openid_connect/callback"
    }
    }
    }
    ]
  3. أعد تشغيل خادم GitLab الخاص بك.

  4. كل مستخدم مسجل يمكنه فتح GITLAB_HOSTNAME/-/profile/account وربط حساب Casdoor. اتصال GitLab

  5. انتهاء. الآن، يمكنك تسجيل الدخول إلى GitLab الخاص بك باستخدام Casdoor. تسجيل دخول GitLab