0Pricing
AI SaaS Builder · บทเรียน

การยืนยันตัวตนและการกำหนดสิทธิ์ผู้ใช้

นำระบบเข้าสู่ระบบที่ปลอดภัยมาใช้ และควบคุมการเข้าถึงฟีเจอร์และข้อมูลต่าง ๆ ของผู้ใช้

การยืนยันตัวตนและการกำหนดสิทธิ์ผู้ใช้ เป็นบทเรียน AI SaaS Builder ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน AI SaaS Builder และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส AI SaaS Builder มีบทเรียนทั้งหมด 4 บทเรียน

ยินดีต้อนรับสู่การควบคุมการเข้าถึงอย่างปลอดภัย

ในบทเรียนนี้ เราจะเจาะลึกเรื่อง การยืนยันตัวตนผู้ใช้ และ การให้สิทธิ์ แนวคิดเหล่านี้มีความสำคัญอย่างยิ่งต่อแอปพลิเคชันที่ปลอดภัยทุกประเภท โดยเฉพาะ SaaS ด้าน AI เพื่อให้มั่นใจว่าเฉพาะผู้ใช้ที่ถูกต้องเท่านั้นจะเข้าถึงฟีเจอร์ที่เหมาะสมได้

ลองนึกภาพว่านี่คือพนักงานรักษาความปลอดภัยและรายชื่อแขกสำหรับคลับ AI สุดพิเศษของคุณ

การพิสูจน์ตัวตนของคุณ

การยืนยันตัวตน (AuthN) คือกระบวนการตรวจสอบอัตลักษณ์ของผู้ใช้ โดยตอบคำถามว่า: "คุณคือคนเดียวกับที่กล่าวอ้างหรือไม่"

  • ชื่อผู้ใช้/รหัสผ่าน: วิธีที่ใช้กันทั่วไปมากที่สุด
  • OAuth: เข้าสู่ระบบด้วย Google, Facebook และอื่น ๆ
  • ข้อมูลชีวมิติ: ลายนิ้วมือ ใบหน้า และ ID

เมื่อยืนยันตัวตนแล้ว ระบบจะทราบว่าคุณคือใคร

คุณได้รับอนุญาตให้ทำอะไรได้บ้าง

การให้สิทธิ์ (AuthZ) จะกำหนดว่าผู้ใช้ที่ผ่านการยืนยันตัวตนแล้วได้รับอนุญาตให้ทำหรือเข้าถึงสิ่งใด โดยตอบคำถามว่า: "ตอนนี้เราทราบแล้วว่าคุณคือใคร แล้วคุณมีสิทธิ์อะไรบ้าง"

ตัวอย่างเช่น ผู้ใช้ที่เป็นผู้ดูแลระบบอาจเข้าถึงการตั้งค่าทั้งหมดได้ ขณะที่ผู้ใช้ทั่วไปดูได้เฉพาะข้อมูลของตนเอง

การรักษารหัสผ่านให้ปลอดภัย

ห้ามจัดเก็บรหัสผ่านของผู้ใช้เป็นข้อความธรรมดาโดยเด็ดขาด แต่ให้ใช้ฟังก์ชันเข้ารหัสทางการเข้ารหัสลับแบบทางเดียวที่เรียกว่า การแฮช การแฮชจะแปลงรหัสผ่านให้เป็นสายอักขระที่มีขนาดคงที่

แม้ว่าฐานข้อมูลของคุณจะถูกเจาะ ผู้โจมตีก็จะไม่ได้รหัสผ่านจริง แต่จะได้เพียงค่าแฮชเท่านั้น และคุณไม่สามารถย้อนกลับค่าแฮชเพื่อหารหัสผ่านดั้งเดิมได้

การแฮชในการใช้งานจริง

