- Hệ thống ứng dựng phục vụ công tác quản lý thuế của ngành Thuế bao gồm các ứng dụng lỗi của ngành Thuê Tổi với các ứng dụng hỗ trợ người nộp Thuế, mỗi hệ thống đêu yêu cầu đăng nhập
Trang 1TRUONG PAI HOC BACH KHOA HA NOT
LUẬN VĂN THẠC SĨ
Tìm hiểu các chuẩn kết nối single sign on,
đánh giá và áp dụng thử nghiệm
tại Tông cục Thuế
NGÔ MINH CƯỜNG
Xgành: Công nghệ thông tin
Giảng viên hướng dẫn: TS Trần Iloàng 114i
HA NOT, 2020
Trang 2TRUONG PAI HOC BACH KHOA HA NOT
LUAN VAN THAC Si
Tìm hiểu các chuẩn kết nỗi single sign on,
đánh giá và áp dụng thử nghiệm
tại Tổng cục Thuế
NGÔ MINI CƯỜNG
Xgành: Công nghệ thông tin
Giảng viên hưởng dẫn: TS Trin Hoang Hai
Chữ ký của GVHD
Viện: Công nghệ thông tin và truyền thông
HÀ NỌI,2020
Trang 3CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập — Tự do— Hanh phúc
BẢN XÁC NHẬN CHỈNH SỬA LUẬN VĂN THẠC SĨ
Tọ và tên tác giả luận văn : gõ Mình Cường,
BÊ tài luận văn: Tìm hiển cáo chuẩn kết nổi single sign on, đánh giá và
áp đựng thử nghiệm tại Tổng cục Thuế
Ngành: Công nghệ thông tin
+_ | Để sung kién thie vé SSO 2.1.2,2.1.3.214 |13-18
Một số vẫn đề thường gặp khi |2.2 29
2 | triển khai SSO
Trang 4LOT CAM ON
Đầu tiên, lôi xin được gũt lời câm ơn sâu sắc nhất tới T8 Trần Hoàng Hải,
Phó Giám dóc, Trung tâm Mang thông tìn và là giảng viên bộ môn Truyền thông
và Mạng máy tỉnh, Viện Công nghệ thỏng tra và Truyền thông, Trường Dai hoe Bach Khoa Hà Nội đã hướng dẫn và cho tôi những lời khuyên trong quá trình thực
hiện luận vẫn nảy Tiếp theo, tôi xui chân thành cảm ơn các thấy cô trong Viện Công nghệ thông tin va truyền thông, Viện đảo tạo sau đại học, Trường Dai hoc Bach Khoa Hà Nội đã tạo điểu kiện cho tôi trong suốt quá trình học tập và nghiên cứu tại trường Cuối củng, tôi xin bảy tỏ lỏng cắm ơn tới những, người thản trong
gia đình, bạn bè đã động viên và giúp đỡ để tôi hoàn thành bản hiện văn này
11a Nội, ngày tháng năm 2020
Tác giả LVThS
Ngô Minh Cường
Trang 5
ội dung luận văn 'Tên đề tài (tiếng Việt): Tìm hiểu các chuẩn kết nổi Single Sign on, đánh
giả và áp dụng thử nghiệm tại Tổng cục Thuế
'Tên dễ tài (tiéng Anh): Loar the standards of Single Sign on connection,
assessment and test application at the General Department of Taxation
“Tác giả luận văn: Ngô Minh Cường
Chuyên ngành: Công nghệ thông tia Khoa: 2018B
Người hướng dẫn: TS Trần Hoàng Hải - Viện Công nghệ thông tỉn và Truyền thông, Trường Đại học Bách khoa Hả Nội
Nội dung tóm tất:
1 Cơ sở khoa học và thực tiễn của luận văn
Trong thời gian gần đây với sự phát triển của nghành Công nghệ thông tin,
xu hướng các dịch vụ củng nhau chia sẽ đữ liệu người dủng đang lẻ hướng phat triển chung, Thực tế một người đàng quản lý rất nhiều tài khoản, mật khẩu cho các dich vụ, ứng đụng mà họ tham gia Việc người đùng quần lí các thông tin tài khoân
và sử đụng sẽ này sinh các vẫn để không đảm bảo tính an ninh, an toàn và phát
sinh thêm những nghiệp vụ khác
Hệ thông phần mềm mg dụng ngành Thuế được cha thành 4 hệ thông phần rểm ứng dựng chính như sau:
- Hệ thống ứng dựng phục vụ công tác nội bộ của ngành bao gồm các ứng
- Hệ thống ứng dụng trao dỗi thông tin với bên ngoài bao gồm các ứng dụng
dé trao đổi thông tin với các cơ quan nhà nước các ngân hang
- Hệ thống ứng dựng phục vụ công tác quản lý thuế của ngành Thuế bao
gồm các ứng dụng lỗi của ngành Thuê
Tổi với các ứng dụng hỗ trợ người nộp Thuế, mỗi hệ thống đêu yêu cầu đăng nhập lài khoản và mật khẩu riêng khi sử dụng, Điều này dẫn đến khá nhiều bất tiện cho người nộp Thuế vá các cơ quan Thuế tổn khả nhiều nhân lực đề hồ trợ
người nộp Thuê
Do vay nhu cau đăng nhập một lần — Single sign-on cha các ứng dựng và dich vụ này là cân thiết Cơ chế Single sign-on (SSO) cho cae img dung va dich
Trang 6vụ này là cấp thiết, Cơ ché SSO dim bao cho người dùng, hợp pháp có thể truy cập
và một hệ thông hay nhiêu hệ thông kết nồi với nhau, chỉ phải sử đụng một tài
khoản duy nhái 8SO cho phép người đừng đăng nhập vào một hệ thống, bọ sẽ đăng nhập vào tất cả các hệ thông liên quan
2 Mục địch của để tài (các kết quả cần đạt được):
Me lai duoc thực hiện với các mục đích sau:
- Nghiên cứu các chuân kết nổi Single Sign on
- Xây đựng và triển khai thủ nghiệm công xác thực SSO tại Tổng cục Thuế
3 Phương pháp nghiên cứu
- Phương pháp nghiên cửu lý thuyết: Đọc, tìm hiểu các tài liệu, kiến thức liên quan dér Single sign-on, OpenID, Oauth?, SAML: IdentityServer
~ Phương pháp thực nghiém: Lua chon giải pháp phủ hợp xây dựng hệ thông
85O; Thực nghiệm, phân tích, đảnh giả kết quá của giải pháp
Trang 72.1 Tổng quan về Single sign on 2 vi xvvtrrrtzrrrrrrerrree 3
2.1.2 Nguyén ly hoat dong ciia Single sign-on 4 2.1.3 Kiến trúc SBO nu nuneeeeerieere =
2.1.5 Các giao thức phục vụ triển khai SSO Hee, Đ
2.1.6 So sánh các giao thức àieererrerirerreroeeev TẾ 2.1.7 Mật số giải pháp SSO hiện nay - - 19
3.2 Một số vấn để thường gặp khi triển khai SSO 32
2.3 Hiện trạng đăng nhập ứng dụng tại Tổng cục Thể và để xuất hướng giải
3.1 Khải niệm — 3.2 Tioạt động của IđentityServer4 ceeieiiereeroe ae 2
3.4 Các chuẩn hỗ trợ the eeereiiaerroeoieo.8
3.7 Dãng xuất liên kết - nh rrrrrrrrrrrerroo 37
CHƯƠNG 4 ÁP DỰNG THỨ NGHIƑM TẠI TỎNG CỰC THUÊ -Ö-35
Trang 8
4.1.1 Mô hình triển khai 4.1.2 Nguyên tắc hoạt dộng
4.1.3 Mục tiêu
4.2 Các bước thực hiện như sau
4.3 Cấu hình IdentityServer để thực hiện SSO
4.4 Kết quả đạt được
4.5 Tích hợp SSO vào các ứng dụng khác so se,
4.6 Danh giá kết quả ¬
CHƯƠNG 5 KÉT LUẬN
TÀI LIỆU THAM KHẢO
Trang 9Tinh 4: Kiến trúc SSO đơn giản trong một môi trường có nhiều xác thực
Hình 5; Các hình thức triển khai S8O àcoinerreiee
linh 6: Sơ đổ luồng của giao thức Oauth2 [1]
Hình 7: Các thành phân của OpenID Connect [4]
Hình 8: Hoạt dộng cúa Luỏng ruã ủy quyền co se
Sơ đỗ luồng xử lý của giao thức SAML [4]
: Mô hình của các ửng dụng hiện da (5)
Sư đô khối của hệ
Khoi tao TdentityServer
: Khởi tạo Chent
Hoạt động của Luông mã ủy quyền
oo) 6
Trang 10Tình 31: Chent gửi yêu cầu xác thực dén TdentlityServer
Hình 35: Client gửi mã xác thực và yêu cầu accoss token
linh 36: Client đúng access token để yêu cầu các địch vụ
Hình 4l: Tựa chọn đồng nhập bằng đalabase chúa CSDIL người dùng
Tĩnh 42: Đăng nhập bing Microsoft
Hình 43: Xác nhân để chúa sẻ thông lim
Trang 11DANH MỤC KÝ HIỆU, CÁC CHỮ VIẾT TẮT
Ta viettat Nghĩa tiếng Anh Nghĩa tiếng Việt
Thành phân chịu trách nhiệm
Trang 12CHUONG 1 M6 PAU
1 Đặt vấn dễ
Trong thời gian gân đây với sự phát triển của ngành Công nghệ thông tỉn,
xu hướng các dịch vụ cùng nhau chia số dữ liệu người dùng dang là hưởng phát
triển chung Thực tế một người ding quán lý rất nhiều tải khoăn, mật khẩu cho
các địch vụ, ứng dụng mà họ tham gia Việc người đùng quản lí các thông tin tải
khoản và sử dụng sẽ nây sinh các vẫn để không dâm bảo tỉnh an ninh, an toàn và
phat sinh thêm những nghiệp vụ khảo
Hệ thông phản mêm ứng đụng ngành Thuê được chia thanh 4 hệ thẳng phân mẻm ứng dụng chính như sau
a) Tệ thống ứng dụng phục vụ công tác nội bộ của ngành bao gềm các ving đụng về quản lý công văn,
+ Hệ thông ứng dụng hỗ Irợ Người nộp thuế bao gồm các ứng dụng vì
È kế
*khai thuế qua mạng, nộp thuê điện tử, quyết toán thuê thu nhập cá nhân online,
e) Hệ thống ứng dụng trao di thông tin với bên ngoài bao gồm các ứng
dụng để trao đối thông tin với cáo cơ quan nhà nước, các ngân hang
độ Hệ thẳng ứng dựng phục vụ công tác quản lý thuế của ngành Thuế bao gêm các ứng dụng lôi của ngành Thuê
Đổi với các ứng đụng hỗ trợ người nộp Thuẻ, mỗi hệ thông đều yêu cầu
m đến khả nhiều
ding nhập lải khoản và mật khẩu riêng khi sử dụng, Điều này
bất tiện cho người nộp Thuế va các cơ quan Thuế tốn khá nhiều nhân lực đẻ hỗ
trợ người nộp Thuê
Do vay nhu cau đăng nhập một lần cho các ứng dung và địch vụ này là cần thiết Cơ chế SSO cho các ứng dụng vá dịch vu nay là cấp thiết, Cơ ché SSO
đảm bảo cho người đủng họp pháp có thể truy cập và một hệ thang hay nhiền hệ
thông kết nối với nhau, chỉ phải sử dụng muội lải khoản duy nha SSO cho phép người ding đăng nhập vào một hệ thông, họ sẽ đăng nhập vào tất cả các hệ thống
liên quan
2 Phương phán đề xuất
Với sự phát triển bing né ciia nghành Công nghệ thông tin, các dịch vụ phát triển mạnh Nhn câu đăng nhập một lần — SSO là cấp thiết khi vấn đề về báo
Trang 13xnật, đữ liệu cả nhân ngày cảng được quan tâm Người ding được cấp quyền truy cập hệ thông, nhưng, cũng có thể bị thu hỏi mọi quyền truy cập trái phép ở tương lai và họ không cân cung cắp mật khẩu của họ Người dùng được quyết định việc
cho phép cấp quyều truy oập vào dữ liệu cá nhân mỗi khi ứng dụng thứ 3 có nhụ
câu Có nhiều giao thức, giải pháp, kỳ thuật cho phép xây đựng hệ thống SSO
Các giải pháp này có những ưu điểm, nhuợc điểm, phủ hợp với những nhu câu, nghiệp vụ riêng Tuy vậy các giải pháp cũng đã giải quyết được bài toàn xây
dựng hệ thống SSO Trong đó, ldentityServer 4 lả một giải pháp mã nguồn mở
phá biển cho hệ thống SSO Trong luận văn này, tôi thử nghiệm giải pháp SSO
sử dụng IdentitySarver4 Phương phép nghiên cứu sử dụng trong luận văn là
phương pháp nghiên cứu lý thuyết và kếp hợp với phương pháp triển khai thực nghiệm Để cỏ thế làm được thi tác giả phải thu thập tài liêu từ nhiễu nguồn
thông In khác nhau bao gồm: Tnlermet, sách bảo và những người có kinh nghiệm Trong các chương sau sẽ mô tả về SSO, cũng như giải pháp sử dựng
Tdertity8erver 4 xây dựng hệ thông SSO
3 Bố cục luận văn
Bồ cục luận văn nội dưng chính gềm 3 chương:
Chương 1: Giới thiệu thiệu tổng quan về SSO và dua ra van để câu thiếL thứ nghiệm SSO di với các ứng dụng Thuế diện tử
Chương 2: Tổng quan vé Identity Server 4
id
Chương 3: Trình bảy việc áp dụng thử nghiện SSO dối với ứng dụng
'Thuế điện tư
Kết luận: Dưa ra được những kết quả đạt được trong luận văn và định
hưởng phát triển tiếp cho giải pháp
tà
Trang 14CHƯƠNG 2 GIỚI THIỆU 2.1 Téng quan vé Single sign on
Hinh 1: Téng quan vé SSO [1]
Trước khi co SSO, đề truy cập vảo ứng dụng, hệ thông người ding phải
nhập tài khoản và mật khau Điều nay khiến trải nghiệm người dùng không tốt,
tốn thời gian, tăng nguy cơ mắt bảo mật Do đó hệ thông, website có sử dụng,
SSO sẽ đem lại nhiều thuận tiên cho người dùng, tăng tính bảo mật Ví dụ: Với
các địch vụ của Google cung cấp: Gmail, Youtube, Drive, Scholar, CHPlay
người dùng phải nhập thông tin tài khoản của dịch vụ để xác thực khi muốn truy cập, sử dụng Với SSO người dùng chỉ càn sử dụng 1 tải khoản Google để có thẻ
4 đăng nhập vả sử dụng tất cả các dịch vụ, ứng dụng của google Điều đó thực sự mang lại trải nghiệm tốt cho người dùng
Trang 152.1.2 Nguyên lý hoạt động của Single sign-on
Mô hình nguyên lý hoạt động của Single sign-on
1 Người dùng lần đầu truy cập domain!
2 Domain! redirect về trang login AuthServer đề xác thực người dùng
3 AuthServer thực hiện xác thực voi thông tin nhận được từ trang login
4 AuthServer thực hiện save cookie với thông tin xác thực của domain]
5 AuthServer send token va redirect vé domain]
6 Domain] xác thực với token nhận được cho phép người dùng truy cập
hệ thống,
được
7 Domain] thực hiện lưu trữ cookie với thông tin token xác thực nhận
8 Người dùng lần đầu truy cập domain2
9 Domain2 redirect về trang login AuthServer để xác thực người dùng
10 AuthServer get thông tin từ cookie ở bước 4 để kiểm tra xác thực
11 AuthServer send token vả redirect về domain2
12 Domain2 xác thực với token nhận được cho phép người dùng truy cập
hệ thống
được
13 Domain2 thực hiện lưu trữ cookie với thông tin token xác thực nhận
Trang 162.13 Kiến trúc SSO
Kiên trúc Đăng nhập một lân đơn giản liên quan đến một cơ quan xác thực
duy nhất Trong các kiến trúc S8O đơn giản, chúng ta cỏ thể có một máy chủ xác
thực với một cơ sở dữ liêu thông tin đăng nhập duy nhất:
Authentication Authority's Kingdom
Authentication Server
Hình 3: Kiến trúc SSO đơn giản trong một môi trường với một xác thực duy nhất
Chủng ta cũng cỏ thể cỏ nhiều máy chủ xác thực với nhiều cơ sở dữ liệu
thông tin nhân rộng như
Trang 17Hình 4: Kién mic SSO đơn giản trong một môi trường có nhiễu xác thực
2.1.4 Các hình thức triển khai SSO
Các hình thức triển khai SSO được phân loại dựa theo các tiêu chí
a) Địa điểm triển khai
—_8SO doanh nghiệp (Intranet/Enterprise SSO): cho phép kết nói nhiều hệ
thống trong cùng 1 doanh nghiệp SSO doanh nghiệp được thiết kế để giảm số lần người dúng phải đăng nhập tải khoản, mật khẩu vảo nhiều ứng dụng Mỗi máy trạm (máy tính để bản, máy tỉnh xách tay) sẽ được cung cấp 1 mã (token) de
quản lý quá trình xác thực
— SSO da ving mien (Extranet/ Multidomain SSO): cho phép kết nỗi nhiều hệ thông trong cùng 1 doanh nghiệp vả tất cả các ửng dung của đối tác
Người dùng có thể đăng nhập vào một doanh nghiệp và các doanh nghiệp khác
ma khéng cân phải đăng nhập với nhiều thông tin đăng nhập khác nhau
— SSO qua Internet(Internet/ Web SSO): dua trén hé thong web, cho phép
đăng nhập sử dụng đăng nhập một lân qua hệ thông web
b) Phương thức triển khai
Trang 18Câu trúc đơn gidn: sit dung thông tin đăng nhập, phân quyền riêng, đơn
giản cho từng người đứng Được thực hiện trong môi trường mạng nội bộ đẳng
nhất
— Cấu trúc phức tạp: sử dụng nhiều đăng nhập, phân quyền với một hoặc nhiều tập thông tin đăng nhập cho từng người đảng,
€) Loại thông tim đăng nhập
— Câu trúc phức tạp với một tập thông tin đăng nhập: có thể được triển
khai theo các phương thức sau
+ HỆ thống 8SO dựa vào ma (token): Trong hé thong SSO này, người dùng gửi thông tin đăng nhập cho cơ quan xác thực dựa trên mã thông báo, trong,
đó thông tin đăng nhập đã được kiểm tra với cơ sở dữ liệu thông tin đăng rhập Nếu thông tin đăng nhập của người dùng khớp với nhau, thì người dùng sẽ dược
trả lại bằng mã thông bảo Khi người dùng muốn truy cập vào một máy chủ ủng
dụng được quản lý bôi cơ quam xúc thực thứ Hai, n
thông báo Lương bự sẽ được
gửi dễ lẫy vẻ truy cập vào máy chủ ứng dụng Thánh công của quá trình nay phy thuộc vào sự tin tưởng của chính quyền xác thực
¡ Hệ thống SSO dua vao m4 (token) trên môi tudng HTTP: SSO dua
trên Token có thẻ được triển khai bảng cách sử dụng cookie trong môi trưởng,
TITTP Cookie là một tập hợp thông tin được cùng cấp cho trình đuyệt web bởi nảy chủ web và được lưu Irữ trong máy khách Cookies duoc sử dụng đề xác
thực có thể được mã hóa để giữ bí mật Sau đó, máy chủ có thể truy xuất cookie
và cưng cấp dich vụ tùy chỉnh cho khách hàng Hệ thống Kerberos cung cấp cơ
sở để xây dựng 88Q an loàn rong môi trường mạng, ty nhiền, nỗ cân cơ số hạ
tảng va cau hình phía máy khách Trong mỗi trường hé trg HTTP, cookie cỏ thể
được sử đụng để xây dung hé thing SSO và không cân cải đặt thêm hoặc câu
tỉnh Sự khác biệt lớn nhất giữa hệ thống Kerberos và hệ thống SSO hỗ trợ Cookies là trước đây sử dụng Cuộc gọi thú tục từ xa để vận chuyển vẻ xác thực, trong khi hệ thống sau sử dụng cookie để dong vai tro ma thong bao
+ HỆ thống 85O dua trén PKE Trong SSO dựa trên PK, các máy chủ/ tài nguyên và người đúng xác thực lẫn nhau bằng cách sử dụng các cặp khóa tương từng của họ Người đừng oó thé xác thực các máy chủ bằng cách thách thức các
máy chủ giải mã bắt ký tin nhẫn nào họ gửi dược mã hỏa bằng, khỏa chung cia
Trang 19xuấy chủ Tương lự, cáo may chủ có thể xác thực người dùng bằng cách thách thức anh ta giải mã tin nhắn họ gửi dược mã hỏa bằng khỏa chung của người đùng Là chủ sở hữu thực sự của khóa riêng chỉ có thế giải mã, xác thực lẫn nhau
tức là máy chủ xác thực nguời dùng và ngược lại xây ra Cúc cơ quan chứng
nhận của người dùng và máy chủ có thể khác nhau và nếu chủng khác nhau thì
phải có sự tỉn tưởng giữa cáo cơ quan chứng nhận
—_ Cầu trúc phức tạp với nhiêu tập thông tin đăng nhập:
| Dang bộ thông lim đăng nhập: Nhiều bộ thông lín cần thiết đẻ truy cập vào nhiều hệ thông dược che dâu bởi một bộ thông tin xác thực dé tac do giác rầng người ding chi can nhớ một bộ đuy nhất Phân mêm đẳng bộ hóa giúp người dùng thay đổi thông lin đăng nhập trong tôi cả các hệ thống và khi lục lượng chính sách, bằng cách tự dộng chuyên tiếp yêu cầu thay dỗi dến tất cả các
xuáy chủ xác thực có liên quan ví dụ: Pass Go
+ Bộ nhớ dộm thông Iin phía chien: Nó cho phép người dùng lưu trữ các
thông tin nhạy cám như thông tin đăng nhập (vì dụ: 1D nguoi ding vả mật khẩu)
cân thiết cho cáo trang web hoặc tài nguyên họ truy cập trong mạng Những thông tin đăng nhập được lưu trữ trong thư mục dặc biệt gọi là hàm Với thông
tin được lưu trữ này, hệ thông người dùng có thể tự động đăng nhập an toản vào
cáo trang web và máy tính trên mạng của họ mã không yêu cầu họ phải nhớ thông Hm tát cả các thời gián Kho tiền có thể lưu trữ tải cả các loại thông tin
đăng nhập như mật khâu, chứng chỉ, rã thông báo, v.v (ví dụ: Trình quan ly
thông tin Windows),
+ Bộ nhớ độm thông tin phía tnáy chữ: Cơ chế luu trữ thông lin xác thực
phía máy chú giống như kiến trúc bộ đệm thông tin xác thực phia máy khách, chỉ
khá chau la thong tin đăng nhập được lưu trữ trong máy chủ thay vì ruáy khách
Trang 20đ) Giao thức: phụ thuộc vào giao thức triển khai 38G
— ime} Protocols
dinh 5: Các hình thức triển khai SSO
2.15 Các giao thức phục vụ triển khai SSƠ
2.1.5.1 OAuth2
OAuth2 cùng cấp quyền truy cập đã được ủy quyển an toàn (secure
delsgateđ aocess), điển đó có nghĩa là một ứng dụng hay một client có thể thao
tác hoặc Iruy cập các tài nguyên lrên một server thay mặt cho ruột người dùng,
xmà không cần người sử dung phải chia sẻ thông tin tải khoản của ho với ứng đụng [2]
Sơ đồ luỗng hoạt động của Oauth 2:
a) Client/Application yéu cdu uy quyền để truy cập vào máy chú tài
nguyén (resource server) thang qua user
bộ Nếu user ủy quyền cho yên cầu trên client 3 sẽ nhận dược ủy quyển từ phía người dúng (dưới dạng một chuéi ky tu ma nao de ching han)
c) Client piti théng tin dinh đanh (TD) của mình kèm theo ủy quyền
của user tới máy chủ phản quyền (Authorization Server)
đ)Nếu thông tia định danh được xác thực và ủy quyển hợp 1é, Authorization Server sé tA vé cho img đựng mã xác thực (aocess token) Đến dây quá trình ủy quyền hoàn tất
#) Tể truy cập vào tài nguyên từ máy chủ tài nguyên và lẫy thông tin, ứng
dụng sẽ phải đưa ra mã xác thực để xác thực.
Trang 21Ð Nếu mã xác thực hợp lê, máy chủ tài nguyên sẽ trả vẻ dữ liệu của tải
nguyên đã được yêu câu cho client
Abstract Protocol Flow
1 Authorization Request User
2 Authorization Grant ieee Onan)
len
4 Access Toker eae
OpenID Connect (OIDC) được mỏ tả như một lớp nhân đạng ở trên
OAuth2, cung cấp các phần mở rộng khác nhau, trong đó phân lớn nhất là xác
thực Vì vậy, giao thức nảy cung cấp ủy quyền (authorization) cũng như xác
thực (authentication) Các luỏng trong OpenID Connect rất giỏng với các luông,
của OAuth2; sự khác biệt chỉnh là IđP và mã xác thực (ID token) được thêm vảo
141
a) Cac thanh phan ctia OpenID Connect
Trang 22Client OpeniD Provider
End-User
Hình 7- Các thành phan ctia OpenID Connect [4]
~ Người dùng muốn truy cập vảo một dich vu của ứng dụng Do đó,
người ding cung cấp thông tin xác thực cho ứng dụng Ngoài ra, người đủng có
the phan quyên cho ứng dụng có thẻ truy cập tài nguyên của mình thông qua các
thông tin ở tên của người dùng
— Ứng dụng được ủy quyền để xác thực người dùng Ứng dụng có thẻ yêu
cầu mã xác thực (ID token) (bao gồm xác thực của người dùng) vả mã truy cập
(aecess token) (nêu cỏ) đề truy cập các tài nguyên được bảo vệ của người dùng
— OpenID Provider: sinh ra ID token (bao gồm các thông tin của người
dùng) và access token (nêu có)
b) Các luồng xử lý của OpenID Connect
— Luéng phan quyền (Authorization Code Flow)
Trang 231 Authentication Request to Authorization Endpoint
2 User Authentication
User 3 Redirection to Client with Authorization Code
lẰ————— «eIEI:'enneeorrr
số (eee 4 Access Token Request to Access Token Endpoint
‘Client (RP) 4 5 Access Token Response CA SSO (OP)
6 User Info Request to User Info Endpoint
7 User Info Response
Hình 8: Hoạt động của Luông mã ủy quyền
+ Luông mã ủy quyên hoạt động như sau
“Ứng dụng khách gửi yêu câu xác thực đến Điểm cuỗi cấp phép
Điểm cuối ủy quyền xác thực người dùng vả nhận được sự đồng ý của
người đủng đề chia sẻ thông tin phạm vi được yêu câu với Khách hàng
" Điểm cuổi ủy quyền chuyên hưởng người dùng đến Máy khách củng với mã ủy quyền
* Khách hàng gửi mã ủy quyền đến Token Endpoint và yêu cầu Access
Token
* Token Endpoint cho phép yéu cau va tao Access Token va ID Token
Nó cũng tạo Mã làm mới, nêu được định câu hình
= Khach hàng gửi Mã truy cập đến Điểm cuối Userlnfo
" UserInfo Endpoint xác thực yêu cầu và trả vẻ xác nhận quyên sở hữu về
người dùng
+ Điểm cuối ủy quyên: Điểm cuối ủy quyền xác thực vả ủy quyền cho người đủng bằng cách sử dụng yêu câu xác thực máy khách Điểm cuối xác thực
người dùng đẻ thiết lập danh tỉnh của họ, cho phép người đủng, yêu câu sự đồng
ý của họ và sau đó cấp cho họ quyên truy cập vảo tài nguyên
+ Quy trình điểm cuỏi cấp phép: Máy chủ ủy quyền thực hiện các bước
sau tại Điểm cuối ủy quyền:
Trang 24= Ứng dụng khách gửi một yêu cầu xác thục ở định dang được chỉ định đến Điểm cuối cấp phép
= May chủ ty quyén tại Điểm cuối ủy quyển xác thực yêu câu xác thực
và sử dụng các tham số yêu cầu để xác định xem người dùng dã dược xác thục
clrwa
" Nếu người dùng khỏng được xác thực, Máy chủ ủy quyền xác thực
người dùng vả khi xác thực thành công, nó sẽ chuyển hưởng người dùng dến trang chấp thuận xác nhận xem thông tin phạm vi được yêu cầu có thể được chia
sẽ với Máy khách hay không
"Nếu người dùng dã dược xác thực, Máy chủ ủy quyền sẽ chuyên hưởng người dùng đến trang chấp thuận xác nhận xem thêng tin phạm vi được yêư cầu
có thể được chía sẽ với Máy khách hay không
"Nếu người dùng nhấp vào Cho phép lrên trang chấp thuận, Máy chủ Ủy
quyên sẽ gửi phản hôi xác thực cũng với mâ ủy quyển tới LIRTI được chỉ định
trong yêu cầu xác thực
= Néu người dùng nhấp vào Từ chối trên trang chấp thuận hoặc xác thực
+không thành công, trình duyệt sẽ được chuyến hướng đến Ung dụng khách với
mã lỗi lương ứng được thêm vào phân hỏi xả
c thực Nếu ređrco, URI không
hợp lệ, trình duyệt sẽ không được chuyển hưởng đến Máy khách
+ Các thông số được hé tro:
" rcsponse type: Xác dịmh quy trình xử lý ủy quyền phải được sử dụng,
= soope: Xác định phạm vi của yêu cầu truy cập Có thể chỉ định nhiều
giả trị được phân tách bang dau cach
" clent ¡d: Xác định ID khách hàng,
= redirect_uri: Chi định URI má phán hổi xác thực phải được gửi đền
Giả trị này phải là URI đã được chi định trong quá trình đăng ký khách hàng,
" rcsponsc muodc: Chỉ định xem phn hồi xác thực cho rodireet uni phải
được gửi dưới dạng tham số truy vấn hay được mã hóa đưới đạng giá trị biểu mẫu HTML duoc gửi trong phương thức POST Theo mặc định, Ludng ma ty quyền sử dụng truy vấn làm chế độ phẩm hồi Để gửi phân hỗi ở đụnh dạng truy vẫn, bạn không cân gửi tham số nảy trong yêu cầu xác thực Để gửi phản hồi
Trang 25được mã hỏa dưới dang cac gia tri bieu mau HTML, hay chi dinh form_post lam giả trị trong yêu câu xác thực
+ Các phương thức HTTP được hỗ trợ: Điểm cuối cấp phép hỗ trợ các
phương thức GET và POST
* Doi với GET, yêu cầu ủy quyền chửa URL điểm cuỗi ủy quyền vả các
tham số truy vấn bắt buộc ở định dạng sau:
hitps:/autharization endpomt_LJRL?response type=code&scope=scope_value&client
id=clientID_value&state=state_value
&redirect_uri=redirect_URL_value&nonce=nonce_value&code_challenge=code_challe
nege_value&code_challenge_method=plain or S256 value
* Déi voi POST, yêu cầu xác thực có định dạng sau
hps://audhorization_ endpoint_URIL?response_ Iype=codeẩseope=seope_value&client id=clientID vale&state=state_value&redireet uri=redirect URL, valse&nonee=nonee
_value&code_challenge=code_challenege_value&code_challenge_method=plain or
$256 value
+ Điểm cuối mã thông bảo (Token Endpoint): May chi ủy quyên sử dụng,
mã ủy quyên để tạo mã thông bảo truy cập và nhận dạng Khách hàng gửi Mã ủy
quyền trong một yêu cầu mã thông báo đền Điểm cuỗi mã thông báo bằng cách
sử dụng mã ủy quyên làm loại cấp cấp Nếu loại máy khách là bí mật, máy
khách phải xác thực tại Token Endpoint bằng phương pháp xác thực được chỉ
định trong quả trình dang ky may khách
— Luéng an (Implicit Flow)
+ Client giti yéu cau xác thực đến Authorization Server
+ Authorization Server xác thực người dùng Nếu người dùng được xác
thực, Authorization Server sẽ gửi một ID token va mét Access token (néu c6)
+ Client sir dung ID token dé truy cap thông tin người đủng,
— Luéng lai (Hybrid Flow)
+ Client giti yéu cau xac thure den Authorization Server;
+ Authorization Server xác thực người dùng Nếu người dùng được xác
thực, Authirization Server gửi Authorization code và một vài thông số bỏ sung;
+ Client st dung Authorization Code de lay ID Token va Access token
Client sử dụng ID Token đề truy cập các thông tin của người dùng
Trang 262.1.5.3 SAML
Security Assertion Markup Language (SAML) 1a mét giao thức phục vụ
xác thực và phân quyền Sử dụng SAML, một service có thê liên hệ với một IdP
để xác thực người dùng muốn truy cập một nội dung bảo mật [4]
Luéng xử lý của giao thức SAML như sau:
Hình 9: Sơ đồ luông xử lý của giao thức S4ML [4]
a) 1: Mét client muon str dung 1 dịch vụ
b) 2: Dé truy cap dich vu, client giti mét tin nhắn đến IđP và máy chủ AS
để yêu cầu quyền truy câp ứng dụng
e) 3: IdP hoặc may chủ AS yêu cau client cung cấp thông tin đăng nhập d) 4; Client cung cap thông tin đăng nhập cho IđP hoặc máy chủ AS
e) 5: Nếu thông tin đăng nhập lả chỉnh xác, IđP liên hệ với AS vả yêu cầu
truy cập các dữ liệu được truy cập
Ð 6: AS gửi lại mã truy cập cho IdP
g) 7: IđP gửi thông tin về dịch vụ mà người dùng đã xác thực và một mã
truy cập
h) 8: Người dùng đăng nhập vào dịch vụ vả truy cập các dữ liêu được cho
phép
Trang 272.1.5.4 LDAP
The Lightweight Directory Access Protocol (LDAP) la mét giao thire sit
dụng để truy cập các dịch vụ thư mục phân tán LDAP thường được kết hợp với
m6t ative directory [4]
1, Search
— | Search operaton y
He <4 second ery tuned «c—— `*%*mlmyeimB_ —_ : returned —
LDAP sia 4, Nth entry retumed
Hình 10: Sơ đồ luông xử lý của giao thức LDAP [4]
Giao thức LDAP bao gẻm các client LDAP và một mảy chủ LDAP
LDAP client gửi một message chửa một yêu cầu về một thực thẻ nhất định và gửi đến máyc hủ Máy chủ xử lỷ yêu cầu này, tìm trong thư viện và thấy nhiều thực
hteer.Các thực thể này được gửi đến client theo các message Méi message là
thông tin về một thực thẻ
Việc xác thực sử dụng LDAP theo 2 cach:
a) Máy chủ 1 gửi đến máy chủ 2 các thông tin về người dủng được xác
thực Máy chủ 2 sẽ chọn máy chủ 1 để xác thực các thông tin đăng nhập
b) Máy chủ 1 gửi các các thông tin xác thực người dùng đến máy chủ 2
Máy chủ 2 sẽ tự thực hiện việc xác thực người dùng.
Trang 28Central Authentication Server (CAS) la m6t giao thie phue vu viée SSO
trên nên tảng web CAS lả một giao thức mở cỏ thẻ tương thích với các client viết bởi ngôn ngữ Iava, Net, PHP, Perl, Apache, uPortal [4]
Giao thức CAS bao gồm hai thành phan may cha CAS va CAS client
a) Máy chủ CAS là một máy đơn phục vụ việc xác thực Máy chủ này biết
mat khâu người dùng và thực hiện 2 nhiệm vụ:
— Xác thực người dùng;
— Truyền các thông tin của người dùng được xác thực tới CAS client
Một phiên SSO bắt đầu khi máy chủ sinh ra mét ticket cho phép đăng
nhập sau khi người dùng xác thực thành công Một ticket dich vu được gửi tới
dịch vụ sau khi nhận được một yêu câu từ người dùng Chient kiểm tra thông tin
của ticket dich vu
b) CAS client la cac nha cung cấp dịch vụ sử dụng CAS va co thé ket noi
với máy chủ
Trang 29Database Active Directory
Hình 12: Luéng xit ly: ctia giao thite CAS [4]
2.1.6 So sánh các giao thức
2.1.6.1 Oauth2 va OpenID Connect
a) Oauth 2 chỉ phục vụ việc xác thực cỏn OpendID Connect c6 bé sung
thêm tính năng phân quyền;
b) OpenID Conneet không cỏ luống đẻ chia sẻ dữ liêu giữa ứng dụng con
với Oauth2, bất kỳ thông tin của người dùng trên một website cỏ thẻ chia sẻ với
một website khác
2.1.6.2 OpenID Connect va SAML
a) OpenID Connect duge str dung cho các ứng dụng web, ứng dung gốc
(native app) và các ứng dụng di động trong khi SAML chỉ sử dụng cho các ứng
vả bảo mật ở mức độ tin nhắn cỏ thể là một tủy chọn
Trang 302.1.6.3 OpenID Connect va LDAP
C OpenID Connect vả LDAP dêu sử dụng để xác thực và phân quyền LDAP là giải pháp hướng đến doanh nghiệp còn OpenID connect là giải pháp về wcbTLDAP chia sẽ thông tn về người dùng, hệ thống, kết nối mang va các ứng
dụng bên trong một mạng, Với LDAP, các dữ liệu người dùng được lưu trong một thư viện có chúa các tài khoản người dùng OpenID Connect không làm việc trực
tiếp với thư viện hay cơ sở dữ liêu mả yêu cầu một dịch vụ riêng biet dễ xác thực
người dùng
2.1.6.4 OpendED Connect vs CAS
CAS sử dụng dễ xác thực SSO đối với người dùng nội bộ còn OpenID Connect có thể sử dụng cả cho việc xác thực liên đoàn
2.1.7 Một số giải pháp SSO hiện nay 2.1.7.1 CAS / Central Authentication Service
— Nhà phải triển: Apereo
— Loại hình: miễn phí & mã nguồn mê (Apache 2.0)
— Mô tả: Giao thức và triển khai máy chủ / máy khách SSO nguồn mở với
sự bỗ trợ cho các giao thức CAS, SAMLI, SAML2, OAufh2, SCIM, OpenID
Connect và WS-Eed với tư cách là nhà cung cấp nhận dạng và nhà cung cấp dịch
vụ với các chức năng phụ trợ khác có sự đồng ý của người đừng, truy cập quản
Tý, mạo danh, điều khoản sữ dụng, v.v Được cấp phép theo Apache 2 0
— Central Authentication Service (CAS) la méL ma ngudn md cung cap
giải pháp SSO được phát triển bởi dại học Yale từ 12/2004 Giao thức CAS bao
gém ít nhất 3 bêm: Irinh duyệt Web của Client, các ứng dụng Web yêu cầu
chứng thực, máy chủ CAS
a) Ưu điểm
— Giải pháp OpenSource được cộng đồng sử đụng đông đáo, mạnh mẽ, tài liệu phong phú
Là một giải pháp tốt với sự hỗ trợ các thư viện da ngôn ngữ ( PHP,
NET, JAVA, RUBY ), hỗ trợ đa giao thúc (CAS, SAMLI, SAML2, OAuth2, SCIM, OpenID Conneol ) khiến cho việc xây dựng hệ thông cả 2 phía ChenL và
Server có nhiều sự lựa chọn
b) Nhược điểm
Trang 31Chị phí để xây dựng hệ théng SSO với giái pháp CAS cao do được viết
bởi ngôn ngữ lava
— Việc phát triển ở Client phụ thuộc vào thư viện được cung cấp do vậy
khiến cho việc cập nhật, phát triển khá là khó khăn Việc cập nhật nghiệp vụ, thư
viện cho toàn bộ các Client kết nổi mỗi khi muốn scale hệ thông khá là khó khăn
và có chỉ phi cao Vì vậy giải pháp không phủ hợp với những hệ thông nặng về
nghiép vu, việc cập nhật, bố sung nghiệp vụ diễn ra thường xuyên
2.7.2 Active Directory Federation Services:
— Nha phat wién: Microsoft
— Loai binh: déc quyển
— Mô tả: Hệ thống dựa trên yêu cầu và liên đoàn ứng đụng
2.1.7.3 Facebuvk connect
— Nhà phát triển: Facebook
— Loại hình: độc quyển
— Mé ta: Facebook SSC cho các bên thứ ba được T'acebook kích hoạt
— Facebook Connect là một Clesesouree cùng cấp giải pháp SSO của
Facebook được ra đời vào 12/2008 Giải pháp cho phép người đủng đăng nhập
vào các trang web, img dung hoặc tiết bị của bên thứ 3 bằng cách sử dụng tải
khoản faoebookc
Khi người dùng cho phép, ứng dụng 3 được phép truy cập thông tin cả nhân trên facebook: ITọ tên, hình ảnh, bài việt, thông tin bạn bè
a) Uu diém
— Giải pháp có độ an toàn, bảo mật cao vì được phát triển bởi Facebook
— Với việc Client hé tro các thư viện đa nên tảng (Android, Web ), đa
ngôn
— ngữ (Java, PHP, JS ) khiển cho việc tích hop voi hé thang Facebook
nhanh chóng và dơn giản
— Công đồng người sử dụng đông dio (2,234 tỷ người dùng tính đến hết
quý 1/2018)
Giải pháp phủ hợp với mục tiêu tích hợp SSO cho những hệ thống
snuén giảm bớt các nghiệp vụ liên quan đến người dùng, mong muốn có một giải
pháp báo mật, đem lại sự trải nghiệm cao.
Trang 32by Nhược điểm
— Facebook Canneet là một giải phap SSO tốt được phát triển bởi Facebook Tuy nhiên do là một mã nguồn dòng, chỉ căng cấp giải pháp tích hợp cho bên thứ 3 khiến cho việc mở rộng hệ thông khá là khó khăn Sự phụ thuộc
hoàn toàn vào giải pháp, chính sách cña Facebook cũng là một rào cân lớn Do vay Facebook CommeeL không phải là mội sự lựa chọn hàng đầu với mục tiêu xây dựng, phát triển một hệ thông SSO cả 2 phia Server va Client
2.1.8 Keycloak (Red Hat Single Sign-On):
— Nha phat triển: Red Hat
cia Red Hai là phiên bản của Keycloak mà
Redilat cung cấp hỗ trợ thương mai
2.1.8.4 WSO2 Identity Server
Nha phat triển WSO2
Loại hình: Lree & Open Source (Apache 2.0)
— Mé ta SAML 2.0, OpenID, OpenID Connect, OAuth 2.0, SCIM, XACML, Passive Federation
2.19 Lgiich cia SSO
SSO mang lại các lợi ich như sau:
a) Giảm thời gian người đừng thực hiện trong các hoạt động đăng nhập vào các tên miễn riêng lê, bao gồm giảm khả năng các hoại động đăng nhập đó không thành công
tỳ Cải thiện bảo mật thông qua việc giảm nhu cân cho người đừng xử lý
và ghỉ nhở nhiều bộ thông tin xác thực
©) Cải thiện báo mật thông qua nâng cao kỹ năng cúa quán trị viên hệ
thông để đuy trị tính toàn vẹn của tải khoản người đùng
đ) Bảo mật trêu lắt cả ác cấp đăng nhập, thoái, truy cập vào hệ thắng mà
không gây bắt tiện cho người dùng nhắc lại
e) Các nhà phát triển ứng dụng không phải thực hiện việc bảo mật danh
tỉnh trong ứng dựng của họ