0
0
Lập trình
Flame Kris
Flame Krisbacodekiller

Hướng Dẫn Chi Tiết Về SAML: Định Nghĩa, Lợi Ích và So Sánh Với Các Phương Thức Xác Thực Khác

Đăng vào 3 tuần trước

• 4 phút đọc

Phần 2: SAML (Security Assertion Markup Language)

6. Các Định Nghĩa Liên Quan Đến SAML

6.1. Single Sign-On (SSO)

Single Sign-On (SSO) hay Đăng Nhập Một Lần là một phương pháp xác thực người dùng cho phép truy cập vào nhiều ứng dụng và dịch vụ khác nhau mà không cần phải đăng nhập lại nhiều lần. Người dùng chỉ cần ghi nhớ một mật khẩu duy nhất, mạnh mẽ giúp bảo vệ thông tin xác thực từ Identity Provider (IdP).

Người dùng không cần phải dựa vào các công cụ ghi nhớ mật khẩu trực tuyến, viết ra và dán trên màn hình, hoặc sử dụng chức năng ghi nhớ mật khẩu của các website. Tất cả những phương pháp này đều tiềm ẩn nguy cơ mất tài khoản cao.

Để thực hiện chức năng đăng nhập một lần, hệ thống SSO cần liên lạc với các ứng dụng hoặc trang web bên ngoài để xác nhận rằng người dùng đã được xác thực và ủy quyền. Chính lúc này, SAML thể hiện rõ vai trò quan trọng của mình.

Ví dụ: Khi bạn đăng nhập vào một số trò chơi trực tuyến, chương trình sẽ yêu cầu bạn đăng nhập để lưu trữ thông tin. Bạn chỉ cần nhấn vào biểu tượng Facebook, xác nhận thông tin của mình, và như vậy, trò chơi trở thành một Service Provider (SP), còn Facebook là Identity Provider (IdP) xác thực bạn với trò chơi đó. Như vậy, bạn có thể sử dụng tài khoản Facebook để đăng nhập vào nhiều trò chơi và nhiều website khác nhau.

6.2. SAML Assertion

SAML Assertion (Xác Nhận SAML) là một tài liệu XML được sử dụng để xác nhận với SP rằng người dùng đang muốn truy cập đã được IdP xác thực.

Có ba loại xác nhận trong SAML:

  • Xác Nhận Xác Thực: Thông tin xác thực người dùng, tháng thời gian mà họ đã đăng nhập và loại hình xác thực sử dụng (xác thực đa yếu tố hoặc mật khẩu).
  • Xác Nhận Thuộc Tính: Truyền mã thông báo SAML cho SP bao gồm dữ liệu cụ thể về người dùng.
  • Xác Nhận Quyết Định Ủy Quyền: Giúp SP biết người dùng đã được xác thực hay từ chối truy cập vào dịch vụ, hoặc có thể do thông tin xác thực không hợp lệ.

6.3. SAML 2.0

SAML 2.0 là phiên bản mới hơn và hiện đại của SAML, được phát triển dựa trên các phiên bản trước. Nó đã được sử dụng từ năm 2005 và hiện là phiên bản tiêu chuẩn mà nhiều hệ thống áp dụng, trong khi vẫn hỗ trợ cả phiên bản cũ (SAML 1.1).

7. So Sánh Các Phương Thức Xác Thực Khác Nhau

Phương Thức Xác Thực SAML OpenID Connect OAuth2 Kerberos
Mục Đích Chính Xác thực và ủy quyền dựa trên XML Xác thực hiện đại dựa trên OAuth2 Ủy quyền mà không cần xác thực Xác thực dựa trên Ticket
Loại Xác Thực SSO SSO Authorization SSO
Mức Độ Bảo Mật Cao, sử dụng chữ ký số và mã hóa Cao, sử dụng JWT và mã hóa Tùy vào triển khai Cao, sử dụng mã hóa và Ticket ngắn hạn
Môi Trường Ứng Dụng Doanh nghiệp, web Ứng dụng web, mobile API, web Mạng nội bộ doanh nghiệp
Thành Phần Identity Provider (IdP) + Service Provider (SP) + User OAuth2 + UserInfo Endpoint Resource Server + Authorization Server + Client Authentication Service (AS) + Ticket Granting Server (TGS) + Client
Ưu Điểm Hỗ trợ SSO + Bảo mật cao Đơn giản hóa tích hợp với OAuth2 + Dễ dàng tích hợp với các dịch vụ hiện đại Linh hoạt và dễ mở rộng + Hỗ trợ nhiều loại client Bảo mật cao + Hiệu quả trong môi trường nội bộ
Nhược Điểm Phức tạp trong triển khai và bảo trì Có thể phức tạp nếu không quen thuộc với OAuth2 Không phải giao thức xác thực, cần kết hợp một phương thức xác thực Khó triển khai và bảo trì
Ví Dụ Sử Dụng Ứng dụng doanh nghiệp như Salesforce, Google Workspace Ứng dụng web và mobile như Google, Facebook Ủy quyền truy cập API như Google APIs, GitHub API Trong môi trường nội bộ doanh nghiệp

8. Nguồn Tham Khảo

  • OASIS Standard
  • OpenID Foundation
  • Internet Engineering Task Force (IETF)
  • Massachusetts Institute of Technology (MIT)

Ngoài ra, mình cũng đã tham khảo nguồn tài liệu từ bài viết trước.
source: viblo

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào