Identity Federation & Social Login
สองวิธีในการนำ external identities เข้ามา
หัวข้อที่มีชื่อว่า “สองวิธีในการนำ external identities เข้ามา”การ deploy Keycloak ในสภาพแวดล้อมจริงมักต้องรองรับ identities ที่อยู่นอกรีล์ม บางทีผู้ใช้มีบัญชี Google อยู่แล้วและต้องการ login ด้วยบัญชีนั้น หรือบริษัทมี Active Directory ที่เต็มไปด้วยพนักงานที่ไม่ควรต้องสร้างบัญชีใหม่ใน Keycloak Keycloak แก้ปัญหาทั้งสองได้ด้วยกลไกที่ต่างกัน
Identity brokering
หัวข้อที่มีชื่อว่า “Identity brokering”Identity brokering หมายความว่า Keycloak ทำหน้าที่เป็นตัวกลางที่น่าเชื่อถือระหว่างแอปพลิเคชันกับ identity provider (IdP) อื่น เมื่อผู้ใช้เลือก “Log in with Google” (หรือ provider ที่รองรับ OIDC/SAML) Keycloak จะ redirect ผู้ใช้ไปยัง external provider นั้นก่อน จากนั้นจึงรับ token หรือ assertion กลับมา แล้วออก token ของตัวเองให้แอปพลิเคชัน ด้วยวิธีนี้ แอปพลิเคชันไม่ต้องติดต่อกับ external provider โดยตรงเลย
ใช้ identity brokering เมื่อ:
- ต้องการเพิ่ม social login (Google, GitHub, Facebook, Apple ฯลฯ)
- ต้องการ federate กับระบบ SSO ขององค์กรอื่น (Keycloak อีกตัว, Azure AD, Okta ฯลฯ)
- ระบบภายนอกรองรับ OIDC หรือ SAML
User federation
หัวข้อที่มีชื่อว่า “User federation”User federation หมายความว่า Keycloak เชื่อมต่อกับ external user store (โดยทั่วไปคือ LDAP หรือ Active Directory) และอ่านข้อมูลผู้ใช้จากที่นั่น Keycloak ไม่จำเป็นต้องคัดลอกผู้ใช้เข้า database ของตัวเองโดยค่าเริ่มต้น — แต่จะค้นหาจาก external store เมื่อต้องการ ผู้ใช้สามารถ login ด้วย credentials ที่มีอยู่เดิม (รหัสผ่าน LDAP)
ใช้ user federation เมื่อ:
- องค์กรมีผู้ใช้หลายพันคนใน Active Directory หรือ OpenLDAP อยู่แล้ว
- ต้องการ single source of truth สำหรับบัญชีผู้ใช้
- ต้องการให้ Keycloak ดูเหมือนเป็นแค่แอปอีกตัวใน directory ที่มีอยู่
ความแตกต่างหลัก
หัวข้อที่มีชื่อว่า “ความแตกต่างหลัก”| Identity brokering | User federation | |
|---|---|---|
| Login flow | Redirect ไปยัง external IdP | Keycloak authenticate (ใช้ LDAP bind สำหรับรหัสผ่าน) |
| แหล่งผู้ใช้ | Database ผู้ใช้ของ external IdP | LDAP / Active Directory |
| Protocol | OIDC หรือ SAML | LDAP protocol |
| Use case หลัก | Social login, org-to-org SSO | Corporate directory integration |
บทเรียนในโมดูลนี้
หัวข้อที่มีชื่อว่า “บทเรียนในโมดูลนี้”| บทเรียน | สิ่งที่จะได้เรียนรู้ |
|---|---|
| Social Login | เพิ่ม Google หรือ GitHub เป็น social login provider |
| Identity Brokering | Broker กับ OIDC/SAML IdP และจัดการ first-login flow |
| LDAP Federation | เชื่อมต่อ Keycloak กับ LDAP หรือ Active Directory |
| IdP Mappers | Map external claims และ attributes ลงบนผู้ใช้ Keycloak |