Thứ Hai, 22 tháng 12, 2014

NukeViet 4 sẵn sàng cho Single Sign On - Đăng nhập một lần

Standard
Với hệ thống có nhiều website và application thì việc sử dụng Single Sign On (SSO) là khá cần thiết nhằm đem lại nhiều thuận tiện cho người dùng. Phòng nghiên cứu và phát triển NukeViet - Công ty Vinades đã nghiên cứu và bước đầu thành công trong việc sử dụng CAS để nhập một lần.
1. Giải pháp kiểm soát truy nhập hệ thống SSO

Hiện nay, ứng dụng chạy trên các máy chủ lớn dần được thay thế bằng các ứng dụng mạng phân tán khách - chủ (client - server) thông qua một lượng lớn các hệ thống nhỏ chạy trên các hạ tầng độc lập với số lượng người dùng và hệ thống cần quản trị tăng lên nhanh chóng.

Mỗi lần truy nhập một dịch vụ của hệ thống, người dùng phải khai báo thông tin về mật khẩu và tên đăng nhập cho hệ thống xác thực. Do vậy, người dùng phải nhớ rất nhiều cặp tên truy cập/mật khẩu khác nhau và phải đăng nhập nhiều lần. Điều này gây khó khăn cho người dùng và nhà cung cấp dịch vụ, người quản trị cũng phải đối mặt với một loạt vấn đề như bảo mật, mã hóa, lưu trữ cơ sở dữ liệu.

Trước đây, để giải quyết vấn đề này, người sử dụng bắt buộc phải nhớ các thông tin đăng nhập, hoặc lưu trong các file có mã hóa, hoặc sử dụng một chương trình quản lý tài khoản trên máy tính của họ. Tuy nhiên, người dùng vẫn phải nhớ quá nhiều tên truy cập/mật khẩu, người quản trị luôn nhận được các yêu cầu tạo lại mật khẩu và kích hoạt lại tài khoản người dùng, do họ gặp phải các sự cố về thông tin đăng nhập.

Một giải pháp cho vấn đề trên là sử dụng một kỹ thuật xác thực một lần cho tất cả các tài khoản có yêu cầu bảo mật khác nhau. Giải pháp này vừa đảm bảo tính thuận tiện, vừa tăng độ bảo mật khi sử dụng. Hơn nữa, áp lực trong việc quản lý tài khoản đối với nhà quản trị hệ thống có thể được giảm xuống. Hệ thống SSO có khả năng tích hợp và kết hợp các hệ thống tài khoản khác nhau. Điều này sẽ đem lại lợi ích cả cho người dùng và nhà cung cấp dịch vụ.
Ưu điểm của giải pháp SSO

Đối với người dùng: Hệ thống SSO cung cấp cho người dùng công cụ xác thực đăng nhập một lần. Công cụ này xác thực người dùng đăng nhập vào mọi hệ thống có tích hợp giải pháp SSO, vì vậy, người dùng chỉ cần nhớ một cặp tên truy cập/mật khẩu duy nhất.
Khi cập nhật mật khẩu và tên đăng nhập, người dùng chỉ cần cập nhật một lần cho toàn bộ các hệ thống có yêu cầu xác thực người dùng.
Khi đã đăng nhập vào một hệ thống chứa các hệ thống con có tích hợp giải pháp SSO, người dùng có thể dễ dàng truy nhập vào các hệ thống con này mà không cần phải xác thực lại trong một khoảng thời gian nào đó, tùy thuộc vào chính sách quản trị.

Đối với nhà cung cấp dịch vụ, quản trị hệ thống:

Người quản trị chỉ cần bảo mật và quản lý thông tin đăng ký của người dùng một lần, vì vậy có thể giảm dung lượng cơ sở dữ liệu và tránh được các xung đột nảy sinh do phải xử lý mật khẩu của các hệ thống khác nhau, tăng khả năng mở rộng và triển khai các chiến lược bảo mật.

Người quản trị có thể thay đổi và cập nhật thông tin được bảo mật của người dùng khi cần thiết, một cách dễ dàng hơn so với việc thay đổi ở từng hệ thống riêng lẻ mà người dùng đó được phép truy cập. Điều này rất hữu ích khi người dùng thay đổi vị trí của mình với các cấp độ bảo mật khác nhau.


2. Giải pháp Dịch vụ xác thực trung tâm CAS

CAS (Central Authenticate Service) là một giải pháp SSO mã nguồn mở được phát triển bởi đại học Yale, với các tính năng như sau:

- CAS hỗ trợ nhiều thư viện phía máy khách được viết bởi nhiều ngôn ngữ: PHP, Java, PL/SQL. Nó lấy thông tin SSO thông qua cookie. Cookie này sẽ bị hủy khi người dùng đăng xuất khỏi CAS hoặc đóng trình duyệt. Cookie được sinh ra bởi CAS, còn được gọi là TGC (Ticket Granting Cookie) chứa một ID duy nhất.

- CAS cung cấp nhiều trình quản lý xác thực (authenticate handler) khác nhau. CAS xác thực nhiều loại thông tin người dùng như tên truy cập/mật khẩu, chứng chỉ khóa công khai X509,... để xác thực những thông tin người dùng khác nhau này, CAS sử dụng những trình quản lý xác thực tương ứng.

- CAS cung cấp tính năng “Remember me”. Người phát triển có thể cấu hình tính năng này trong nhiều file cấu hình khác nhau và khi người dùng chọn “Remember me” trên khung đăng nhập, thì thông tin đăng nhập sẽ được ghi nhớ với thời gian được cấu hình. Khi người dùng mở trình duyệt thì CAS sẽ chuyển đến service URL tương ứng mà không cần hiển thị khung đăng nhập.

Nguyên tắc hoạt động của CAS như sau:

Chứng thực người dùng với máy chủ CAS
- Người dùng nhập tên truy cập/mật khẩu vào khung đăng nhập. Các thông tin này được truyền cho CAS máy chủ thông qua giao thức HTTPS.

- Xác thực thành công, TGC được sinh ra và thêm vào trình duyệt dưới hình thức là cookie. TGC này sẽ được sử dụng để đăng nhập với tất cả các ứng dụng (Hình 3).



Hình 3: Người dùng truy cập vào ứng dụng khi đã chứng thực với CAS máy chủ
Truy cập vào ứng dụng của người dùng

Trường hợp người dùng truy cập vào ứng dụng khi đã chứng thực với CAS máy chủ:

- Người dùng truy xuất ứng dụng thông qua trình duyệt.

- Ứng dụng lấy TGC từ trình duyệt và chuyển nó cho CAS máy chủ thông qua giao thức HTTPS.

- Nếu TGC này là hợp lệ, CAS máy chủ trả về một Service Ticket (ST) cho trình duyệt, trình duyệt truyền ST vừa nhận cho ứng dụng.

- Ứng dụng sử dụng ST nhận được từ trình duyệt và sau đó chuyển nó cho CAS máy chủ.

- CAS máy chủ sẽ trả về ID của người dùng cho ứng dụng, mục đích là để thông báo với ứng dụng là người dùng này đã được chứng thực bởi CAS máy chủ.

- Ứng dụng đăng nhập cho người dùng và bắt đầu phục vụ người dùng.

Trường hợp người dùng truy cập vào ứng dụng mà chưa chứng thực với CAS máy chủ:

- Người dùng truy xuất ứng dụng thông qua trình duyệt. Vì chưa nhận được TGC nên ứng dụng sẽ chuyển hướng người dùng cho CAS máy chủ.

- Người dùng cung cấp tên truy cập/mật khẩu của mình thông qua khung đăng nhập để CAS xác thực. Thông tin được truyền đi thông qua giao thức HTTPS.

- Xác thực thành công, CAS máy chủ sẽ trả về cho trình duyệt đồng thời cả TGC và ST.

- Trình duyệt sẽ giữ lại TGC để sử dụng cho các ứng dụng khác (nếu có) và truyền ST cho ứng dụng nêu trên.

- Ứng dụng chuyển ST cho CAS máy chủ và nhận về ID của người dùng.

- Ứng dụng đăng nhập cho người dùng và bắt đầu phục vụ người dùng (Hình 4).



Hình 4: Người dùng truy cập ứng dụng mà chưa chứng thực với CAS
3. Ứng dụng Tại NukeViet

- Chúng tôi sử dụng CAS làm trung tâm xác thực.

- Ldap lưu trữ thông tin của người dùng.

- Chúng tôi xây dựng 2 mô hình:

+ Mô hình 1: Toàn bộ thông tin người dùng NukeViet được quản lý bởi CAS, Dữ liệu lưu trữ tại LDAP. Việc đăng ký tài khoản sẽ chuyển qua một ứng dụng khác quản lý.

+ Mô hinh 2: NukeViet đứng ra đảm nhận toàn bộ quá trình quản lý người dùng, CSDL người dùng lưu trữ trên LDAP server, Các ứng dụng đăng nhập SSO sẽ xác thực qua CAS server và LDAP.



4. Tham khảo bài viết từ: 

http://antoanthongtin.vn/Detail.aspx?CatID=8ab90f49-a562-4157-a607-d2474bf129a9&NewsID=1caffb79-e759-4855-91fc-76840dfc5424

Theo:   


0 nhận xét:

Đăng nhận xét