ต่อไปนี้คือตัวอย่าง Java แบบย่อที่สาธิตวิธีแฮชรหัสผ่าน ในแอปพลิเคชันจริงมักใช้อัลกอริทึมที่รัดกุมกว่า เช่น bcrypt หรือ Argon2 และมักใส่ค่า 'เกลือ' เพื่อเพิ่มความปลอดภัยให้มากยิ่งขึ้น

ลองเรียกใช้ตัวอย่างนี้:

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.nio.charset.StandardCharsets;

public class Main {
  public static void main(String[] args) {
    String password = "mySecretPassword123";
    try {
      MessageDigest digest = MessageDigest.getInstance("SHA-256");
      byte[] encodedhash = digest.digest(
        password.getBytes(StandardCharsets.UTF_8));

      StringBuilder hexString = new StringBuilder(2 * encodedhash.length);
      for (int i = 0; i < encodedhash.length; i++) {
        String hex = Integer.toHexString(0xff & encodedhash[i]);
        if(hex.length() == 1) {
          hexString.append('0');
        }
        hexString.append(hex);
      }
      System.out.println("Original: " + password);
      System.out.println("Hashed:   " + hexString.toString());
    } catch (NoSuchAlgorithmException e) {
      e.printStackTrace();
    }
  }
}

เซสชันแบบดั้งเดิม

แอปพลิเคชันเว็บจำนวนมากใช้ การยืนยันตัวตนแบบอิงเซสชัน หลังจากผู้ใช้เข้าสู่ระบบ เซิร์ฟเวอร์จะสร้าง ID เซสชันที่ไม่ซ้ำกัน จัดเก็บ ID นั้น (มักจัดเก็บในฐานข้อมูล) และส่งให้ไคลเอ็นต์ในรูปคุกกี้

สำหรับคำขอถัดไป ไคลเอ็นต์จะส่ง ID เซสชัน และเซิร์ฟเวอร์จะตรวจสอบความถูกต้อง วิธีนี้จะเก็บสถานะไว้บนเซิร์ฟเวอร์

ทำความรู้จัก JWT

สำหรับ API ที่ต้องขยายระบบ โดยเฉพาะสถาปัตยกรรมไมโครเซอร์วิส โทเค็นเว็บ JSON (JWT) เป็นตัวเลือกยอดนิยม โทเค็นเหล่านี้ไม่มีสถานะ หมายความว่าเซิร์ฟเวอร์ไม่จำเป็นต้องจัดเก็บข้อมูลเซสชัน

JWT จะมีข้อมูลเกี่ยวกับผู้ใช้ (ข้อมูลการอ้างสิทธิ์) ลงลายเซ็นโดยเซิร์ฟเวอร์ และส่งไปยังไคลเอ็นต์ ไคลเอ็นต์จะส่งโทเค็นนี้ไปพร้อมกับทุกคำขอ

โครงสร้างของ JWT

JWT ประกอบด้วยสามส่วน คั่นด้วยจุด:

  • ส่วนหัว: ประเภทของโทเค็น (JWT) และอัลกอริทึมการลงลายเซ็น (เช่น HS256)
  • ส่วนข้อมูล: มี "ข้อมูลการอ้างสิทธิ์" เช่น ID ผู้ใช้ บทบาท และเวลาหมดอายุ
  • ลายเซ็น: ใช้ตรวจสอบว่าโทเค็นไม่ได้ถูกดัดแปลง โดยสร้างขึ้นจากส่วนหัว ส่วนข้อมูล และคีย์ลับ

ลายเซ็นมีบทบาทสำคัญต่อความปลอดภัย

จัดการการเข้าถึงด้วย RBAC

การควบคุมการเข้าถึงตามบทบาท (RBAC) เป็นรูปแบบการให้สิทธิ์ที่ใช้กันทั่วไป ผู้ใช้จะได้รับมอบหมายบทบาท (เช่น "ผู้ดูแลระบบ", "ผู้แก้ไข", "ผู้ชม") และบทบาทเหล่านั้นจะได้รับสิทธิ์ให้ดำเนินการบางอย่างได้

  • ผู้ดูแลระบบ: สร้าง อ่าน ปรับปรุง และลบข้อมูลใด ๆ ได้
  • ผู้แก้ไข: สร้างและปรับปรุงข้อมูลของตนเองได้
  • ผู้ชม: อ่านข้อมูลได้เท่านั้น

