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

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

ข้อมูล

สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับไคลเอนต์ 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 ของไคลเอนต์

เพิ่มไคลเอนต์ Keycloak

คลิก Save การกระทำนี้จะสร้างไคลเอนต์และนำคุณไปยังแท็บ Settings

ต่อไปนี้เป็นส่วนหนึ่งของการตั้งค่า:

  1. Name - Casdoor นี่ใช้เพื่อแสดงชื่อที่เป็นมิตรต่อผู้ใช้ Keycloak ใน UI ของ Keycloak คุณสามารถใช้ชื่อใดก็ได้ที่คุณต้องการ
  2. Enabled - เลือก on
  3. Include Authn Statement - เลือก on
  4. Sign Documents - เลือก on
  5. Sign Assertions - เลือก off
  6. Encrypt Assertions - เลือก off
  7. Client Signature Required - เลือก off
  8. Force Name ID Format - เลือก on
  9. Name ID Format - เลือก username
  10. Valid Redirect URIs - เพิ่ม http://localhost:8000/api/acs
  11. Master SAML Processing URL - http://localhost:8000/api/acs
  12. การตั้งค่า SAML Endpoint อย่างละเอียด
    1. Assertion Consumer Service POST Binding URL - http://localhost:8000/api/acs
    2. Assertion Consumer Service Redirect Binding URL - http://localhost:8000/api/acs

บันทึกการตั้งค่า

ตั้งค่าไคลเอนต์ Keycloak

เคล็ดลับ

หากคุณต้องการลงนามในคำขอ 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

แก้ไขแอปพลิเคชันที่คุณต้องการตั้งค่าใน Casdoor เลือกผู้ให้บริการที่คุณเพิ่งเพิ่มและคลิกปุ่ม Save

เพิ่มผู้ให้บริการสำหรับแอป

ตรวจสอบผลลัพธ์

ไปที่แอปพลิเคชันที่คุณเพิ่งตั้งค่าและคุณจะพบไอคอน Keycloak บนหน้าล็อกอิน

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

ล็อกอิน Casdoor