B GIÁO D
O
I H C DÂN L P H I PHÒNG
-------o0o-------
ÁN T T NGHI P
NGÀNH CÔNG NGH THÔNG TIN
H I PHÒNG 2013
I H C DÂN L P H I PHÒNG
-------o0o-------
TÌM HI
PM TL N
(SINGLE SIGN ON) VÀ TH NGHI M D A TRÊN
N PHPCAS
I H C DÂN L P H I PHÒNG
-------o0o-------
TÌM HI
PM TL N
(SINGLE SIGN ON) VÀ TH NGHI M D A TRÊN
N PHPCAS
ng d n:Th.s Bùi Huy Hùng
Sinh viên th c hi n:
Mã s sinh viên:
1351010001
B GIÁO D
O
C NG HÒA XA H I CH
I H C DÂN L P H I PHÒNG
T NAM
c l p - T do - H nh phúc
-------o0o-------
NHI M V THI T K T T NGHI P
Sinh viên:
L p:
CT1301
tài:Tìm hi
d a trên
n phpCAS.
Ngành: Công Ngh Thông Tin
p m t l n (single sign on) và th nghi m
NHI M V
TÀI
1. N i dung và các yêu c u c n gi i quy t trong nhi m v
tài t t nghi p
a. N i dung
Tìm hi u v
p m t l n (Single Sign On).
Tìm hi u v CAS (Central Authentication Service).
Th nghi
phpCAS.
t CAS, ki m th v i website PHP d
Nghiêm túc th c hi n các nhi m v và n
n
ng d n.
b. Các yêu c u c n gi i quy t
Lý thuy t
N
lý thuy t c
N
p m t l n (Single Sign On).
t CAS và các th c tri n khai Single Sign On.
Th c nghi
t CAS và th c nghi m v i website PHP
2. Các s li u c n thi
m th c t p.
tính toán.
CÁN B
NG D
TÀI T T NGHI P
ng d n th nh t:
H và tên: Bùi Huy Hùng
H c hàm, h c v : Th
i H c Dân L p H i Phòng
N
ng d n:
Tìm hi u v Single Sign On d a trên Central Authentication Service
Th nghi m v i website PHP s d
n phpCAS
ng d n th hai:
H
H c hàm, h c v
N
ng d
tài t t nghi
Yêu c u ph
n nhi m v
n nhi m v
Sinh viên
Cán b
ng d
Th.s Bùi Huy Hùng
H
HI
NG
n H u Ngh
PH N NH N XÉT TÓM T T C A CÁN B
Tinh th
c
NG D N
tài t t nghi p:
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
ng c
tài t t nghi p (so v i n i dung yêu c
ra
trong nhi m v
tài t t nghi p)
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
3.
m c a cán b
ng d n:
m ghi b ng s và ch )
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
Cán b
ng d n chính
(Ký, ghi rõ h tên)
PH N NH
T T NGHI P
A CÁN B CH M PH N BI
tài t t nghi p (v các m
th c t ).
thuy
TÀI
lý lu n,
m c a cán b ph n bi n
(
m ghi b ng s và ch )
.............................................................................................................................
.............................................................................................................................
Cán b ch m ph n bi n
(Ký, ghi rõ h tên)
án t t nghi p
p H i Phòng
ch
y giáo, cô giáo Khoa Công ngh
i h c Dân l p H i Phòng, nh
chúng em nh ng ki n th
u ki
y d , trang b cho
n, c n thi t trong nh
cv
em có
tài t t nghi p c a mình.
c bi t em xin bày t lòng bi
Hùng, th y
c nh t t i th y giáo Ths. Bùi Huy
ng d n, ch b o t n tình trong su t th
tài t t nghi p.
Em xin c
y
tr em r t nhi
Con xin g
n cha m l
b o
án.
c, nh
sinh ra và d y
n ngày hôm nay. C
tôi nh ng lúc tôi m t m
M
ts cc g
ng l
ng viên cho
tôi c g ng.
hoàn thi n báo cáo t t nghi p song do kh
n ch nên bài báo cáo v n còn nhi u thi u sót. Vì v y em r t mong nh n
c nh ng
a các th y cô và b n bè.
M t l n n a em xin chân thành c
H i Phòng, Ngày 04 tháng 11
Sinh viên
- CT1301
1
án t t nghi p
p H i Phòng
M CL C
L IC
.......................................................................................................................1
M C L C ............................................................................................................................2
DANH M C HÌNH .............................................................................................................4
DANH M C B NG.............................................................................................................6
DANH SÁCH CH
L I NÓI
VI T T T .........................................................................................7
U......................................................................................................................8
I THI U V
P 1 L N (SINGLE SIGN ON). 9
1.1. T ng quan v SSO. [1]........................................................................... 9
1.2. L i ích mà SSO mang l i. ...................................................................... 9
1.3. M t s v
ng g p khi tri n khai SSO..................................... 10
1.4. Các gi i pháp SSO hi n nay.[2] ........................................................... 11
N M M NGU N M CENTRAL AUTHENTICATION
SERVICE............................................................................................................................16
2.1. Gi i thi u v ph n m m ngu n m (Opensource).[3] ......................... 16
2.2. D ch v ch ng th c trung tâm (Central Authentication Service).[4] .. 17
2.2.1 T ng quan v CAS. ........................................................................ 17
2.2.2 L ch s hình thành. [5] ................................................................... 18
2.2.3 Các phiên b n c a CAS. ................................................................ 19
2.2.4 CAS Protocol. ................................................................................ 19
2.2.5. T ng k t. ....................................................................................... 27
2.2.6. CAS Entities.................................................................................. 29
2.2.7. Nguyên t c ho
ng ................................................................... 32
2.2.8. Ki n trúc t ng quan CAS. ............................................................. 37
2.3. Ruby CAS.[6]....................................................................................... 40
2.4. CAS Client. .......................................................................................... 41
2.4.1. Gi i thi u ngôn ng xây d ng website phía client. ...................... 41
n phpCAS.[7]........................................................................... 41
- CT1301
2
án t t nghi p
p H i Phòng
2.5.1. phpCAS requirements. .................................................................. 41
2.5.2 phpCAS examples.......................................................................... 43
2.5.3. phpCAS logout.............................................................................. 44
2.5.4. phpCAS troubleshooting............................................................... 45
2.6. V
v b o m t cho SSO................................................................. 46
C NGHI M. .....................................................................................48
t h th ng. .................................................................................. 48
3.1.1.
u ki n c n thi t. ...................................................................... 48
3.1.2. Gi i thi u...................................................................................... 48
3.1.3. Cài d t CAS-server. ..................................................................... 49
3.1.4. Tích h p CAS client vào h th ng............................................... 64
3.2. Các pha trong h th
p......................................... 70
K T LU N.........................................................................................................................75
TÀI LI U THAM KH O.................................................................................................76
PH L C............................................................................................................................77
Ph l c A: CAS ph n h
Ph l c B: Chuy
XML.................................................... 77
ng an toàn. ............................................................ 79
Ph L c C: Ph n code x
p SSO h th ng 1............................ 80
Ph L c D: Ph n code x
p SSO h th ng 2. .......................... 83
- CT1301
3
án t t nghi p
p H i Phòng
DANH M C HÌNH
Hình 1.1: Single sign on là gì? .......................................................................... 9
i dùng truy c p vào ng d
ng th c v i CAS. .. 33
i dùng truy c p vào ng d
ng th c v i CAS
server. .............................................................................................................. 34
Hình 2.3: Login flow....................................................................................... 38
Hình 2.4: Proxy flow....................................................................................... 39
Hình 2.5: logout flow. ..................................................................................... 40
Hình 2.6: Nguyên t c ho
ng phpCAS. ..................................................... 43
v trí CAS trong h th ng m ng. .......................................... 47
Hình 3.1: T i RubyInstaller............................................................................. 49
c1. .......................................................... 50
c2. .......................................................... 50
c 3. ......................................................... 51
c4. .......................................................... 52
Hình 3.6: Gi i nén Development Kit .............................................................. 52
c 5. ......................................................... 53
Hình 3.8: Cài d t Bunlde................................................................................. 53
Hình 3.9: T i mã ngu n RubyCAS................................................................. 54
Hình 3.10: Tri
c1. ........................................................ 54
Hình 3.11: T
i dùng cho RubyCAS xác th c........................... 57
Hình 3.12: T
i dùng cho RubyCAS xác th c 2........................ 58
Hình 3.13: Tri
c 2. ....................................................... 58
Hình 3.14: Tri
c 3. ....................................................... 59
Hình 3.15: Tri
c 4. ....................................................... 59
Hình 3.16: Tri
c 5. ....................................................... 60
Hình 3.17: Ki m th
t RubyCAS. .......................................... 63
Hình 3.18: C u trúc b ng casserver_lt ............................................................ 63
Hình 3.19: C u trúc b ng casserver_pgt ......................................................... 63
Hình 3.20: C u trúc b ng casserver_st............................................................ 63
Hình 3.21: C u trúc b ng casserver_tgt .......................................................... 63
Hình 3.22: C u trúc b ng schema_migrations. ............................................... 64
Hình 3.23: Trang ch website 1. ..................................................................... 64
i dùng website 1. .......................................... 65
p h th ng website 1. ........................................... 65
Hình 3.26: Thêm m i bài vi t. ........................................................................ 66
4
- CT1301
án t t nghi p
p H i Phòng
Hì
i dùng. ................................................................. 66
Hình 3.28: C u trúc CSDL website 1. ............................................................ 67
Hình 3.29: Trang ch website 2. ..................................................................... 67
i dùng website 2. .................................................... 68
p h th ng website 2...................................................... 68
Hình 3.32:Trang upload video website 2. ....................................................... 69
Hình 3.33: C u trúc CSDL website 2. ............................................................ 69
Hình 3.34: Tích h p phpCAS vào website 1. ................................................. 70
Hình 3.35: Tích h p phpCAS website 2. ........................................................ 70
Hình 3.36: Lu ng x lý khi client xin xác th c thông tin t CAS server....... 72
p khi user không t n t i CAS server. ......................... 73
lu ng pha 6 . ....................................................................... 74
- CT1301
5
án t t nghi p
B
B
B
B
B
B
B
p H i Phòng
ng 1.1: Danh sách các gi i pháp SSO......................................................... 11
ng 2.1: T ng h p các URI. ......................................................................... 27
ng 2.2: Danh sách tham s phpCAS. .......................................................... 44
ng 3.1: Thông tin table casserver_lt............................................................ 60
ng 3.2: Thông tin table casserver_pgt......................................................... 61
ng 3.3: Thông tin table casserver_st. .......................................................... 61
ng 3.4: Thông tin table casserver_tgt.......................................................... 62
- CT1301
6
án t t nghi p
p H i Phòng
DANH SÁCH CH
VI T T T
SSO
Single Sign On
CAS
Central Authentication Service
URI
Uniform Resource Identifier
URL
Uniform Resource Locator
HTTP
Hypertext Transfer Protocol
HTTPS
Hypertext Transfer Protocol Secure
SSL
Secure Sockets Layer
ST
Service Ticket
PT
Proxy Ticket
LT
Login Ticket
PGT
Proxy-granting ticket
PGTIOU
Proxy-granting ticket IOU
TGTIOU
Ticket -granting ticket IOU
TGT
Ticket-granting ticket
TGC
Ticket-granting cookie
CSDL
d li u
- CT1301
7
án t t nghi p
p H i Phòng
L
U
ng các d ch v cùng nhau chia s d li
ng phát tri n chung c a công ngh thông tin,m
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 h
u này s x y ra nhi u r i
i dùng ph i ghi nh các tài kho
a, các ng d ng
và d ch v công ngh thông tin ngày càng nhi
ng. Do v y nhu c
nh p m t l n cho các ng d ng và d ch v này là không th thi u.
l n (Single Sign On)
pm t
c nhi u t ch c, công ty trên th gi i nghiên c u và
phát tri n, tuy nhiên t i Vi
c còn khá m i.
c tìm hi u và th c nghi m h th
nh
p m t l n. V i
c, em hy v ng s
công tác phát tri n khoa h c. M
c u k thu
t ph n nh vào
u
áp d
cv
p 1 l n và nghiên
p m t l n d
n
phpCAS.
Xin chân thành c
- CT1301
8
án t t nghi p
p H i Phòng
(SINGLE SIGN ON).
1.1.
[1]
SSO là m
xác th c yêu c
v i m t tài kho n và m t kh
vi c (session).
p vào ch m t l n
truy c p vào nhi u ng d ng trong 1 phiên làm
Hình 1.1: Single sign on là gì?
1.
p m t l n (SSO), m
is d
i nh p các
tài kho n và m t kh u cho t ng ng d ng m i khi h
p vào các ng d ng
khác nhau ho c các h th ng trong cùng m
u này rõ ràng có
th t n nhi u th
c bi
ng doanh nghi
i gian
là ti n b
i gian là lãng phí b i vì nhân viên ph
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 .
c th c hi n thông qua m t môbi t ho
t c a ngõ vào t t c các ng d ng yêu c
- CT1301
c ph n m m riêng
p. Các
9
án t t nghi p
mô-
p H i Phòng
i s d ng và sau qu n lý truy c p vào các ng d ng khác. Nó
ho
c u.
t kho d li u chung cho t t c
c yêu
Ví d :
M t ví d v m t module SSO là h th ng c
i dùng
ch c
ng nh p 1 l n thì h có th s d ng các d ch v c a Google hay Yahoo
p1l nn
Trong khi SSO là r t ti n l i, m t s nh n th
tv
an ninh
c a riêng mình. N u h th ng SSO b t
t k t n công có quy n truy
c p không gi i h n cho t t c các ng d ng ch ng th c c a các module SSO.SSO
ng là m t d án l n c n l p k ho ch c n th
c khi th c hi n.
1.
- Có ph i n u s d ng SSO s c i thi n v
b o m t?
Xin tr l i r ng:
p m t l n ( SSO ) là m
i. SSO t nó không th c s
c i thi n b o m t và trên th c t , n u không tri
b om
c s d ng nhi
i s d ng thu n ti n.
làm gi m
th ng c a công ty nhân, v i m i m t yêu c u m t kh u riêng c a
mình, SSO giúp gi m b t gánh n ng ph i dành th
p vào t ng h
th
ng th i, n u SSO b t
i cho tin t c kh
p vào toàn b h th ng s d ng SSO. M t khác, SSO có nh ng l i ích
nhi
ng r i ro nó mang l i.
Vì v y, m c dù SSO không ph i là thu c ch a bách b nh b o m t trong và
c
c vào m
om t
thông tin doanh nghi
c p c th .
H th
ng d a trên các ng d ng ph c t p h th ng qu
IBM Tivoli ( ho c d a
trên ph n c ng thi t b t hãng Imprivata Inc(1 hãng cung c p gi i pháp SSO n i
ti ng ). K t qu là, h th ng SSO có th t p trung xác
th c trên các máy ch
c bi t. H
u này b ng cách s d ng các máy ch
chuyên d
gi các module SSO. Các máy ch ho
i gác
- CT1301
10
án t t nghi p
c ng,
p H i Phòng
m b o t t c các xác th
theo các ch ng ch
h th ng SSO. H th
u tiên thông qua máy ch SSO,
xác th c các ng d ng c th
i ph i l p k ho ch c th và chi ti
c
ký v i
ki
n truy c
ch
i các h th
ph n c ng thích h p thì nó s
o m t).
Ngoài ra, h th
c
ng
c
và các khóa mã hóa, làm cho chúng là m t thách th
i v i tin t c. H th ng SSO
n m sâu trong ki n trúc IT c
ng gi u m t cách an toàn sau nhi u
b
ng l
u này s giúp SSO an toàn h
- Các y u t c
c khi tri n khai SSO là gì?
p m t l n (SSO) có th là m t gi i pháp cho tình hình c a b n,
t c ph thu c vào hoàn c nh c a
tri n khai,
m và nh ng r i ro c a nó.
m
c bi t là nhu c u b o
m chính là:
-
Thu n ti
d ng.
i s d ng ch c
p1l
s d ng nhi u ng
-
B o m t: B i vì ch có m
p m t l n, SSO có th lo i b nh ng
r i ro v n có trong vi c ghi nh nhi u username/password.
Hai r i ro chính là:
nh
-
B o m t: N u m t k xâm nh p làm t n h i tài kho n c
i dùng
ho c m t kh u, k xâm nh p có th có r ng rãi và d dàng truy c p vào
r t nhi u ng d ng.
-
Chi phí: tri n khai SSO có th t n kém, c v
nhân l
tri n khai.
mua và ngu n
Hai y u t SSO là t t nh
c c p d a trên s k t h
i s d ng bi t (m t kh u ho c mã PIN)
1.
iv i
[2]
i pháp SSO hi n có s n.
B ng 1.1: Danh sách các gi i pháp SSO.
- CT1301
11
án t t nghi p
p H i Phòng
Tên s n
Nhà phát
ph m
tri n
Lo i hình
N n t ng
Mô t
Client-side
implementation
Accounts &
SSO
Nokia, Intel,
with plugins for
various
Mi n phí
services/protoc
ols
webSSO to
Novell Access
NetIQ
Manager
browser based
applications
with rules,
policies and
methods to be
complied to
i
access-event.
Active
Directory
Federation
Services
Microsoft
Athens access
and identity
Eduserv UK
management
CAS / Central
Authenticatio Jasig
n Service
Commercial
i
Mã ngu n m
CoSign single University of T ch c riêng
- CT1301
Claims-based
system and
application
federation
Yes
Protocol and
SSO
server/client
implementation
SSO for
12
án t t nghi p
p H i Phòng
Tên s n
Nhà phát
ph m
tri n
sign on
Michigan
Distributed
Access
Control
Distributed
Systems
Lo i hình
Mi n phí
Software
Enterprise
Sign On
Engine
Queensland
University of Mi n phí
Technology
Facebook
Forefront
Identity
Manager
Microsoft
FreeIPA
Red Hat
HP IceWall
SSO
HewlettPackard
Development
Company,
L.P.
- CT1301
Mô t
Michigan
University
System
(DACS)
Facebook
connect
N n t ng
Facebook SSO
to third parties
enabled by
Facebook
Facebook specific
SSO
i
Yes
State-based
identity lifecycle
management
Mi n phí
i
Web and
Federated
Single Sign-On
Solution
13
án t t nghi p
p H i Phòng
Tên s n
Nhà phát
ph m
tri n
LTPA
IBM Tivoli
Identity
Manager
Janrain Federa
te SSO
JBoss SSO
Lo i hình
IBM
Mô t
i
IBM
i
Janrain
Red Hat
N n t ng
i
Yes
Identity lifecycle
management
product
Yes
Social and
conventional
user SSO
Federated
Single Sign-on
Mi n phí
Open Source
JOSSO
Kerberos
Microsoft
account
JOSSO
Mi n phí
Single Sign-On
Server
M.I.T.
Protocol
Computer
network
authentication
protocol
Microsoft
Mi n phí và
i
(Microsoft bây
gi thu hút các
trang web m
s d ng h th ng)
Microsoft
single sign-on
web service
myOneLogin VMware
- CT1301
i
Cloud single
14
án t t nghi p
p H i Phòng
Tên s n
Nhà phát
ph m
tri n
Lo i hình
N n t ng
Mô t
sign-on
Single sign-on
Numina
Application
Framework
OneLogin
Okta
OpenAM
Numina
Solutions
i
Yes
system for
Windows
(OpenID RP &
OP, SAML IdP,
and proprietary)
OneLogin
Inc.
i và
Mi n Phí
Okta,Inc.
ForgeRock
- CT1301
i
Mi n phí
Yes
Cloud-based
identity and
access
management
with single
sign-on (SSO)
and active
directory
integration
On-demand
identity and
access
management
service in the
cloud
Access
Yes, used in
management,
conjunction
entitlements
withOpenDJ and
and federation
OpenIDM
server platform
15
án t t nghi p
p H i Phòng
Tên s n
Nhà phát
ph m
tri n
Lo i hình
Persona
Mozilla
Pubcookie
University of
Protocol
Washington
SecureLogin
NetIQ
SAML
OASIS
Shibboleth
Shibboleth
Ubuntu Single Canonical
Sign On
Ltd.
ZXID
ZXID
N n t ng
Mô t
Mi n phí
Enterprize
Single-Sign-On
i
Protocol
XML-based
open standard
protocol
Mi n phí
SAML-based
open source
access control
OpenID-based
SSO for
Launchpad and
Ubuntu services
i và
mi n phí
Mi n phí
Yes
Reference
Implementation
of TAS3
security
SERVICE.
2.
(Opensource).[3]
Ph n m m ngu n m là gì?
- CT1301
16
án t t nghi p
p H i Phòng
Open source software là nh ng ph n m
c vi t và cung c p m t cách t
i dùng ph n m m mã ngu n m không nh
c t i mã ngu n c a ph n m
tùy ý s a
c dùng ph n m m mà
i, c i ti n và m r ng cho
nhu c u công vi c c a mình.
M t ph n m m áp d ng lo i gi y phép mà cho phép b t c ai s d
i
m i hình th c, có th là truy c p, ch nh s
i các phiên b n
khác nhau c a mã ngu n ph n m
thu t ng
l i chính là s mi
c g i là open-source software. Nhìn chung,
lôi cu n các nhà kinh doanh, m
u thu n
i dùng có quy n "s h u h th ng".
Ti n ích mà opensource mang l i chính là quy n t do s d
cho m i m
nt
nghiên c u c u trúc c
ng trình
nh s a
phù h p v i nhu c u, truy c p vào mã ngu n, quy n t do phân ph i l i các phiên
b n cho nhi
i, quy n t do c i ti
ng b n c i
ti n vì m
ng.
2.
.[4]
2.2.
.
CAS là 1 giao th
pm tl
c phát tri n b
i
h c Yale. M
i dùng truy c p nhi u ng d ng trong
khi ch c n cung c p thông tin c a h (ví d
username và password) ch m t
l
các ng d ng web xác th
i s d ng mà không c n
ti p c n v i các thông tin b o m
i dùng, ch ng h
t kh u.
CAS h tr nhi
c vi t b i nhi u ngôn ng
PHP,.
Giao th c CAS bao g m ít nh t ba bên: m t trình duy t web c a client, các
ng d ng web yêu c u ch ng th c, và các máy ch
liên quan
n m t d ch v back-end, ch ng h
t máy ch
d li u, nó không có
giao di n HTTP riêng c
p v i m t ng d ng web.
Khi client truy c p m t ng d ng mong mu
xác th c v i nó, ng d ng
chuy
n CAS. CAS xác nh n tính xác th c c
ng là b ng
cách ki
i dùng và m t kh
iv im
d li u (ch ng h
MYSQL/PGSQL). N u xác th c thành công, CAS tr client v ng d
thông qua 1 service ticket(ST). ng d
n ticket b ng cách liên
- CT1301
17