Jenkins OIDC
Casdoor สามารถใช้โปรโตคอล OIDC เป็น IDP เพื่อเชื่อมต่อแอปพลิเคชันต่างๆ ในตัวอย่างนี้ เราจะใช้ Jenkins เพื่อสาธิตวิธีการใช้ OIDC เพื่อเชื่อมต่อกับแอปพลิเคชันของคุณ
ต่อไปนี้คือบางชื่อที่ใช้ในการตั้งค่า:
CASDOOR_HOSTNAME
: ชื่อโดเมนหรือ IP ที่เซิร์ฟเวอร์ Casdoor ถูกติดตั้งJENKINS_HOSTNAME
: ชื่อโดเมนหรือ IP ที่ Jenkins ถูกติดตั้ง
ขั้นตอนที่ 1: ติดตั้ง Casdoor และ Jenkins
ขั้นแรก ติดตั้ง Casdoor และ Jenkins
หลังจากติดตั้งสำเร็จ ให้ตรวจสอบดังนี้:
ตั้งค่า URL ของ Jenkins (Manage Jenkins -> Configure System -> Jenkins Location) เป็น
JENKINS_HOSTNAME
ตรวจสอบให้แน่ใจว่าสามารถเข้าสู่ระบบและใช้งาน Casdoor ได้ตามปกติ
ตั้งค่า
origin
ของ Casdoor (conf/app.conf) เป็นCASDOOR_HOSTNAME
ขั้นตอนที่ 2: ตั้งค่าแอปพลิเคชัน Casdoor
สร้างแอปพลิเคชัน Casdoor ใหม่หรือใช้แอปพลิเคชันที่มีอยู่
เพิ่ม URL สำหรับการเปลี่ยนเส้นทาง:
http://JENKINS_HOSTNAME/securityRealm/finishLogin
เพิ่มผู้ให้บริการที่คุณต้องการและให้การตั้งค่าเพิ่มเติม
คุณจะได้รับค่าสองค่าจากหน้าการตั้งค่าแอปพลิเคชัน: Client ID
และ Client secret
เราจะใช้ค่าเหล่านี้ในขั้นตอนถัดไป
เปิดเบราว์เซอร์ที่คุณชื่นชอบและเยี่ยมชม: http://CASDOOR_HOSTNAME
/.well-known/openid-configuration เพื่อดูการตั้งค่า OIDC ของ Casdoor
ขั้นตอนที่ 3: ตั้งค่า Jenkins
ขั้นแรก เราต้องติดตั้ง OpenId Connect Authentication เนื่องจาก Jenkins ไม่รองรับ OIDC โดยตรง
หลังจากการติดตั้งเสร็จสิ้น ไปที่ Manage Jenkins -> Configure Global Security
ตรวจสอบให้แน่ใจว่าได้สำรองไฟล์ config.xml
ของ Jenkins เพื่อกู้คืนในกรณีที่มีข้อผิดพลาดในการตั้งค่า
ใน Access Control เลือก
Login with Openid Connect
เป็น Security Realmระบุ
Client ID
ที่ได้จดไว้ข้างต้นในช่อง Client IDระบุ
Client secret
ที่ได้จดไว้ข้างต้นในช่อง Client secretในโหมดการตั้งค่า เลือก
Automatic configuration
และใส่ http://CASDOOR_HOSTNAME
/.well-known/openid-configuration เป็นจุดสิ้นสุดการตั้งค่าที่รู้จักกันดีหาก Casdoor ของคุณถูกติดตั้งในท้องถิ่น คุณอาจต้องเลือก
Manual configuration
และให้ข้อมูลต่อไปนี้:- URL ของเซิร์ฟเวอร์โทเค็น: http://
CASDOOR_HOSTNAME
/api/login/oauth/access_token - URL ของเซิร์ฟเวอร์การอนุญาต: http://
CASDOOR_HOSTNAME
/login/oauth/authorize - URL ของเซิร์ฟเวอร์ UserInfo: http://
CASDOOR_HOSTNAME
/api/get-account - ขอบเขต:
address phone openid profile offline_access email
- URL ของเซิร์ฟเวอร์โทเค็น: http://
คลิกที่ Advanced settings และกรอกข้อมูลต่อไปนี้:
- ในช่อง User name ระบุ
name
- ในช่อง Full name ระบุ
displayName
- ในช่อง Email ระบุ
email
- ในช่อง User name ระบุ
ในส่วนของ Authorization เปิดใช้งาน “Logged-in users can do anything” และปิดใช้งาน “Allow anonymous read access” คุณสามารถตั้งค่าการอนุญาตที่ซับซ้อนยิ่งขึ้นได้ในภายหลัง แต่ตอนนี้ ตรวจสอบว่า OpenID ทำงานอย่างถูกต้องหรือไม่
ออกจากระบบ Jenkins และควรจะมีการเปลี่ยนเส้นทางคุณไปยัง Casdoor เพื่อการตรวจสอบสิทธิ์