Keycloak
ระบบ JBoss Keycloak เป็นระบบจัดการตัวตนที่ใช้กันอย่างแพร่หลายและเป็นโอเพนซอร์สที่รองรับการรวมกับแอปพลิเคชันผ่าน SAML และ OpenID Connect มันยังสามารถทำหน้าที่เป็นตัวกลางระหว่างผู้ให้บริการอื่นๆ เช่น LDAP หรือผู้ให้บริการ SAML อื่นๆ และแอปพลิเคชันที่รองรับ SAML หรือ OpenID Connect
นี่คือตัวอย่างของวิธีการตั้งค่ารายการไคลเอนต์ใหม่ใน Keycloak และตั้งค่า Casdoor เพื่อใช้มันในการอนุญาตให้ผู้ใช้ Keycloak ที่ได้รับสิทธิ์ผ่านการตั้งค่า Keycloak เข้าสู่ระบบ UI
ตั้งค่า Keycloak
สำหรับตัวอย่างนี้ มาทำการตั้งค่าตามทางเลือกและสมมติฐานต่อไปนี้:
- สมมติว่าคุณกำลังรัน Casdoor ในโหมดพัฒนาในเครื่องของคุณเอง UI ของ Casdoor สามารถเข้าถึงได้ที่
http://localhost:7001
และเซิร์ฟเวอร์สามารถเข้าถึงได้ที่http://localhost:8000
เปลี่ยนเป็น URL ที่เหมาะสมตามที่ต้องการ - สมมติว่าคุณกำลังรัน Keycloak ในเครื่องของคุณเอง UI ของ Keycloak สามารถเข้าถึงได้ที่
http://localhost:8080/auth
- ตามนั้น, SP ACS URL สำหรับการติดตั้งนี้จะเป็น:
http://localhost:8000/api/acs
- SP Entity ID ของเราจะใช้ URL เดียวกัน:
http://localhost:8000/api/acs
คุณสามารถใช้โดเมนเริ่มต้นหรือสร้างโดเมนใหม่
เพิ่มรายการไคลเอนต์ใน Keycloak
สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับไคลเอนต์ Keycloak โปรดดูที่ เอกสาร Keycloak
คลิก Clients ในเมนูแล้วคลิก Create เพื่อไปยังหน้า Add Client กรอกข้อมูลในฟิลด์ดังต่อไปนี้:
- Client ID:
http://localhost:8000/api/acs
- นี่จะเป็น SP Entity ID ที่ใช้ในการตั้งค่า Casdoor ในภายหลัง - Client Protocol:
saml
- Client SAML Endpoint:
http://localhost:8000/api/acs
- URL นี้คือที่ที่คุณต้องการให้เซิร์ฟเวอร์ Keycloak ส่งคำขอและการตอบกลับ SAML โดยทั่วไปแอปพลิเคชันมี URL เดียวสำหรับการประมวลผลคำขอ SAML URL หลายอันสามารถตั้งค่าได้ในแท็บ Settings ของไคลเอนต์
คลิก Save การกระทำนี้จะสร้างไคลเอนต์และนำคุณไปยังแท็บ Settings
ต่อไปนี้เป็นส่วนหนึ่งของการตั้งค่า:
- Name -
Casdoor
นี่ใช้เพื่อแสดงชื่อที่เป็นมิตรต่อผู้ใช้ Keycloak ใน UI ของ Keycloak คุณสามารถใช้ชื่อใดก็ได้ที่คุณต้องการ - Enabled - เลือก
on
- Include Authn Statement - เลือก
on
- Sign Documents - เลือก
on
- Sign Assertions - เลือก
off
- Encrypt Assertions - เลือก
off
- Client Signature Required - เลือก
off
- Force Name ID Format - เลือก
on
- Name ID Format - เลือก
username
- Valid Redirect URIs - เพิ่ม
http://localhost:8000/api/acs
- Master SAML Processing URL -
http://localhost:8000/api/acs
- การตั้งค่า SAML Endpoint อย่างละเอียด
- Assertion Consumer Service POST Binding URL -
http://localhost:8000/api/acs
- Assertion Consumer Service Redirect Binding URL -
http://localhost:8000/api/acs
- Assertion Consumer Service POST Binding URL -
บันทึกการตั้งค่า
หากคุณต้องการลงนามในคำขอ authn คุณต้องเปิดใช้งานตัวเลือก Client Signature Required และอัปโหลดใบรับรองที่คุณสร้างขึ้นเอง คีย์ส่วนตัวและใบรับรองที่ใช้ใน Casdoor, token_jwt_key.key
และ token_jwt_key.pem
, ตั้งอยู่ในไดเรกทอรี object ใน Keycloak คุณต้องคลิกแท็บ Keys, คลิกปุ่ม Import, เลือก Archive Format เป็น Certificate PEM และอัปโหลดใบรับรอง
คลิกแท็บ Installation
สำหรับ Keycloak <= 5.0.0, เลือก Format Option - SAML Metadata IDPSSODescriptor และคัดลอกเมตาดาต้า
สำหรับ Keycloak 6.0.0+, เลือก Format Option - Mod Auth Mellon files และคลิก Download แตกไฟล์ .zip ที่ดาวน์โหลดมา หา idp-metadata.xml
และคัดลอกเมตาดาต้า
ตั้งค่าใน Casdoor
สร้างผู้ให้บริการใหม่ใน Casdoor
เลือกหมวดหมู่เป็น SAML, ประเภทเป็น Keycloak คัดลอกเนื้อหาของเมตาดาต้าและวางลงในฟิลด์ Metadata ค่าของ Endpoint, IdP, และ Issuer URL จะถูกสร้างขึ้นโดยอัตโนมัติหลังจากคลิกปุ่ม Parse สุดท้าย คลิกปุ่ม Save
หากคุณเปิดใช้งานตัวเลือก Client Signature Required ใน Keycloak และอัปโหลดใบรับรอง กรุณาเปิดใช้งานตัวเลือก Sign request ใน Casdoor
แก้ไขแอปพลิเคชันที่คุณต้องการตั้งค่าใน Casdoor เลือกผู้ให้บริการที่คุณเพิ่งเพิ่มและคลิกปุ่ม Save
ตรวจสอบผลลัพธ์
ไปที่แอปพลิเคชันที่คุณเพิ่งตั้งค่าและคุณจะพบไอคอน Keycloak บนหน้าล็อกอิน
คลิกไอคอนและคุณจะถูกเปลี่ยนเส้นทางไปยังหน้าล็อกอินของ Keycloak หลังจากการตรวจสอบสิทธิ์สำเร็จ คุณจะเข้าสู่ระบบ Casdoor