Single Sign

  -  
Single Sign-On (SSO) là gì, hoạt động ra sao? Báo cáo

Single Sign-On (SSO) là gì?

Giới thiệu

Ngày nay, hầy hết các trang web đều yêu cầu xác thực người dùng thì mới có thể truy cập vào chức năng và nội dung của họ. Với sự gia tăng của số lượng các trang web, thì đương nhiên, số lượng tài khoản mà mỗi người dùng cần có sẽ tăng theo.Thử tưởng tượng bạn đang sử dụng 10 dịch vụ khác nhau, mà mỗi tài khoản để truy cập các dịch vụ này thì đều yêu cầu tối thiểu 2 thông tin cơ bản là user name và password. Chà, việc ghi nhớ hết chỗ này cũng mệt lắm đây! Vậy thì thông minh hơn một chút, là sẽ sử dụng user name và password của các dịch vụ này là y hệt nhau


*

Cơ mà với 10 dịch vụ, thì việc đăng nhập 10 lần là không thể tránh khỏi !!! Và vì thế, single sign-on ra đời

Single Sign-On, đúng như tên gọi, là cơ chế cho phép người dùng có thể truy cập nhiều trang web, ứng dụng mà chỉ cần đăng nhập một lần. Một khi đã được định danh ở một trang website A, thì cũng sẽ được định danh tương tự ở website B mà không cần lặp lại thao tác đăng nhập


*

Ưu và nhược điểm

Một vài lợi ích có thể kể đến của single sign-on là:

Giảm số lượng username và pasword mà người dùng cần phải ghi nhớGiảm số lần phải nhập thông tin username và paswordRủi ro về việc lộ thông tin người dùng cũng được tiết chế lại

Tuy nhiên, một vài hạn chế không thể không kể đến:


Chi phí phát triển khi thông qua service thứ baPhụ thuộc vào service bên ngoài

Cơ chế hoạt động

Hệ thống nhận dạng liên kết

Hệ thống nhận dạng liên kết( Federated Identity Glossary) là nơi tập trung và liên kết thông tin người dùng. Có 4 yếu tố nền tảng cấu thành nên hệ thống này:

Xác thực (Authentication)Phân quyền (Authorization)Trao đổi thông tin người dùng (User attributes exchange)Quản lí người dùng (User management)
*

Xác thực có nghĩa là: kiểm tra thông tin đăng nhập và tiến hàng định danh người dùng.

Bạn đang xem: Single sign

Phân quyền dựa trên thông tin định danh để kiểm tra quyền truy cập của user.

Trao đổi thông tin người dùng Mỗi hệ thống con sẽ cần và lưu trữ các thông tin khác nhau của người dùng, tuy nhiên sẽ có các thông tin bị lặp lại, ví dụ như tên, họ.... Do đó, cần có một nơi để tổng hợp lại các thông tin này, và trao đổi cho các hệ thống con.

Quản lí người dùng admin có thể quản lí người dùng bằng các thao tác thêm, sửa, xóa... ở các hệ thống con.


Single sign-on là một phần của hệ thống nhận dạng liên kết, có liên quan chặt chẽ với việc xác thực thông tin người dùng. Nó sẽ định danh người dùng, và sau đó chia sẻ thông tin định danh được với các hệ thống con.

Cơ chế

Một user khi đăng nhập vào hệ thống A thì domain của A sẽ lưu thông tin định danh vào cookie, để user này cũng là đã đăng nhập khi truy cập vào hệ thống B thì domain B sẽ phải đọc được cookie của A tạo ra, nhưng điều này là không thể. Với các trình duyệt hiện nay, domain chỉ có thể truy cập cookie do chính nó tạo ra.


*

Vì vậy, single sign-on sẽ phải chia sẻ thông tin cookie giữa các domain với nhau. Mỗi giao thức single sign-on sẽ có cơ chế chia sẻ khác nhau, nhưng điểm chung đều là tạo ra một domain trung tâm (central domain). Qua domain này, thông tin về cookie sẽ được chia sẻ đến các domain con. Ví dụ, central domain có thể tạo ra một json web token (jwt) và mã hóa nó. Khi ngươi dùng truy cập vào domain con thì sẽ được điều hướng đến domain trung tâm này, và token sẽ được trả lại và lưu ở phía trình duyệt. Sau đó, nếu người dùng tiếp tục truy cập vào domain con khác thì tương tự, cũng sẽ được điều hướng đến domain trung tâm, nhưng do lần này đã có token nên sẽ được định danh và việc đăng nhập lại là không cần thiết nữa.


