Single Sign-on (SSO) là gì? Cách hoạt động ra sao? Hãy tìm kiếm câu trả lời trong bài viết dưới đây nhé!
SSO là gì?
SSO (Single Sign – on) là một cơ chế xác thực cho phép người dùng truy cập một cách an toàn vào nhiều ứng dụng, dịch vụ chỉ với sử dụng duy nhất một ID. SSO được tích hợp trong các app như Gmail, Workday, hoặc Slack. Nó cung cấp một tiện ích bật lên (pop-up widget) hoặc một trang đăng nhập (login) cho chung một tập các chứng chỉ (credentials).
Với SSO, người dùng sẽ có thể truy cập rất nhiều ứng dụng đồng thời mà không cần phải đăng nhập mỗi lúc. SSO được xây dựng trên ý tưởng được gọi là “danh tính liên kết” (federated identity). Nó cho phép chia sẻ thông tin định danh xuyên suốt các hệ thống đáng tin cậy nhưng độc lập.
Có 2 giao thức phổ biến cho quá trình xác thực này bao gồm SAML và OpenID.
- SAML
SAML hay Security assertion markup language, chính là ngôn ngữ đánh dấu xác nhận bảo mật. Nó là một tiêu chuẩn mở trao đổi thông tin định danh dựa trên XML giữa các dịch vụ. Dễ dàng tìm thấy SAML ở các môi trường làm việc như hình dưới đây.
- OpenID Connect
Chung ta rất quen thuộc với OpenID khi sử dụng tài khoản Google cá nhân để đăng nhập vào các ứng dụng như Youtube. OpenID sử dụng JWT (Jason Web Token) để chia sẻ thông tin định danh giữa các dịch vụ.
Cách SSO vận hành ra sao?
- Xác thực ban đầu (Initial Authentication)
Người dùng truy cập vào một ứng dụng hoặc dịch vụ thông qua một cơ sở hạ tầng SSO. Khi đó, hệ thống SSO yêu cầu người dùng cung cấp thông tin đăng nhập (ví dụ: tên người dùng và mật khẩu).
- Phản hồi từ hệ thống xác thực
Hệ thống SSO sẽ xác thực thông tin đăng nhập của người dùng. Nếu thông tin đúng, hệ thống sẽ tạo một phiên làm việc mới và cấp cho người dùng một phiên làm việc (session) hoặc một mã thông báo (token).
- Phiên làm việc (Session) hoặc Mã thông báo (Token)
Hệ thống SSO sẽ duy trì phiên làm việc của người dùng hoặc cung cấp mã thông báo cho người dùng đã xác thực. Phiên làm việc chứa thông tin về việc xác thực và được duy trì trong thời gian ngắn. Mã thông báo có thể được mã hóa và chứa thông tin xác thực.
- Truy cập vào các ứng dụng khác
Khi người dùng cố gắng truy cập một ứng dụng khác, ứng dụng sẽ yêu cầu thông tin xác thực. Thay vì yêu cầu thông tin đăng nhập, ứng dụng sẽ gửi yêu cầu xác thực đến hệ thống SSO.
- Xác thực bằng SSO
Hệ thống SSO sẽ kiểm tra xem người dùng đã có phiên làm việc hoặc mã thông báo hay chưa. Nếu có, hệ thống sẽ xác thực người dùng mà không cần họ phải cung cấp thông tin đăng nhập lại.
- Truy cập cho phép
Sau khi xác thực thành công, hệ thống SSO sẽ cho phép người dùng truy cập vào ứng dụng mà họ đã yêu cầu mà không cần yêu cầu thông tin đăng nhập.
Quá trình này giúp người dùng tiết kiệm thời gian và công sức khi truy cập nhiều ứng dụng khác nhau mà không cần phải quản lý nhiều tài khoản và thông tin đăng nhập. Tuy nhiên, cần lưu ý rằng việc triển khai SSO đòi hỏi cấu hình phức tạp và bảo mật cao để đảm bảo rằng việc truy cập thông tin cá nhân của người dùng được bảo vệ an toàn.
Ví dụ về cách vận hành của SSO
Một nhân viên văn phòng truy cập vào ứng dụng như Gmail. Theo khái niệm của SAML thì Gmail trong ví dụ này là nhà cung cấp dịch vụ (Service Provider).
Máy chủ Gmail sẽ xác định user từ một work domain (tên miền doanh nghiệp) và trả về SAML Authentication Request ngược trở lại cho trình duyệt. Trình duyệt điều hướng user đến Identity Provider (nhà cung cấp danh tính) cho công ty được xác định trong SAML Authentication Request.
Okta, Auth0, và OneLogin là một số ví dụ thông dụng của Commercial Identity Providers (nhà cung cấp nhận dạng thương mại).
Nhà cung cấp định danh hiển thị trang đăng nhập nơi mà user nhập thông tin đăng nhập. Một khi user đã được xác thực, Identity Provider sẽ sinh ra một phản hồi SAML và trả cho trình duyệt. Đây gọi là xác nhận SAML.
Tiếp theo, hãy xem thử khi user điều hướng tới một ứng dụng tích hợp SSO, ví dụ Workday chẳng hạn.
Máy chủ của Workday xác định work domain (tên miền doanh nghiệp) và gửi một xác thực SAML trở lại cho trình duyệt. Một lần nữa trình duyệt điều hướng user đến Identity Provider. Từ lúc user đã đăng nhập vào hệ thống với Identity Provider, nó sẽ bỏ qua quá trình đăng nhập và thay vào đó, sinh ra một xác nhận SAML cho Workday, liệt kê chi tiết những gì user có thể truy cập ở đó. Xác nhận SAML được trả về cho trình duyệt và chuyển tới Workday. Workday kiểm tra tính hợp lệ xác nhận đã được kí và cấp quyền cho user tùy thuộc vào đó.
Thông qua bài viết trên, hi vọng các bạn sinh viên đã phần nào hiểu rõ hơn về SSO, từ đó ứng dụng nó vào thực tiễn công việc sau này!
Bài viết có tham khảo từ: System Design Interview by Alex Xu & Sahn Lam
Bộ môn Công nghệ Thông tin
Trường Cao đẳng FPT Polytechnic cơ sở Đà Nẵng