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 ควรถูกติดตั้ง
หลังจากการปรับใช้ที่สำเร็จ คุณต้องตรวจสอบ:
- Casdoor สามารถเข้าสู่ระบบและใช้งานได้ตามปกติ
- ตั้งค่า
origin
ของ Casdoor (conf/app.conf) เป็นCASDOOR_HOSTNAME
.
ขั้นตอนที่ 2: ตั้งค่าแอปพลิเคชัน Casdoor
- สร้างหรือใช้แอปพลิเคชัน Casdoor ที่มีอยู่แล้ว
- เพิ่ม URL สำหรับการเปลี่ยนเส้นทาง:
http://GITLAB_HOSTNAME/users/auth/openid_connect/callback
. - เพิ่มผู้ให้บริการที่คุณต้องการและเติมเต็มการตั้งค่าอื่นๆ
โดยเฉพาะอย่างยิ่ง คุณสามารถได้รับค่าสองค่าในหน้าการตั้งค่าแอปพลิเคชัน: Client ID
และ Client secret
(ดูภาพด้านบน) และเราจะใช้พวกมันในขั้นตอนถัดไป
เปิดเบราว์เซอร์ที่คุณชื่นชอบและเยี่ยมชม: http://CASDOOR_HOSTNAME
/.well-known/openid-configuration ที่นี่คุณจะเห็นการตั้งค่า OIDC ของ Casdoor
ขั้นตอนที่ 3: ตั้งค่า GitLab
คุณสามารถทำตามขั้นตอนด้านล่างเพื่อตั้งค่านี้ หรือทำการเปลี่ยนแปลงที่กำหนดเองตามเอกสารนี้ (เช่น ถ้าคุณกำลังติดตั้ง GitLab โดยใช้รหัสต้นฉบับแทนที่จะเป็น Omnibus)
บนเซิร์ฟเวอร์ GitLab ของคุณ เปิดไฟล์การตั้งค่า
sudo editor /etc/gitlab/gitlab.rb
เพิ่มการตั้งค่าของผู้ให้บริการ (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"
}
}
}
]รีบูตเซิร์ฟเวอร์ GitLab ของคุณ
ผู้ใช้ที่ลงทะเบียนทุกคนสามารถเปิด
GITLAB_HOSTNAME
/-/profile/account และเชื่อมต่อบัญชี Casdoorเสร็จสิ้น ตอนนี้คุณสามารถเข้าสู่ระบบ GitLab ของคุณเองโดยใช้ Casdoor