*

Đọc xong cũng thấy khá logic, nhưng khi kéo xuống các câu hỏi bên dưới, thì mình thấy có một câu được rất nhiều vote up như thế này:

What is browser cookie storage and how it is accessible to by all three apps? I am supposing, the token should be stored by auth server and accessible to auth server, and after authentication browser is sending auth token with each request, and authenticated at auth server side, so why other apps are accessing browser cookie storage?Since it"s a domain specific, private storage, shouldn"t the representation of browser storage not have all three domains pointing to it? They don"t share the same browser cookie storage. They only share the same information, but in different stores. Is that not correct? I realize that makes the visual a little more disparate, but the principle is an important one to understand and changes the flow slightly.

Hiểu là: brower lưu cookie kiểu gì vậy? Tôi đang hiểu là mỗi domain sẽ có 1 storage riêng trong local storage tổng để lưu cookie. Khi access đến domain1 và được redirect đến central domain xong thì sẽ có cookie lưu trong storage của domain1 và central, sau đó, với domain2 thì làm thế nào để lấy được cookie của central Mình nghĩ là câu này cũng sẽ có nhiều người thắc mắc (vì có nhiều vote up mà


) nên có một số ý hiểu mình muốn chia sẻ đó là:

Local storage không chia thành nhiều storage con, mà chỉ có duy nhất một local storage mà thôi, tất cả cookie đều sẽ được lưu ở một chỗ, dạng key (là domain) và value. Chỉ là, các domain sẽ chỉ có quyền access đối với data mà nó tạo ra thôi.

Không có chuyện các domain sử dụng cookie của nhau. Các domain sẽ tự request đến center domain và tự lưu cookie được trả ra, sau đấy, với mỗi request thì các domain sẽ tự dùng cookie mà mình có

Phần lớn các service SSO hiện nay (ví dụ ở đây là Auth0) có 2 cách để xử lí ở vấn đề này:

Do tính chất của cookie, là các domain và subdomain có thể truy cập qua lại, nên central domain sẽ là dạng subdomain đối với một trong số các domain con. Ví dụ: domain con là abc.com thì auth0 sẽ tạo ra một central domain là abc.auth0.com. khi đấy, user nếu đã login ở abc.com thì sẽ có cookie lưu ở local storage mà cả abc.com và abc.auth0.com đều truy cập được. Khi đấy, nếu user login ở edf.com thì sẽ được redirect về central domain là abc.auth0.com, và sẽ có cookie, và lúc đấy user sẽ được xác thựcSử dụng cơ chế Cross-origin resource sharing

Social login


Social login cũng là một dạng của single sign-on, là sử dụng những thông tin đăng nhập sẵn có của các hệ thống mạng xã hội như Facebook, Google, ..., người dùng có thể đăng kí vào các service thứ ba mà không cần tạo tài khoản. Và domain trung tâm khi này sẽ là domain của các mạng xã hội.

Kết

Bài viết được lấy ý tưởng từ https://auth0.com/blog/what-is-and-how-does-single-sign-on-work/ và có thêm một số ý kiến chủ quan của tác giả


Tại sao pate Minh Chay lại có độc

Từ vụ việc sản phẩm pate Minh Chay có chứa độc tố dễ gây tử vong, chuyên gia cảnh báo các cơ sở sản xuất thực phẩm phải chú trọng và cẩn thận hơn ...


Hôn má tiếng Trung là gì
Cơ bụng mặt bao lâu để hồi phục

Đa số bạn nam khi tham gia tập Gym đều mong ước sở hữu cho mình cơ bụng 6 múi. Vậy tập bao lâu để có cơ bụng 6 múi đẹp, rắn chắc và cắt nét rõ ràng? ...


Chemistry là gì trong Kpop

Hết phim IU vẫn công khai chọn Yeo Jin Goo là người tình trong mộng, cặp Hotel Del Luna có gì đáng nghi không đây?Từ trước đến nay, những màn tương tác giữa ...


