ข้ามไปยังเนื้อหาหลัก

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