Single Sign On (SSO)

MỞ ĐẦU 

Trong thời đại phát triển mạnh mẽ của hệ thống mạng máy tính như hiện nay, xu hướng các dịch vụ cùng nhau chia sẻ dữ liệu người dùng đang là hướng phát triển chung của công nghệ thông tin, một người dùng phải quản lý rất nhiều tài khoản, mật khẩu cho các dịch vụ, ứng dụng mà họ tham gia. Khi người sử dụng phải lưu trữ quá nhiều các thông tin bí mật như trên sẽ dẫn đến những vấn đề như không đảm bảo tính an ninh, an toàn và tăng thêm những chi phí khác. Do vậy nhu cầu đăng nhập một lần – Single Sign On (SSO) cho các ứng dụng và dịch vụ này là rất cấp thiết. Cơ chế SSO đảm bảo cho người dùng hợp pháp có thể truy nhập vào rất nhiều những dịch vụ khác nhau trên hệ thống mạng phân tán nhưng chỉ phải sử dụng một tài khoản duy nhất. Người sử dụng chỉ cần đăng ký và đăng nhập duy nhất một lần vào hệ thống, khi đó trong phiên làm việc của mình họ có thể truy cập ngay lập tức vào các dịch vụ liên kết của hệ thống phân tán mà không phải đăng ký thêm định danh và thông qua quá trình đăng nhập lần nữa. Hiện nay có nhiều phương pháp khác nhau được đưa ra nhằm mục đích ứng dụng cơ chế này, nhưng trên các thử nghiệm thực tế hầu hết các phương pháp đó đều không ngăn chặn được các tấn công một cách có chủ ý từ bên ngoài. Một số phương pháp có kèm theo cơ chế đồng bộ thời gian để loại bỏ các truy nhập trái phép, nhưng điều đó dẫn đến việc tăng chi phí tính toán. 

1. Giới thiệu Single Sign On 

SSO là một cơ chế xác thực yêu cầu người dùng đăng nhập vào chỉ một lần với một tài khoản và mật khẩu để truy cập vào nhiều ứng dụng trong một phiên làm việc (session). 

Trước khi có SSO, một người sử dụng đã phải nhập các tài khoản và mật khẩu cho từng ứng dụng mỗi khi họ đăng nhập vào các ứng dụng khác nhau hoặc các hệ thống trong cùng một phiên. Điều này rõ ràng có thể tốn nhiều thời gian, đặc biệt là trong môi trường thông tin đa phương tiện như hiện nay, khi mà người sử dụng phải đăng nhập mỗi khi họ truy cập vào một hệ thống mới từ máy tính của họ. Do vậy, với hệ thống có nhiều website và ứng dụng thì việc sử dụng SSO là rất cần thiết nhằm đem lại nhiều thuận tiện cho người dùng và tăng tính năng bảo mật. 

Ví dụ: người dùng sử dụng các dịch vụ của google: gmail, scholar, youtube, google plus, drive… khi chưa có SSO thì với mỗi dịch vụ ta phải nhập thông tin để xác thực. Với SSO người dùng chỉ cần sử dụng một email duy nhất của google để có thể đăng nhập và khai thác sử dụng tất cả các dịch vụ và ứng dụng của google. Điều đó thực sự mang lại sự thuận tiện và tiết kiệm thời gian cho người dùng tin, khi không phải đăng kí bất kì tài khoản nào khác nữa. 

Một số ứng dụng và dịch vụ của Google

Đăng nhập là quá trình người dùng sử dụng định danh và các thông tin bí mật khác thiết lập một kết nối bảo mật với hệ thống, định danh và các thông tin bí mật của người dùng đã được người dùng đăng ký từ trước với hệ thống. Quá trình người dùng đăng nhập bao gồm hai bước xác thực và ủy quyền, trong đó: 

  • Xác thực (Authentication): Kiểm tra một người dùng có hợp lệ hay không thông qua các phương thức xác thực của hệ thống. Xác thực được coi là cốt lõi của quá trình đăng nhập trong một hệ thống thông tin. Chúng ta có thể sử dụng các phương pháp xác thực như: username, password, thẻ thông minh, hay dùng sinh trắc học… 
  • Ủy quyền (Authorization): Là quá trình kiểm chứng một người dùng đã được xác thực có đủ quyền truy cập vào tài nguyên mà người dùng yêu cầu hay không. Tài nguyên yêu cầu có thể phụ thuộc vào chính sách tên miền (cấp quyền theo tên miền) hoặc một chính sách đặc biệt nào đó (ví dụ cấp quyền theo cấp). 

SSO chỉ được triển khai sau khi đã xây dựng được hệ thống xác thực và phân quyền. SSO có nhiệm vụ cung cấp cho người dùng quyền truy cập nhiều tài nguyên web, các ứng dụng trong phạm vi cho phép chỉ với một lần đăng nhập (xác thực). 

2. Các giải pháp đăng nhập một lần 

Hiện nay có khá nhiều giải pháp SSO được giới thiệu và đưa vào sử dụng trên thực tế: 

  • Open Single SignOn (OpenSSO) hoạt động dựa trên Token. 
  • Central Authentication Service (CAS) 
  • Tivoli Access Manager for Enterprise Single SignOn. 
  • Java Open SSO (JOSSO)

3. Ưu khuyết điểm của cơ chế đăng nhập một lần 

3.1. Ưu điểm 

  • Tiết kiệm thời gian cho người sử dụng trong việc đăng nhập vào nhiều dịch vụ được cung cấp trên các nền tảng khác nhau của hệ thống phân tán. 
  • Tăng cường khả năng bảo mật thông qua việc giúp người sử dụng không cần nhớ nhiều thông tin đăng nhập (định danh và mật khẩu). 
  • Giúp cho người quản trị hệ thống tiết kiệm thời gian trong việc tạo lập hay loại bỏ người dùng trên hệ thống, cũng như thay đổi quyền của một hay một nhóm người dùng nào đó. 
  • Tiết kiệm thời gian khi tái lập lại mật khẩu cho người dùng. 
  • Bảo mật các cấp độ của việc thoát hay truy xuất hệ thống. 
  • Người phát triển ứng dụng không cần thiết phải hiểu và thực hiện nhận dạng bảo mật trong ứng dụng của họ, điều họ cần làm là liên kết đến một máy chủ định danh đã được bảo đảm, việc này giúp những người dùng của họ có thể truy cập vào các dịch vụ khác cũng liên kết đến máy chủ đó như họ.
  • Tạo nên sự đồng bộ giữa các dịch vụ và ứng dụng trong cùng một hệ thống thông tin phục vụ người dùng. 

3.2. Khuyết điểm 

  • Đòi hỏi cơ sở hạ tầng của toàn bộ hệ thống phải bảo đảm. 
  • Do nhiều domain cùng sử dụng chung cơ sở dữ liệu người dùng nên việc xác thực khi người dùng đăng ký với hệ thống phải chặt chẽ, nếu không sẽ rất dễ vi phạm việc đảm bảo an ninh cho hệ thống. 
  • Cần có cơ chế xác thực đảm bảo khi truyền các thông tin định danh người dùng giữa người sử dụng với các máy chủ dịch vụ khác nhau. 
  • Chi phí để triển khai hệ thống SSO là rất tốn kém, cả về phần mềm, phần cứng lẫn nguồn nhân lực, cần phải có sự tính toán cẩn thận trước khi triển khai. 

                                                                                                                                                           (Theo Phạm Thành Quang)