Tải bản đầy đủ (.pdf) (95 trang)

Tìm hiểu cơ chế đăng nhập một lần (Single sign on) và thử nghiệm dựa trên thư viện PHPCAS (Đồ án tốt nghiệp)

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 (10.47 MB, 95 trang )

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


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


×