ข้อมูลเมตาของผู้ใช้เป็นสิ่งสำคัญของบริการการจัดการตัวตนและการเข้าถึง (IAM) มันส่งเสริมคุณสมบัติผลิตภัณฑ์เช่นการวิเคราะห์ข้อมูล, ประสบการณ์ที่ปรับแต่ง, การตรวจสอบความปลอดภัย, และการควบคุมการเข้าถึง แต่เมื่อแอปพลิเคชันเริ่มเชื่อมโยงกันมากขึ้นระหว่างแพลตฟอร์ม, องค์กร, และแอปพลิเคชัน, การจัดการข้อมูลเมตาของผู้ใช้อาจซับซ้อนมากขึ้น อย่ากลัว! โดยการเข้าใจการไหลของข้อมูลผู้ใช้, คุณสามารถสร้างประสบการณ์การตรวจสอบสิทธิ์ที่ราบรื่นและปลอดภัยได้
ข้อมูล Auth vs. ข้อมูลผู้ใช้#
ไม่ใช่ข้อมูลผู้ใช้ทุกชิ้นที่สร้างขึ้นมาเท่ากัน ข้อมูล Auth เป็นชุดย่อยเฉพาะที่แลกเปลี่ยนในระหว่างการออกโทเค็น ลองนึกถึง JWT (JSON Web Token) ที่เดินทางอยู่ในคำขอ HTTP ของคุณ JWT ขนาดใหญ่อาจทำให้การทำงานช้าลง เพื่อให้การทำงานรวดเร็วและปลอดภัย, เราใส่แต่ข้อมูลสำคัญของผู้ใช้เช่น ตัวตน, สถานะบัญชี, รายละเอียดการยืนยันตัวตน, การอนุญาต, และข้อมูลโปรไฟล์พื้นฐาน
ที่ Logto เรามุ่งเน้นที่การจัดเก็บข้อมูล Auth ดังต่อไปนี้:
- สถานะบัญชี: ติดตามเวลาในการสร้าง, การอัปเดต, สถานะการระงับ, และประวัติการเข้าสู่ระบบ รวมไปถึง
create_at, updated_at, account_suspended, last_ip.
- ข้อมูลการยืนยันตัวตน: คำระบุผู้ใช้, ปัจจัยการยืนยันตัวตน, และข้อมูลที่เกี่ยวข้องกับการตรวจสอบ รวมไปถึง
user_id, password_digest, password_algorithm, username, email, email_verified, phone, phone_verified, social_identities, sso_identities, mfa_config, mfa_verification_factors.
- ข้อมูลการอนุญาต: จัดการบทบาท, การอนุญาต, การเป็นสมาชิกองค์กร, และแอปพลิเคชันและอุปกรณ์ที่ได้รับอนุญาตเพื่อการควบคุมการเข้าถึงโดยละเอียด รวมไปถึง
role, permission, organization_id, organization_role, organization_permission, grant_application, grant_device.
- โปรไฟล์ผู้ใช้มาตรฐาน: นี่คือโปรไฟล์ผู้ใช้ที่ลงทะเบียนโดย OIDC ที่ Logto เราตั้งค่าเป็นค่ามาตรฐานของข้อมูลเมตาผู้ใช้, จัดเก็บภายใต้ namespace 'profile.'. รวมไปถึง
first_name, last_name, middle_name, name, nickname, profile, website, avatar, gender, birthdate, zoneinfo, locale, address.
เหนือพื้นฐาน: การปรับแต่งข้อมูลผู้ใช้ด้วย Logto
- Logto ก้าวข้ามโปรไฟล์มาตรฐาน API การจัดการของเราช่วยให้คุณกำหนดข้อมูลที่กำหนดเองตามความต้องการทางธุรกิจของคุณ ข้อมูลนี้ถูกจัดเก็บอย่างปลอดภัยภายใต้ namespace เฉพาะ 'custom.data'. นี่คือตัวอย่าง:
occupation, company_name, company_size.
คิดนอกห้องเก็บของ: ข้อมูล API ภายนอกด้วย JWT ที่กำหนดเอง
- ข้อมูลธุรกิจบางอย่างอาจไม่จำเป็นต้องจัดเก็บถาวรใน Logto ความงามของ JWT ที่กำหนดเองคือคุณสามารถดึงข้อมูลนี้แบบไดนามิกผ่านการเรียก API ในระหว่างการออกโทเค็น, ขยายการเข้าถึงข้อมูลผู้ใช้ของคุณ จำไว้ว่า, ความปลอดภัยคือสิ่งสำคัญที่สุด, ดังนั้นอย่ารวมข้อมูลที่ละเอียดอ่อนใน JWT เนื่องจากสามารถแยกข้อมูลได้ง่าย นี่คือตัวอย่าง:
subscribed_status, last_path_visited, app_theme.
การเดินทางของข้อมูลผู้ใช้: การได้มา & การแจกจ่าย#
ข้อมูลผู้ใช้มาจากแหล่งต่างๆ:
- การป้อนข้อมูลผู้ใช้: ในระหว่างการสมัคร, การเข้าร่วม, หรือการอัปเดตโปรไฟล์ภายในแอปพลิเคชันของคุณ.
- ผู้ให้บริการตัวตน (IdPs): ซิงค์ได้อย่างราบรื่นในระหว่างเข้าสู่ระบบทางสังคมหรือ SSO ขององค์กร.
- การย้ายข้อมูล: การย้ายข้อมูลจากฐานข้อมูลที่มีอยู่แล้ว.
- การแทรกแซงของผู้ดูแลระบบ: แก้ไขโดยผู้ดูแลระบบด้วยตนเองผ่านทางคอนโซลหรือฐานข้อมูล.
เมื่อคุณมีข้อมูลที่มีค่านี้, คุณก็สามารถแบ่งปันได้อย่างปลอดภัย:
- การให้สิทธิ์แก่แอปพลิเคชันของบุคคลที่สาม: ให้การเข้าถึงข้อมูลผู้ใช้ที่ควบคุมได้สำหรับแอปพลิเคชันที่ได้รับอนุญาต.
- การส่งออกข้อมูล: ส่งออกข้อมูลผู้ใช้จาก Logto เพื่อการวิเคราะห์เพิ่มเติม.
- การจัดส่งผ่าน JWTs, Webhooks, หรือ APIs: แบ่งปันข้อมูลผู้ใช้กับบริการภายในของคุณเพื่อประสบการณ์ผู้ใช้ที่เป็นเอกภาพ.
ในฐานะศูนย์กลางตัวตน, Logto โดดเด่นในการอำนวยความสะดวกในการไหลของข้อมูลผู้ใช้ เราทำให้ง่ายต่อการรับข้อมูลผู้ใช้จากผู้ให้บริการต่างๆ และส่งมอบให้กับฝ่ายที่ได้รับอนุญาตอย่างปลอดภัย
ประเด็นสำคัญ#
ตอนนี้ที่คุณเข้าใจการเดินทางของข้อมูลผู้ใช้แล้ว, มาสำรวจข้อพิจารณาการออกแบบที่สำคัญกัน:
- การจับคู่ Attributes
จริงให้แน่ใจว่าการจับคู่คุณสมบัติของผู้ใช้จากแหล่งต่างๆ ถูกต้องเพื่อหลีกเลี่ยงไซโลข้อมูล สำหรับการเชื่อมต่อ SAML, ต้องทำการจับคู่อย่างแม่นยำ เมื่อใช้ OIDC, ใช้ประโยชน์จากข้อเรียกร้องที่ได้มาตรฐานหรือสร้าง namespaces ที่ไม่ซ้ำกันเพื่อป้องกันการขัดแย้ง.
- การซิงค์ข้อมูล IdP และ RP
การซิงโครไนซ์ข้อมูลระหว่าง IdPs (ผู้ให้บริการตัวตน) และ RPs (ฝ่ายที่เชื่อถือได้) มักจะเกี่ยวข้องกับการอนุญาตและคำขอขอบเขตเฉพาะในทั้งสองฝ่าย ระวังสถานะการตรวจสอบ ความซิงโครไนซ์ "Email verified=false" จาก IdP เช่น GitHub หรือ Azure AD อาจไม่ใช่อีเมลที่ได้รับการตรวจสอบในระบบของคุณ จัดการตามนั้น.
- การแยกและการเขียนทับข้อมูลในโครงสร้างหลายองค์กร
ในสภาพแวดล้อมที่ซับซ้อนด้วยองค์กร, แอปพลิเคชัน, และผู้ให้บริการหลายราย, การแยกข้อมูลและพฤติกรรมการเขียนทับจะมีความสำคัญมากขึ้น
- หลายองค์กร: ผู้ใช้อาจอยู่ในหลายองค์กร แยกความแตกต่างของข้อมูลผู้ใช้ที่จัดเก็บอยู่ภายใต้บัญชีผู้ใช้จากข้อมูลที่เฉพาะเจาะจงขององค์กร การเปลี่ยนแปลงภายในองค์กรหนึ่งไม่ควรกระทบอีกองค์กร.
- หลายแอป: สำหรับแอปพลิเคชันที่แชร์ฐานข้อมูลผู้ใช้ผ่าน Logto, ใช้โมดูลการตั้งค่าบัญชีส่วนกลางหรือการตั้งค่าโปรไฟล์ในบริการของคุณ.
- หลายผู้ให้บริการ: แอปพลิเคชันที่มีวิธีการลงชื่อเข้าใช้หลายแบบจะได้รับข้อมูลผู้ใช้ที่แตกต่างกันจากแต่ละผู้ให้บริการ ใน Logto, เลือกที่จะซิงค์ข้อมูลในระหว่างการลงทะเบียนเข้าสู่ระบบสังคมหรือทุกครั้งที่เข้าสู่ระบบสำหรับ SSO ขององค์กร การลงชื่อเข้าสังคมเหมาะสำหรับการซิงค์ข้อมูลล่วงหน้า, ในขณะที่ SSO ขององค์กรสามารถซิงค์ข้อมูลสมาชิกในการเข้าสู่ระบบแต่ละครั้ง เพื่อการจัดการที่ง่ายขึ้นภายใน IdP ขององค์กร
- JWT ที่กำหนดเองสำหรับการเข้าถึงข้อมูลที่ขยายออกไป
พลังของ JWT ที่กำหนดเองอยู่ที่ความสามารถในการเรียกคืนข้อมูลภายนอกแบบไดนามิกในระหว่างการออกโทเค็นผ่านการเรียก API สิ่งนี้ช่วยให้คุณเข้าถึงจุดข้อมูลที่อาจไม่จำเป็นสำหรับฟังก์ชันหลัก แต่สามารถเพิ่มประสบการณ์ของผู้ใช้ได้ จำไว้ว่า, ความยืดหยุ่นอย่างมากมาพร้อมกับความรับผิดชอบมากมาย เนื่องจาก JWTs สามารถแยกข้อมูลได้ง่ายโดยทุกคนที่ได้รับพวกมัน, อย่ารวมข้อมูลที่ละเอียดอ่อน.
- การลงทะเบียนแบบก้าวหน้าเพื่อการไหลลื่นในขั้นตอนการเข้าร่วม
อย่าทำให้ผู้ใช้รู้สึกเหนื่อยหน่ายด้วยแบบฟอร์มการลงทะเบียนที่ยาว ทำให้การลงทะเบียนแบบก้าวหน้า, เทคนิคที่ขอเฉพาะข้อมูลที่จำเป็นมากที่สุดของผู้ใช้ในเบื้องต้น วิธีนี้จะช่วยให้การสมัครทำได้ราบรื่นและให้ผู้ใช้มีส่วนร่วม เมื่อผู้ใช้ปฏิสัมพันธ์กับแอปพลิเคชันของคุณ, คุณสามารถเก็บรวบรวมจุดข้อมูลเพิ่มเติมเพื่อสร้างโปรไฟล์ผู้ใช้ที่สมบูรณ์ยิ่งขึ้น
โดยการปฏิบัติตามแนวทางปฏิบัติที่ดีที่สุดเหล่านี้, คุณสามารถรับรองการไหลลื่นและปลอดภัยของข้อมูลผู้ใช้ตลอดการเดินทางของการตรวจสอบสิทธิ์
Logto: ศูนย์กลางที่ปลอดภัยสำหรับข้อมูลผู้ใช้บนการเคลื่อนย้าย#
การจัดการข้อมูลเมตาของผู้ใช้อย่างมีประสิทธิภาพช่วยให้คุณสามารถปรับประสบการณ์ของผู้ใช้, เพิ่มความปลอดภัย, และได้รับข้อคิดเห็นที่มีคุณค่าเกี่ยวกับพฤติกรรมของผู้ใช้ โดยใช้ประโยชน์จากแพลตฟอร์มที่ปลอดภัยและยืดหยุ่นของ Logto, คุณสามารถปลดล็อกศักยภาพเต็มที่ของข้อมูลผู้ใช้และเพิ่มศักยภาพในการแข่งขันในโลกข้อมูลที่ขับเคลื่อนด้วยข้อมูลในปัจจุบัน