วิธีนี้ช่วยให้การจัดการสิทธิ์สำหรับผู้ใช้จำนวนมากง่ายขึ้น

ตรรกะการให้สิทธิ์ API

ที่ส่วนหลังของระบบ หลังจากยืนยันตัวตนผู้ใช้แล้ว คุณจะตรวจสอบสิทธิ์ของผู้ใช้สำหรับจุดปลายทาง API ที่เฉพาะเจาะจง โดยมักใช้ตัวกลางหรือเครื่องดักจับที่ทำหน้าที่ดังนี้:

  1. ดึงบทบาท/สิทธิ์ของผู้ใช้จาก JWT หรือเซสชัน
  2. ตรวจสอบว่าบทบาทของผู้ใช้มีสิทธิ์ดำเนินการตามที่ร้องขอหรือไม่
  3. หากไม่มี ให้ปฏิเสธการเข้าถึง (เช่น ส่งคืนข้อผิดพลาด 403 ไม่อนุญาต)

ตรวจสอบความเข้าใจอย่างรวดเร็ว

ลองพิจารณาผู้ใช้ที่พยายามเข้าถึงฟีเจอร์พรีเมียมใน SaaS ด้าน AI ของคุณ

การรักษาความปลอดภัยให้ส่วนหลังของระบบ

ทำได้ดีมาก ตอนนี้คุณได้เรียนรู้แนวคิดพื้นฐานของ การยืนยันตัวตนผู้ใช้ และ การให้สิทธิ์ แล้ว

  • การยืนยันตัวตน: ตรวจสอบว่า "ผู้ใช้คือใคร"
  • การให้สิทธิ์: กำหนดว่า "ผู้ใช้ทำอะไรได้บ้าง"
  • เราได้เรียนรู้การแฮชรหัสผ่านอย่างปลอดภัย การยืนยันตัวตนแบบใช้เซสชันเทียบกับ JWT แบบไม่มีสถานะ และ RBAC สำหรับจัดการสิทธิ์

การนำแนวคิดเหล่านี้ไปใช้อย่างถูกต้องมีความสำคัญอย่างยิ่งต่อการสร้างส่วนหลังของระบบ SaaS ด้าน AI ที่ปลอดภัยและขยายระบบได้

คำถามที่พบบ่อย

บทเรียน “การยืนยันตัวตนและการกำหนดสิทธิ์ผู้ใช้” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การยืนยันตัวตนและการกำหนดสิทธิ์ผู้ใช้” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส AI SaaS Builder ให้อัปเกรดเป็น CoddyKit PRO คอร์ส AI SaaS Builder มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การยืนยันตัวตนและการกำหนดสิทธิ์ผู้ใช้”

นำระบบเข้าสู่ระบบที่ปลอดภัยมาใช้ และควบคุมการเข้าถึงฟีเจอร์และข้อมูลต่าง ๆ ของผู้ใช้ คุณปฏิบัติ AI SaaS Builder ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน AI SaaS Builder หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน AI SaaS Builder บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน

บทเรียน “การยืนยันตัวตนและการกำหนดสิทธิ์ผู้ใช้” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน AI SaaS Builder นี้ได้ไหม

ได้ บทเรียน AI SaaS Builder ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การออกแบบ RESTful API
  2. การจัดการฐานข้อมูลสำหรับ SaaS
  3. การยืนยันตัวตนและการกำหนดสิทธิ์ผู้ใช้
  4. การจำกัดอัตราและการจัดคิวคำขอปัญญาประดิษฐ์
← กลับไปที่ AI SaaS Builder