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

Identity Federation & Social Login

การ deploy Keycloak ในสภาพแวดล้อมจริงมักต้องรองรับ identities ที่อยู่นอกรีล์ม บางทีผู้ใช้มีบัญชี Google อยู่แล้วและต้องการ login ด้วยบัญชีนั้น หรือบริษัทมี Active Directory ที่เต็มไปด้วยพนักงานที่ไม่ควรต้องสร้างบัญชีใหม่ใน Keycloak Keycloak แก้ปัญหาทั้งสองได้ด้วยกลไกที่ต่างกัน

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 หมายความว่า 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 brokeringUser federation
Login flowRedirect ไปยัง external IdPKeycloak authenticate (ใช้ LDAP bind สำหรับรหัสผ่าน)
แหล่งผู้ใช้Database ผู้ใช้ของ external IdPLDAP / Active Directory
ProtocolOIDC หรือ SAMLLDAP protocol
Use case หลักSocial login, org-to-org SSOCorporate directory integration
บทเรียนสิ่งที่จะได้เรียนรู้
Social Loginเพิ่ม Google หรือ GitHub เป็น social login provider
Identity BrokeringBroker กับ OIDC/SAML IdP และจัดการ first-login flow
LDAP Federationเชื่อมต่อ Keycloak กับ LDAP หรือ Active Directory
IdP MappersMap external claims และ attributes ลงบนผู้ใช้ Keycloak
Identity brokering ทำอะไร?
เมื่อไหร่ที่ user federation เป็นตัวเลือกที่ถูกต้อง?
User federation กับ Active Directory ใช้ protocol อะไร?