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

Jenkins OIDC

Casdoor สามารถใช้โปรโตคอล OIDC เป็น IDP เพื่อเชื่อมต่อแอปพลิเคชันต่างๆ ในตัวอย่างนี้ เราจะใช้ Jenkins เพื่อสาธิตวิธีการใช้ OIDC เพื่อเชื่อมต่อกับแอปพลิเคชันของคุณ

ต่อไปนี้คือบางชื่อที่ใช้ในการตั้งค่า:

  • CASDOOR_HOSTNAME: ชื่อโดเมนหรือ IP ที่เซิร์ฟเวอร์ Casdoor ถูกติดตั้ง

  • JENKINS_HOSTNAME: ชื่อโดเมนหรือ IP ที่ Jenkins ถูกติดตั้ง

ขั้นตอนที่ 1: ติดตั้ง Casdoor และ Jenkins

ขั้นแรก ติดตั้ง Casdoor และ Jenkins

หลังจากติดตั้งสำเร็จ ให้ตรวจสอบดังนี้:

  1. ตั้งค่า URL ของ Jenkins (Manage Jenkins -> Configure System -> Jenkins Location) เป็น JENKINS_HOSTNAME URL ของ Jenkins

  2. ตรวจสอบให้แน่ใจว่าสามารถเข้าสู่ระบบและใช้งาน Casdoor ได้ตามปกติ

  3. ตั้งค่า origin ของ Casdoor (conf/app.conf) เป็น CASDOOR_HOSTNAME การตั้งค่า Casdoor

ขั้นตอนที่ 2: ตั้งค่าแอปพลิเคชัน Casdoor

  1. สร้างแอปพลิเคชัน Casdoor ใหม่หรือใช้แอปพลิเคชันที่มีอยู่

  2. เพิ่ม URL สำหรับการเปลี่ยนเส้นทาง: http://JENKINS_HOSTNAME/securityRealm/finishLogin การตั้งค่าแอปพลิเคชัน Casdoor

  3. เพิ่มผู้ให้บริการที่คุณต้องการและให้การตั้งค่าเพิ่มเติม

คุณจะได้รับค่าสองค่าจากหน้าการตั้งค่าแอปพลิเคชัน: 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 ความปลอดภัยระดับโกลบอลของ jenkins

เคล็ดลับ

ตรวจสอบให้แน่ใจว่าได้สำรองไฟล์ config.xml ของ Jenkins เพื่อกู้คืนในกรณีที่มีข้อผิดพลาดในการตั้งค่า

  1. ใน Access Control เลือก Login with Openid Connect เป็น Security Realm

  2. ระบุ Client ID ที่ได้จดไว้ข้างต้นในช่อง Client ID

  3. ระบุ Client secret ที่ได้จดไว้ข้างต้นในช่อง Client secret

  4. ในโหมดการตั้งค่า เลือก Automatic configuration และใส่ http://CASDOOR_HOSTNAME/.well-known/openid-configuration เป็นจุดสิ้นสุดการตั้งค่าที่รู้จักกันดี การตั้งค่าของ Jenkins

    หาก 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 การตั้งค่าด้วยตนเอง
  5. คลิกที่ Advanced settings และกรอกข้อมูลต่อไปนี้:

    • ในช่อง User name ระบุ name
    • ในช่อง Full name ระบุ displayName
    • ในช่อง Email ระบุ email

    การตั้งค่าฟิลด์ข้อมูลผู้ใช้

  6. ในส่วนของ Authorization เปิดใช้งาน “Logged-in users can do anything” และปิดใช้งาน “Allow anonymous read access” คุณสามารถตั้งค่าการอนุญาตที่ซับซ้อนยิ่งขึ้นได้ในภายหลัง แต่ตอนนี้ ตรวจสอบว่า OpenID ทำงานอย่างถูกต้องหรือไม่

    ออกจากระบบ Jenkins และควรจะมีการเปลี่ยนเส้นทางคุณไปยัง Casdoor เพื่อการตรวจสอบสิทธิ์หน้าล็อกอินของ Jenkins