Face đọc là gì

Từ: face /feis/danh từmặtto look somebody in the facenhìn thẳng vào mặt aito show ones ...


Brand representative là gì

Khái quát vè nghề salesNghề sales, hiểu đơn giản đó chính là nghề bán hàng, đặc trưng của nghề này được thể hiện ở hành động của nhân viên bán hàng ...

Xem thêm: Giáo Viên Chủ Nhiệm Tiếng Anh Là Gì ? Giáo Viên Chủ Nhiệm Tiếng Anh Là Gì


Lot tiếng Việt là gì

EngToViet.com | English to Vietnamese TranslationEnglish-Vietnamese Online Translator Write Word or Sentence (max 1,000 chars): English to ...


Khum khum có nghĩa là gì

Internet đã thay đổi cuộc sống con người nhiều thế nào thì ai cũng rõ, từ những cái đơn giản nhất như nhắn tin. Bây giờ chẳng ai còn gửi SMS cho nhau nữa ...


Gỏi xoài bao nhiêu calo

2 món gỏi xoài ăn nhiều mà không sợ tăng cân2 món gỏi xoài chua chua, thanh thanh, ngọt ngọt dưới đây sẽ giúp bạn có thể ăn thỏa thích mà không sợ tăng cân ...


Pizza Company bao nhiêu calo

Pizza là một món ăn khởi nguồn từ phương Tây được nhiều người ưa chuộng. 1 hộp pizza bao nhiêu calo? 1 miếng pizza bao nhiêu calo? Đây là những câu hỏi mà ...


Hurt tiếng Anh là gì

Có bao giờ gặp một từ mới mà các bạn tự hỏi từ Hurt trong tiếng anh nghĩa là gì, cách sử dụng của cụm từ này như thế nào, hay là có gì cần lưu ý ...


Turbo Nghĩa Tiếng Việt là gì

turbo nghĩa là gì trong Tiếng Việt?turbo nghĩa là gì, định nghĩa, các sử dụng và ví dụ trong Tiếng Anh. Cách phát âm turbo giọng bản ngữ. Từ đồng nghĩa, trái ...


Stand from là gì

Bạn đã bao giờ nghe qua cụm từ Stand for chưa? Bạn có biết ý nghĩa cũng như cấu trúc và cách dùng của nó trong Tiếng Anh như thế nào không? Cùng studytienganh ...


Taking photos Tiếng Việt là gì

taking nghĩa là gì trong Tiếng Việt?taking nghĩa là gì, định nghĩa, các sử dụng và ví dụ trong Tiếng Anh. Cách phát âm taking giọng bản ngữ. Từ đồng nghĩa, ...


Cu Tiếng Anh là gì

Tiếng Việt ภาษาไทย Bahasa Indonesia 中文 English Français Español Português Login ...


Bánh bao chay nhân rau cứ bao nhiêu calo

Bánh bao chay là thực phẩm quen thuộc trong ẩm thực người người Việt. Biết rằng bánh bao chay làm từ tinh bột nhưng ăn bánh bao chay có béo không vẫn là một ...


Xe Vision nặng bao nhiêu kg

Trọng lượng xe Vision Thông số kỹ thuật và giá xe Honda Vision 2020Trọng lượng xe Vision Hỏi xe Honda vision nặng bao nhiêuXe Honda Vision trong nhiều năm nay ...


Người vĩ đại Tiếng Anh là gì

vĩ đại trong Tiếng Anh là gì?vĩ đại trong Tiếng Anh là gì, định nghĩa, ý nghĩa và cách sử dụng. Dịch từ vĩ đại sang Tiếng Anh.Từ điển Việt Anhvĩ đại* ...


Bean đọc tiếng anh là gì

Thông tin thuật ngữ bean tiếng Anh Từ điển Anh Việt bean (phát âm có thể chưa ...

Xem thêm: Khái Niệm Và Vai Trò Của Quản Trị Công Ty Là Gì ? Nguyên Tắc Quản Trị Công Ty Theo Oecd


Dung dịch là gì cho ví dụ lớp 5

Khoa học lớp 5: Bài học về dung dịch (tuần 19)Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.03 MB, 16 trang ...