• jwt
  • auth
  • user data

ศูนย์กลางที่ปลอดภัยสำหรับข้อมูลผู้ใช้บนการเคลื่อนย้าย

เปรียบเทียบ auth & ข้อมูลผู้ใช้ รายละเอียดการจัดเก็บและการเคลื่อนย้ายที่ปลอดภัยของ Logto สรุปแนวทางปฏิบัติที่ดีที่สุดสำหรับการไหลของข้อมูล (การจับคู่ Attributes, การซิงค์ข้อมูล, JWTs ที่กำหนดเอง)

Ran
Ran
Product & Design

ข้อมูลเมตาของผู้ใช้เป็นสิ่งสำคัญของบริการการจัดการตัวตนและการเข้าถึง (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 โดดเด่นในการอำนวยความสะดวกในการไหลของข้อมูลผู้ใช้ เราทำให้ง่ายต่อการรับข้อมูลผู้ใช้จากผู้ให้บริการต่างๆ และส่งมอบให้กับฝ่ายที่ได้รับอนุญาตอย่างปลอดภัย

ประเด็นสำคัญ

ตอนนี้ที่คุณเข้าใจการเดินทางของข้อมูลผู้ใช้แล้ว, มาสำรวจข้อพิจารณาการออกแบบที่สำคัญกัน:

  1. การจับคู่ Attributes จริงให้แน่ใจว่าการจับคู่คุณสมบัติของผู้ใช้จากแหล่งต่างๆ ถูกต้องเพื่อหลีกเลี่ยงไซโลข้อมูล สำหรับการเชื่อมต่อ SAML, ต้องทำการจับคู่อย่างแม่นยำ เมื่อใช้ OIDC, ใช้ประโยชน์จากข้อเรียกร้องที่ได้มาตรฐานหรือสร้าง namespaces ที่ไม่ซ้ำกันเพื่อป้องกันการขัดแย้ง.
  2. การซิงค์ข้อมูล IdP และ RP การซิงโครไนซ์ข้อมูลระหว่าง IdPs (ผู้ให้บริการตัวตน) และ RPs (ฝ่ายที่เชื่อถือได้) มักจะเกี่ยวข้องกับการอนุญาตและคำขอขอบเขตเฉพาะในทั้งสองฝ่าย ระวังสถานะการตรวจสอบ ความซิงโครไนซ์ "Email verified=false" จาก IdP เช่น GitHub หรือ Azure AD อาจไม่ใช่อีเมลที่ได้รับการตรวจสอบในระบบของคุณ จัดการตามนั้น.
  3. การแยกและการเขียนทับข้อมูลในโครงสร้างหลายองค์กร ในสภาพแวดล้อมที่ซับซ้อนด้วยองค์กร, แอปพลิเคชัน, และผู้ให้บริการหลายราย, การแยกข้อมูลและพฤติกรรมการเขียนทับจะมีความสำคัญมากขึ้น
    • หลายองค์กร: ผู้ใช้อาจอยู่ในหลายองค์กร แยกความแตกต่างของข้อมูลผู้ใช้ที่จัดเก็บอยู่ภายใต้บัญชีผู้ใช้จากข้อมูลที่เฉพาะเจาะจงขององค์กร การเปลี่ยนแปลงภายในองค์กรหนึ่งไม่ควรกระทบอีกองค์กร.
    • หลายแอป: สำหรับแอปพลิเคชันที่แชร์ฐานข้อมูลผู้ใช้ผ่าน Logto, ใช้โมดูลการตั้งค่าบัญชีส่วนกลางหรือการตั้งค่าโปรไฟล์ในบริการของคุณ.
    • หลายผู้ให้บริการ: แอปพลิเคชันที่มีวิธีการลงชื่อเข้าใช้หลายแบบจะได้รับข้อมูลผู้ใช้ที่แตกต่างกันจากแต่ละผู้ให้บริการ ใน Logto, เลือกที่จะซิงค์ข้อมูลในระหว่างการลงทะเบียนเข้าสู่ระบบสังคมหรือทุกครั้งที่เข้าสู่ระบบสำหรับ SSO ขององค์กร การลงชื่อเข้าสังคมเหมาะสำหรับการซิงค์ข้อมูลล่วงหน้า, ในขณะที่ SSO ขององค์กรสามารถซิงค์ข้อมูลสมาชิกในการเข้าสู่ระบบแต่ละครั้ง เพื่อการจัดการที่ง่ายขึ้นภายใน IdP ขององค์กร
  4. JWT ที่กำหนดเองสำหรับการเข้าถึงข้อมูลที่ขยายออกไป พลังของ JWT ที่กำหนดเองอยู่ที่ความสามารถในการเรียกคืนข้อมูลภายนอกแบบไดนามิกในระหว่างการออกโทเค็นผ่านการเรียก API สิ่งนี้ช่วยให้คุณเข้าถึงจุดข้อมูลที่อาจไม่จำเป็นสำหรับฟังก์ชันหลัก แต่สามารถเพิ่มประสบการณ์ของผู้ใช้ได้ จำไว้ว่า, ความยืดหยุ่นอย่างมากมาพร้อมกับความรับผิดชอบมากมาย เนื่องจาก JWTs สามารถแยกข้อมูลได้ง่ายโดยทุกคนที่ได้รับพวกมัน, อย่ารวมข้อมูลที่ละเอียดอ่อน.
  5. การลงทะเบียนแบบก้าวหน้าเพื่อการไหลลื่นในขั้นตอนการเข้าร่วม อย่าทำให้ผู้ใช้รู้สึกเหนื่อยหน่ายด้วยแบบฟอร์มการลงทะเบียนที่ยาว ทำให้การลงทะเบียนแบบก้าวหน้า, เทคนิคที่ขอเฉพาะข้อมูลที่จำเป็นมากที่สุดของผู้ใช้ในเบื้องต้น วิธีนี้จะช่วยให้การสมัครทำได้ราบรื่นและให้ผู้ใช้มีส่วนร่วม เมื่อผู้ใช้ปฏิสัมพันธ์กับแอปพลิเคชันของคุณ, คุณสามารถเก็บรวบรวมจุดข้อมูลเพิ่มเติมเพื่อสร้างโปรไฟล์ผู้ใช้ที่สมบูรณ์ยิ่งขึ้น

โดยการปฏิบัติตามแนวทางปฏิบัติที่ดีที่สุดเหล่านี้, คุณสามารถรับรองการไหลลื่นและปลอดภัยของข้อมูลผู้ใช้ตลอดการเดินทางของการตรวจสอบสิทธิ์

Logto: ศูนย์กลางที่ปลอดภัยสำหรับข้อมูลผู้ใช้บนการเคลื่อนย้าย

การจัดการข้อมูลเมตาของผู้ใช้อย่างมีประสิทธิภาพช่วยให้คุณสามารถปรับประสบการณ์ของผู้ใช้, เพิ่มความปลอดภัย, และได้รับข้อคิดเห็นที่มีคุณค่าเกี่ยวกับพฤติกรรมของผู้ใช้ โดยใช้ประโยชน์จากแพลตฟอร์มที่ปลอดภัยและยืดหยุ่นของ Logto, คุณสามารถปลดล็อกศักยภาพเต็มที่ของข้อมูลผู้ใช้และเพิ่มศักยภาพในการแข่งขันในโลกข้อมูลที่ขับเคลื่อนด้วยข้อมูลในปัจจุบัน