2})$ $ \ulcorner^{-}$ 1446 2005 14-39 14 Central Authentication and Authorization Service -Web Applicatim - (Hisashi NAITO) (Shoji KAJITA) Graduate School of Mathematics Information Technology Center Nagoya University Nagoya University naito@mathnagoya-uacjp kajita@nagoya-ujp (Web Applicafion) $\mathrm{y}^{\gamma}\mathrm{a}1\mathrm{e}$ Central Authentication Service (CAS) $(\mathrm{c}\mathrm{a}\mathrm{s}^{\prime Central Autbentication and Authorization Service Authentication and Authorization Service 2005 $\text{ }$ (Web ) 1 ( ) ) Solution 11 $-\cdot-\wedge$ AAA7 3 Authentication ( ) ( ( IDD
$\mathrm{i}\mathrm{d}$ 15 ) Authorization ( ) Accounting ( ) UNIX Authentication ID Authorization Accounting $\sim-$ UNIX Authentication BSD Flat Database ( /e ) $\mathrm{c}/\mathrm{p}\mathrm{a}\mathrm{s}\mathrm{s}\mathrm{w}\mathrm{d}$ UNIX $\mathrm{i}_{-d}\mathrm{d}\mathrm{a}\mathrm{p}$ NIS PAM 12 ( ) Authentication 1 URL ( - ) $\mathrm{i}\mathrm{d}$ - 2 CGUServlet Apache httpd server hccpdconf htaccess $\mathrm{m}\mathrm{o}\mathrm{d}$ ldap- Basic Authentication LDAP Authentication $\mathrm{s}\mathrm{e}\mathrm{r}1^{j}1\mathrm{e}\mathrm{t}$ CGI session at once CGI Servlet Authentication ( Authentication $\mathrm{i}\overline{\mathrm{d}}$ ( ) httpd
18 $(\mathrm{h}\mathrm{i}\mathrm{d}\mathrm{d}\mathrm{e}\mathfrak{n})\mathrm{u}\mathrm{r}\mathrm{l}$ Cookie Java Servlet API Web Shopping Site $\backslash$ 13 ID I Single Sign On $\mathrm{c}\mathrm{h}\mathrm{a}\mathrm{n}\iota \mathrm{i}\mathrm{e}\mathrm{l} \backslash$ $\zeta_{\backslash }$ Chalmel Authorization
$\}\overline{\mathrm{p}}\mathrm{i}\mathrm{g}\mathrm{u}\mathrm{r}\mathrm{e}1\text{ ^{}\backslash ^{\backslash }}t3$ 17 $ \wedge$ Central Authentication Service 2 Central Authentication Service &ts 1 $\text{ }$ 2 3 Authentication Authorization Central Authentication aild Authorization Yale Service Service Central $\mathrm{a}\iota:\mathrm{t}\mathrm{h}\mathrm{e}\mathfrak{n}\mathrm{t}\mathrm{i}\mathrm{c}\mathrm{a}\mathrm{t}\mathrm{i}\mathrm{o}\mathrm{n}$ 21 Central Authentication Service Yale ITS Technology&Planning 1 2 Central Authentication Service (CAS) (See $)$ [1] CAS CAS CGI $J\backslash ^{\backslash }\backslash$ $\text{ }\backslash$ Figure 1 1 4 1 2 3 $\mathrm{a}\mathrm{p}\mathrm{i}23$ CAS Java Servlet $\text{ }$ 2 CAS \beta ( LDAP Oracle 1 ) CAS CAS Figure 2 2 LDAP \ 2 Tom ca[
$\iota\epsilon$ $\tau \mathrm{s}\mathrm{t}$ URL $\backslash$ $\cdot$ Figure 1Figure 2 21I CAS (1) CAS 1 CAS Service Ticket ( $\mathrm{s}\mathrm{t} $ ) URL (Figure 3-1 p7) 2 3 CAS $/\backslash$ CAS J\ (Figure 3-2a) $\sim\mathrm{t}\mathrm{g}\mathrm{c} \backslash$ $C\mathrm{o}\mathrm{o}\mathrm{k}\mathrm{i}\mathrm{e}$ 3 CAS Ticket Validation ( ) CAS $P\backslash$ $\cdot$ Selwice Paramete-r URL CAS Service Parameter - URL( $\text{ }$ ) 4 TGC $3arrow 2\mathrm{b}$ $\text{ }$ (Figure ) TGC (Figure 4-3p7) 5 TGC TGC CAS $\mathrm{t}i\mathrm{r}\mathrm{i}_{\lrcorner}\nearrow$ $/\backslash$ CAS $\mathrm{s} \mathrm{t}$ (Figure 4-4) $\mathrm{s}7^{\cdot}$ 6 CAS (Figure 5-5a p7) 7 CAS ( ) (Figure S-5b) 8 CAS (Web ) (Figure 5-6) 6
^{\mathrm{o}}7_{\backslash }$?ticket 18 $\mathrm{a}\mathrm{c}$ $//\mathrm{f}\mathrm{o}\mathrm{o}$ URL https: nagoya-u $\mathrm{j}\mathrm{p}/$ \mathrm{u}\mathrm{a}\mathrm{c}$ https: $//\mathrm{c}\mathrm{a}\mathrm{s}\mathrm{n}\mathrm{a}g\mathrm{o}y\mathrm{a}rightarrow 1 ( ) URL $\mathrm{u}\mathrm{r}\mathrm{l}$ \mathrm{c}\mathrm{a}\mathrm{s}$ )$\mathrm{p}/\mathrm{a}\mathrm{p}\mathrm{p}/\backslash URL https: $//\mathrm{f}\mathrm{o}\mathrm{o}$ $\mathrm{a}\mathrm{c}\mathrm{j}\mathrm{p}/\mathrm{a}\mathrm{p}\mathrm{p}/$ nagoya-u %3Fparaml =value1%2 $6\mathrm{p}\mathrm{a}\mathrm{r}\mathrm{a}\mathrm{m}2=\mathrm{v}\mathrm{a}\mathrm{l}\mathrm{u}\mathrm{e}2$ $=\mathrm{s}\mathrm{t}-$ XXXXXX 2 xxxxxx URL ticket (Figure 3-1) Java ScIi[lt (Figure 3-2a) 3 CAS (TGC) $r\backslash casnagoya-u $\mathrm{a}\mathrm{c}$ ip $\mathrm{t}\mathrm{g}\mathrm{c}$ -XXXXXX ON - - - $\sim-\sim\cdot\cdot--\mathrm{r}\cdot-\cdot\wedge$ $-rightarrow$ $arrow\backslash \sim$ 4 5 (Figure 4-4) 6 CAS (Figure 5-5a P7) 7 6 CAS ticket (Figure 5-5b) $\mathrm{x}\grave{\downarrow}\mathrm{j} \mathrm{l}$ $\mathrm{f}\mathrm{i}\mathrm{g}\mathrm{u}\mathrm{r}\epsilon 6$ 8 CAS 4 (CAS ) $\overline{3}\sim XML netid( $\mathrm{i}\mathrm{d}$) (Figure 6$) 4 XML
$\mathrm{f}\mathrm{i}_{b}\sigma \mathrm{u}\mathrm{r}\mathrm{e}3$ $\cdot\cdot\cdot\cdot\ovalbox{\tt\small REJECT}\backslash _{\ddot{\mathrm{a}}}\re \mathrm{p}\cdoti\tau\cdot\cdot\ovalbox{\tt\small REJECT}_{\acute{\phi}}\dot{X}\cdot\backslash i\#\mathrm{f}\cdot\cdot\cdot\cdot\cdotj$ 20 :CAS 1) Figure 4: CAS (2) Figure 5: CAS (3) $\mathrm{t}\mathrm{g}\mathrm{c}/\mathrm{s}\mathrm{t}$ CAS remain $\mathrm{i}\mathrm{n}\mathrm{g}-\mathrm{t}\mathrm{i}\mathrm{m}\mathrm{e}$: 10 Figure 7: CAS $21\underline{?}$ CAS CAS 2 $\star$ Ticket Granting Cookie ( ) Session Once 3 TGCd 5 Session Once $\mathrm{f}\mathrm{g}\mathrm{c}$ CAS
$\dot{\mathrm{b}}\mathrm{s}\mathrm{t}$ \mathrm{t}$ $1_{J}$ $\mathrm{a}$ 21 $\star$ CAS CAS Service Ticket ( ) URL CAS $\mathrm{e}$ 6 One Tim Ticket $\star$ $\star$ CAS CAS 2 Login Servlet TGC TGC Validation Servlet $\star$ Logout Servlet TGC TGC CAS TGC $\mathrm{t}\mathrm{i}\mathrm{m}\iota0\iota\iota 7 Session $\cdot$- 8 CAS TGC Man-in-bJiddle Attack CAS URL (Java Script) Web CAS 213 CAS (2) CAS $\backslash \backslash \backslash$ \tilde -^ -- CAS TGC $7\backslash \backslash CAS \backslash$ $\mathrm{o}\mathrm{u} \backslash$ Single SigIl CAS SSL Layer CAS 1 1 https \acute \ --X0\supset TGC TGC -[ $\not\in\wedge \mathrm{g}^{\mathrm{t}}$ 7 1 CAS TGC TGC 8 1
$\#\mathrm{t}\mathrm{f}\#$ CAS \mathrm{v}\mathrm{e}\mathrm{l}\mathrm{c}\mathrm{o}\mathrm{m}\mathrm{e}$ Page $\mathrm{d}$ $\mathrm{i}\mathrm{d}$ 22 22 Central Authentication Service CAS CAS 9 CAS CAS CGI $ \backslash $\mathrm{i}\mathrm{d}$ 1 2!- $\mathrm{i}\mathrm{d}$ CGI $\#^{1}\#\#$ FORM decode ( $\mathrm{i}\mathrm{d}/$ ) $\text{ }-$ $\#\#\#$ D $\#\#\#$ $\#\#\#_{l}$ HTML ( ) CGI CAS $\#\#\#$ FORM decode (\leftarrow \urcorner -- D/ ) client 7 $\#\#\#$ $\#^{1}\#\#$ HTML ( ) $\mathrm{c}\mathrm{a}\mathrm{s}$ CGI CAS Yale perl Java PHP $\mathrm{p}\mathrm{l}/\mathrm{s}\mathrm{q}\mathrm{l}$ Python Ruby CGI \check 23 CAS Yale CAS $\star$ Form GET $\mathrm{u}\mathrm{r}\mathrm{t}$ Form GET URL Fonn GET POST $9_{\iota}\mathrm{C}\mathrm{A}\mathrm{S}\mathrm{i}\mathrm{f}\dot{\mathrm{y}}$ $\exists$ CAS CAS / CASffied Applicatiorl
$\mathrm{h}^{\neg}\mathrm{b}^{\mathrm{y}}\mathrm{c}$ Ji\mathrm{p}$ 23 $\star$ $\star$ CAS POST POST Folm Form 1 Form CAS CAS Java Script $\mathrm{c}\mathrm{g}\mathrm{i}$ CAS 2 TGC CAS Java Script 9 Form 2 Form CAS JSP GET CAS Service Parameter JSP CAS POST 1 POST Form Form Form HTML Form EUC-JP Form EUC-JP CAS Java CAS UTF-8 -JP URL Form 10 CAS CAS Login $\text{ }\grave{}$ Validation CAS ST 11 $*$ $\overline{1}\overline{()\mathrm{t}- \mathrm{i}\mathrm{i}}\overline{6j}_{1}7^{-} \overline{f}\overline{1jjr^{-\backslash }\sqrt}-\sim-$ $\grave a UTF-8\mbox{\boldmath $\tau$} EUC-JP $\mathrm{p}\mathrm{l}/\mathrm{s}\mathrm{q}\mathrm{l}$ Shift-JIS Oracie backend $\mathrm{u}^{r}\mathrm{i}\mathrm{f}^{\backslash }- 8$ 11
$\mathrm{c}\mathrm{a}\mathrm{s}^{s\underline{1}}$ $\llcorner^{\neg}\mathrm{a}\mathrm{s}^{2}$ 24 2 CAS $J\backslash$ 2 CAS Authentication (Authori zation) $ \{^{-}\overline{\mathrm{j}}$ Validation 3Central $\mathrm{a}\mathrm{u}\mathrm{t}\mathrm{h}\epsilon \mathrm{n}\mathrm{t}\mathrm{i}\mathrm{c}\mathrm{a}\mathrm{t}\mathrm{i}\mathrm{o}\mathrm{n}$ and Authorization Service&lf CAS (Authorization ) $1\mathrm{I}\mathrm{J}$ CAS I CAS CAS Service $\backslash \gamma Based Authorization CAS ( \mathrm{a}1\mathrm{i}\mathrm{d}^{r}\mathrm{a}$tion) Service Atlthorization CAS $\text{ }$ Cross Site Scripting Service Based Authorization CAS 31 $\mathrm{c}^{\urcorner}\mathrm{a}\mathrm{s}^{2}$ Authorization service Service Based Authorization service Authorization Validatioll Validation service 1DAP (Validation) URL
$\ovalbox{\tt\small REJECT}^{-}\overline{\mathrm{c}\mathrm{d}\mathrm{n}:-\mathrm{c}\mathrm{a}\mathrm{s}}\mathrm{c}\mathrm{n}=\mathrm{u}\mathrm{o}\mathrm{c}\mathrm{a}\mathrm{s}-\mathrm{a}\mathrm{t}\mathrm{t}\mathrm{r}\mathrm{b}\mathrm{a}\mathrm{s}-\overline{\mathrm{a}\mathrm{u}\mathrm{t}\mathrm{h}\frac{\mathrm{P}}{\mathrm{i}}\mathrm{t}\mathrm{s}\mathrm{e}r\mathrm{v}\mathrm{i}\mathrm{c}}\underline{\mathrm{c}\mathrm{a}\mathrm{s}-\mathrm{a}}\underline{11o\mathrm{W}}$ $\cdot\langle$ $\mathrm{d}\mathrm{n}$ NailAddress 25 CAS Access Conrrol List (CAS-AC\llcorner ) CAS-ACL CAS-ACL LDAP 12 311 Access Control List CAS-ACL CAS-ACL ; yurep t ;aedehnls $\cdot \mathrm{c}\cdot \mathrm{c}\mathrm{p}\mathrm{s}//\mathrm{a}\mathrm{p}\mathrm{p}\backslash _{\mathrm{i}_{\mathrm{e}0=\underline{\mathrm{n}\mathrm{u})}}^{\mathrm{f}\mathrm{o}\mathrm{o}/}}=+\mathrm{o}\mathrm{u}=\underline{\mathrm{p}\mathrm{e}\mathrm{o}\mathrm{p}}\prime \mathrm{o}\mathrm{b}\overline{\mathrm{a}\mathrm{s}\mathrm{i}\mathrm{c}\mathrm{u}=\mathrm{c}_{}\mathrm{a}\mathrm{s}}\overline{0=}\overline{\mathrm{n}\mathrm{u}}\mathrm{u}\mathrm{i}\mathrm{d}$ $\mathrm{m}\mathrm{a}\mathrm{i}1\mathrm{a}\mathrm{d}\mathrm{d}\mathrm{r}\mathrm{s}\mathrm{s}\mathrm{u}\mathrm{s}\mathrm{e}\mathrm{r}\mathrm{n}\mathrm{a}\mathrm{m}\mathrm{e}$ $\mathrm{d}\mathrm{n}\star----\lrcorner$ CAS-ACL URL cas-service URld $*$ $\mathrm{f}\mathrm{o}\mathrm{o}/$ $//\mathrm{a}\mathrm{p}\mathrm{p}\backslash$ https: URL URI- cas-service \sim $\mathrm{c}\mathrm{a}\epsilon$ LDAP $\mathrm{d}\mathrm{n}=+$ $\mathrm{o}\mathrm{u}=\mathrm{p}\mathrm{e}\mathrm{o}\mathrm{p}\mathrm{l}\mathrm{e}$ $0=\mathrm{n}\mathrm{u}$ 1 Authorization cas-attributes $\mathrm{d}\mathrm{n}$ $\mathrm{u}\mathrm{i}\mathrm{d}$ LDAP username -allow URL $\mathrm{c}1\mathrm{a}\mathrm{s}\mathrm{s}^{\backslash } (" \mathrm{c}\mathrm{a}\mathrm{s}- \mathrm{a}\mathrm{c}\mathrm{c}")$ Control Validation service cas-service CAS-ACL (cas-allow ) cas-allribu es ( $\acute{\{}\urcorner^{-}-$ CAS-ACL 33 ) CAS-ACL $\backslash$ CAS Access 312 Access Control List LDAP CAS-ACL cas-allow $\mathrm{i}\mathrm{p}$ $\text{ }$ $\prime \mathrm{j}$ 12(A]0\supset -- A \check A\iota O)
$\text{ }$ $\text{ }$ $\text{ }$ I $\mathrm{o}\mathrm{u}=\mathrm{s}\mathrm{t}:\mathrm{a}\mathrm{f}\mathrm{i}^{-}$ & $\mathrm{o}\mathrm{u}=\mathrm{p}\mathrm{e}\mathrm{o}\mathrm{p}\mathrm{l}\mathrm{e}$ $\mathrm{o}\mathrm{u}=\mathrm{n}\mathrm{u}$ 28 cas-attributes LDAP 9 5 2005 7 1 2005 7 31 2005 7 1 9 2005 7 31 5 cas-allow: datiet 07010900) (date $<=200507311700\dot{)}\grave{)}$ $\mathrm{i}\mathrm{m}\mathrm{e}>=2005$ $\mathrm{i}^{-}2005$ 7 1 9 2005 7 31 5-3 5 - $\mathrm{d}\mathrm{n}=+$ cas-allow (&(&(dn= $+$ ) $\mathrm{o}\mathrm{u}=\mathrm{s}\:\mathrm{a}\mathrm{f}\mathrm{f}$ $\mathrm{o}\mathrm{u}=\mathrm{p}\mathrm{e}\mathrm{o}\mathrm{p}\mathrm{l}\mathrm{e}$ $\mathrm{o}\mathrm{u}--\mathrm{n}\mathrm{u}$ {&(datet: $\mathrm{i}\mathrm{m}\mathrm{e}>=200507010900$ $)\rangle$ ) (date$<=2005$ 07311700) (& $00/16$ }( $\mathrm{p}=133\acute{\circ}$ $ $ $\mathrm{c}_{11}^{1}\mathfrak{n}\mathrm{e}>03001$ (time ) $<=0500\rangle)\backslash$ CAS-ACL CAS-ACL :
$\mathrm{d}\mathrm{n}$ : $\mathrm{d}\mathrm{n}$ : $\mathrm{d}\mathrm{n}$ : $\mathrm{o}\mathrm{u}--\mathrm{c}\mathrm{a}\mathrm{s}$ \mathrm{y}\mathrm{p}\mathrm{e}$ : ment $\mathrm{c}\mathrm{a}\mathrm{s}-\mathrm{a}\mathrm{u}\mathrm{c}\mathrm{h}-\mathrm{t}\mathrm{i}\mathrm{y}\mathrm{p}\mathrm{e}:\mathrm{a}\mathrm{c}\mathrm{c}\mathrm{e}\mathrm{s}\mathrm{s}-$ $\mathrm{c}\mathrm{a}\mathrm{s}-\mathrm{a}\mathrm{u}\mathrm{c}\mathrm{h}-\mathrm{t}\mathrm{y}\mathrm{p}\mathrm{e}$ : $\mathrm{d}\mathrm{n}$ : ilter (access $\mathrm{c}\mathrm{a}\mathrm{s}-\mathrm{a}\mathrm{u}\mathrm{c}\mathrm{h}-\mathrm{c}\mathrm{y}\mathrm{p}\mathrm{e}$ : a datetime ime $\mathrm{o}\mathrm{u}--\mathrm{n}\mathrm{u}\rangle$ $\nearrow$ $\backslash \backslash \backslash$ 27 $\mathrm{c}\mathrm{n}=\mathrm{a}\mathrm{c}\mathrm{c}\mathrm{e}\mathrm{s}\mathrm{s}_{-}\mathrm{t}\mathrm{i}\mathrm{m}\mathrm{e}$ $\mathrm{h}_{\sim}-\succ cas-aut; cas-allow: $\mathrm{c}\mathrm{n}=\mathrm{w}\mathrm{i}\mathrm{t}\mathrm{h}\mathrm{o}\mathrm{u}\mathrm{c}$ cas $\sim$ $($ allow: accessfilter en ance $\mathrm{c}$ $0=\mathrm{N}\mathrm{U}$ $>=200507010_{\wedge}^{\mathrm{C} }00$ ) $\acute{\mathrm{t}}\mathrm{d}\mathrm{a}\mathrm{t}\mathrm{e}<=200507311700$ ) ) $\mathrm{o}\mathrm{u}=\mathrm{c}\mathrm{a}\mathrm{s}$ $\mathrm{f}1^{l}1\overline{\mathrm{t}}$er $ (\mathrm{t}:\mathrm{i}\mathrm{m}\mathrm{e}>\mathrm{c}3\overline{0}0\rangle(\mathrm{t}\mathrm{i}\mathrm{m}\mathrm{e}<=0500) )$ $\mathrm{a}\mathrm{c}\mathrm{c}\mathrm{e}\mathrm{s}\mathrm{s}_{-}\mathrm{i}\mathrm{i}1\mathrm{t}\mathrm{e}\mathrm{r}$ - cas-auth-type: $0=\mathrm{N}\mathrm{U}$ $\mathrm{c}\mathrm{n}=\mathrm{a}\mathrm{c}\mathrm{c}\mathrm{e}\mathrm{s}\mathrm{s}_{-}\mathrm{t}\mathrm{i}\mathrm{m}\mathrm{e}_{-}0$ cas-allow: ( $\mathrm{g}$ ( $\mathrm{a}\mathrm{c}\mathrm{c}\mathrm{e}\mathrm{s}\mathrm{s}_{-}\mathrm{f}$ $\mathrm{o}\mathrm{u}=\mathrm{c}\mathrm{a}\mathrm{s}$ access $\mathrm{f}$ilcer $=\mathrm{c}\mathrm{n}=\mathrm{a}\mathrm{c}\mathrm{c}\mathrm{e}\mathrm{s}\mathrm{s}_{-}\mathrm{c}\mathrm{i}\mathrm{m}\mathrm{e}$ $\mathrm{o}\mathrm{u}=\mathrm{c}\mathrm{a}\mathrm{s}$ $\overline{\mathrm{f}}$ilcer $0=\mathrm{N}\mathrm{U}^{1}$) $0=\mathrm{N}\mathrm{U}\rangle$ $=\mathrm{c}\mathrm{n}_{-}^{-}\overline{\mathrm{w}}\mathrm{i}\mathrm{t}\mathrm{h}\mathrm{o}\mathrm{u}\mathrm{t}\mathrm{m}-\mathrm{e}\mathrm{n}\mathrm{t}\mathrm{e}\mathrm{n}\mathrm{a}\mathrm{n}\mathrm{c}\mathrm{e}_{-}\mathrm{t}\mathrm{i}\mathrm{m}\mathrm{e}$ $\mathrm{o}\mathrm{u}=\mathrm{c}\mathrm{a}\mathrm{s}$ ) o NU $\mathrm{c}\mathrm{n}=\mathrm{s}\mathrm{c}\mathrm{a}\mathrm{f}\mathrm{f}_{-}\mathrm{i}\mathrm{n}_{-}\mathrm{u}\mathrm{n}\mathrm{i}\mathrm{v}$ $\mathrm{o}\mathrm{u}=\mathrm{c}\mathrm{a}\mathrm{s}$ $\mathrm{a}\mathrm{c}\mathrm{c}\mathrm{e}\mathrm{s}\mathrm{s}_{-}\mathrm{f}$ilter $0=\mathrm{N}\mathrm{U}$ cas-allow: (&(dn= $+$ $\mathrm{o}\mathrm{u}=\mathrm{s}\mathrm{t}\mathrm{a}\mathrm{f}\mathrm{f}$ $\mathrm{o}\mathrm{u}=\mathrm{p}\mathrm{e}\mathrm{o}\mathrm{p}\mathrm{l}\mathrm{e}$ (I $\mathrm{p}=133600/16\rangle$ ) 32 Service Ticket One-Time Ticket $-\wedge$ Login $-\cdot--\sim$ 3 CAS $\text{ }$ Validation CAS-ACC URL (ST) nextticket CAS-ACC URL 1 CAS-ACC nextticket CAS-ACL cas-attributes 1314 $\mathrm{s}\mathrm{t}/\mathrm{t}\mathrm{g}\mathrm{c}$ \mathrm{t}\mathrm{t}\mathrm{i}\mathrm{c}\mathrm{k}\mathrm{e}\mathrm{t}$ $\mathrm{c}\mathrm{a}\mathrm{s}-\mathrm{a}\mathrm{t}\mathrm{t}\mathrm{r}\mathrm{i}\mathrm{b}\mathrm{u}\mathrm{t}\mathrm{e}\mathrm{s}$ none $\epsilon $\mathrm{f}_{\llcorner}^{-}$ $\mathrm{n}\mathrm{c}^{4}\mathrm{x}\mathrm{t}\mathrm{t}\mathrm{i}\mathrm{c}\mathrm{k}\mathrm{e}\iota$ 13 nextticket 14 (33 ) nexlticket
ributes $<\mathrm{c}\mathrm{a}\mathrm{s}:\mathrm{a}\mathrm{u}\mathrm{t};\mathrm{h}\mathrm{e}\mathrm{n}\mathrm{t}\mathrm{i}\mathrm{c}\mathrm{a}\mathrm{t}\mathrm{i}\mathrm{o}\mathrm{n}\mathrm{s}\mathrm{u}\mathrm{c}\mathrm{c}\mathrm{e}\mathrm{s}\mathrm{s}>$ $<\mathrm{c}\mathrm{a}\mathrm{s}:\mathrm{t}$ $<\mathrm{c}\mathrm{a}\mathrm{s}$ :user :user $<\mathrm{c}\mathrm{a}\mathrm{s}:\mathrm{a}\mathrm{t}\mathrm{t}r\mathrm{i}\mathrm{b}\mathrm{u}\mathrm{t}\mathrm{e}\mathrm{s}>$ $</\mathrm{c}\mathrm{a}\mathrm{s}$ $<\mathrm{c}\mathrm{a}\mathrm{s}$ :attiribute-l $<\mathrm{c}\mathrm{a}\mathrm{s}$ Re} \mathrm{s}\mathrm{p}\mathrm{o}\mathrm{n}\mathrm{s}\mathrm{e}>$ \mathrm{u}\mathrm{s}\mathrm{e}\mathrm{r}\mathrm{i}\mathrm{d}=\mathrm{r}\mathrm{e}\mathrm{s}\mathrm{u}\mathrm{l}\mathrm{e}$ ribut 28 -ZXZXZXZX $\mathrm{i}\mathrm{m}\mathrm{e}$ remaining-t : 10 CAS-dn: $\mathrm{d}\mathrm{n}_{\overline{-}}\ldots$ Figure 8: $\mathrm{t}g\mathrm{c}$ User Attributes 15 [Hash Tablei CAS-ACL ( ) TGC Validation XML $<\mathrm{c}\mathrm{a}\mathrm{s}:\mathrm{a}\mathrm{t}\mathrm{t}^{1}1$ $>$ CAS-ACL $<\mathrm{c}\mathrm{a}\mathrm{s}:$ $={}^{t}\mathrm{h}\mathrm{t}\mathrm{t}\mathrm{p}://\mathrm{w}\mathrm{w}\mathrm{w}$ serviceresponse xmlns:cas yale icket $>\mathrm{s}\mathrm{t}-\mathrm{x}\mathrm{x}\mathrm{x}\mathrm{x}\mathrm{x}</$cas: $>\mathrm{n}\mathrm{e}\mathrm{t}\mathrm{i}\mathrm{d}</\mathrm{c}\mathrm{a}\mathrm{s}$ $\mathrm{t}\mathrm{i}\mathrm{c}\mathrm{k}\mathrm{e}\mathrm{c}>$ $>$ $>\mathrm{a}\mathrm{t}:\mathrm{t}:$ $>\mathrm{a}\mathrm{t}:\:$ :allribute-2 $\mathrm{e}-1-\mathrm{v}\mathrm{a}\mathrm{l}\mathrm{u}\mathrm{e}</\mathrm{c}\mathrm{a}\mathrm{s}$:at $\mathrm{e}\mathrm{d}\mathrm{u}/\mathrm{t}\mathrm{p}/\mathrm{c}\mathrm{a}\mathrm{s} >$ $\mathrm{c}\mathrm{r}\mathrm{i}\mathrm{b}\mathrm{u}\mathrm{c}\mathrm{e}-1>$ at:tribute-2-va1ue-2</cas :attribute-2 $>$ $</$ cas : Attributes $>$ ribute-2-va1ue-1 $</$cas : $\mathrm{s}\mathrm{e}\mathrm{r}\mathrm{v}\mathrm{i}\mathrm{c}\mathrm{e}{\rm : $\mathrm{a}\mathrm{u}\mathrm{t}\mathrm{h}\mathrm{e}\mathrm{n}\mathrm{t}\mathrm{l}\mathrm{c}\mathrm{a}\mathrm{t}\mathrm{i} \mathrm{o}\mathrm{n}\mathrm{s}\mathrm{u}\mathrm{c}\mathrm{c}\mathrm{e}\mathrm{s}\mathrm{s}>$ Figure 9: $\mathrm{c}\mathrm{a}\mathrm{s}^{\underline{9}}$ XML CAS( $\mathrm{c}\mathrm{a}\mathrm{s}^{r}a$) Attributes $ $ $-H $\mathrm{t}\mathrm{a}\mathrm{b}\mathrm{l}\mathrm{e}$ XML ash UserID $ :\mathrm{r}\mathrm{e}\mathrm{s}\mathrm{u}\mathrm{l}\mathrm{t}$ netid 35
$\mathrm{d}\mathrm{n}$ 29 fullname resu attrlbutes fullname 16 33 nextticket CAS 331 (1) 211 CAS 211 $\mathrm{a}\mathrm{c}\dot{3}\mathrm{p}/\mathrm{a}\mathrm{p}\mathrm{p}/$) $//\mathrm{f}\mathrm{o}\mathrm{o}$ 1 ( hllps: nagoya-u (CAS ) -] Login 211 (1) 2 211 (3) CAS (Login) TGC $\mathrm{s}^{\neg}\mathrm{t}$ service $\mathrm{e}$ CAS-ACL (Fi ] 10 ) CAS-ACL (Authorization) CAS-ACC ICAS-ACL ) 3 211 (4) (CAS ) Licket service URL CAS-ACL CAS-ACC CAS-ACC CAS-ACL CAS-ACL nextticket ST -\sim CAS-ACC (Figure 11 ) 2 Service Based Authotization CAS2\dashv $\mathrm{c}^{\backslash }\mathrm{a}\mathrm{s}^{2}$ $16 - \#_{\backslash }-\mathbb{p}_{s\backslash }\overline{\prime}c]\mathrm{j}_{[perp]}^{r}$ $\mathrm{l}\overline{ }\mathrm{b}^{\mathrm{a}}\supset-$
$17\mathrm{F}\backslash \mathrm{i}\mathrm{g}\mathrm{u}\mathrm{r}\mathrm{e}9$ 30 CAS-ACC service ( URL :Man-in-Middle attack) Figure 10: (1) Figure 11: (2) Figure 12: (3) 332 $\mathrm{c}\mathrm{a}\mathrm{s}^{i}\underline{)}$ (2) nextticket URL - CAS-ACC URL 17 $\text{ }\backslash$ 213 Login (CAS ) Validation CAS 1 4 CAS-ACC URL nextticket CAS-ACC CAS-ACC (CAS ) Login (Figure 12 ) TGC ( ) - CAS nextticket $\backslash j\prime $\backslash$ \mathrm{d}\mathrm{l}\mathrm{i}\mathrm{d}\mathrm{a}\mathrm{t}\mathrm{i}\mathrm{o}\mathfrak{n}$ } XML :cas: ticket>
$18\mathrm{C}^{\backslash }\mathrm{a}\mathrm{s}$ \mathrm{o}\mathrm{s}\mathrm{s}$ Site $3\mathrm{t}$ 333 Cross Site Scripting $\mathrm{c}\iota\cdot Service Based Authorization Scripting (XSS) XSS Form HTML (HTML ) [ $\circ$ [ (Sanitalize) XSS 4 CAS XSS service 18 Service Based Authorization service ( ) CAS-ACC 34 Service Based Authorization CAS-ACL POST \ ) $\mathrm{c}\mathrm{a}\mathrm{s}^{\sim} $ - $\cdot$ TGC TGC CAS POST CAS CAS Java Script $\grave{\grave{\mathrm{a}}}$ casrbquestnetflod : GET POST GET Java Script 4 ENCODING : character encoding $\backslash \backslash \backslash$ $\mathrm{c}\mathrm{a}\mathrm{s}^{\ }\backslash$ UTF-8 Java Script JSP character encoding CAS fj Form (GET POST) charaater encodin CAS Form POST lava Script POST service Forrn (GET )
$\mathrm{d}\mathrm{n}$ : $\mathrm{c}\mathrm{a}\mathrm{s}-\mathrm{a}\mathrm{u}\mathrm{t}\mathrm{h}-\mathrm{t}\mathrm{y}\mathrm{p}\mathrm{e}$ : $\mathrm{d}\mathrm{n}$ : $19\grave{\mathrm{A}} \mathrm{l}\mathrm{y}\mathrm{n}\mathrm{t}\mathrm{j}$ $\mathrm{u}\mathrm{i}\mathrm{d}=\mathrm{k}\mathrm{a}\mathrm{j}$ $\dot{\mathrm{t}}[2]$ 32 35 Access Control List CAS-ACL t (Admin) Admin CAS-ACL Admin CAS-ACL cas-au hc t 8 $\mathrm{e}$ trusted CAS-ACL Lrus Led CAS-ACL (1): $\mathrm{o}\mathrm{u}=\mathrm{c}\mathrm{a}\mathrm{s}$ cas-allow: $0=\mathrm{N}\mathrm{U}$ $ $ $\mathrm{u}\mathrm{i}\mathrm{d}=\mathrm{n}\mathrm{a}\mathrm{l}$ to trus $\mathrm{c}\mathrm{e}\mathrm{d}$ CAS-ACL LDAP DIT CAS-ACL subtree root node $\mathrm{u}\mathrm{i}\mathrm{d}_{-}$ -naito $ \wedge$ CAS-ACL Admin CAS-ACL \mathrm{a}\mathrm{c}\mathrm{j}_{-d}$ $\mathrm{c}\mathrm{a}\mathrm{s}- trusted (2): $\mathrm{o}\mathrm{u}_{-}^{-}\mathrm{u}\mathrm{p}\mathrm{o}\mathrm{r}\mathrm{t}\mathrm{a}1$ $0=\mathrm{N}\mathrm{U}$ $\mathrm{o}\mathrm{u}=\mathrm{c}\mathrm{a}\mathrm{s}$ $\rangle$ ita cas-allow: cas-auth-cype: trusted $=\mathrm{u}\mathrm{p}\mathrm{o}\mathrm{r}\mathrm{t}\mathrm{a}\mathrm{l}$ $0=\mathrm{N}\mathrm{U}$ CAS-ACL ou $\mathrm{o}\mathrm{u}_{-}^{-}\mathrm{c}\mathrm{a}\mathrm{s}$ subtree root node $\mathrm{u}\mathrm{i}\mathrm{d}=\mathrm{k}\mathrm{a}\mathrm{j}\mathrm{i}\mathrm{t}\mathrm{a}$ subtree Admin CAS-ACL 4 2004 2005 41 411 \mathrm{n}\mathrm{u}$ ) My$\prime 2004 2005 2 $\mathrm{m}\mathrm{y}_{1}^{\backslash }\mathrm{t}\mathrm{u}$ 19 2
$21\tau 14\mathrm{y}\mathrm{N}\mathrm{U}$ $\mathrm{c}\mathrm{a}\mathrm{s}^{\underline{?}}$ $\mathrm{m}\} \mathrm{n}\mathrm{u}$ $ \frac{}{\text{ _{};\mathrm{l}}arrow J^{\backslash }+\mathrm{k}-j\backslash ^{\backslash }\mathrm{s}\backslash \mathrm{u}\mathrm{n}\mathrm{f}\mathrm{i}\mathrm{r}\mathrm{e}\backslash ^{7}210\mathrm{V}120\text{ _{}\sim^{\mathrm{j}}} }\frac{\overline{7}^{--\text{ }\swarrow\backslash ^{\backslash }-\text{ }\theta^{-}-\nearrow\grave{\grave{\mathrm{a}}}\mathrm{s}\mathrm{u}\mathrm{l}1\mathrm{f}^{\neg}\mathrm{i}\mathrm{r}\mathrm{e}\mathrm{v}21\mathrm{f}\mathrm{j}1}\backslash \backslash \angle\backslash \square }{\Xi\backslash \backslash \mathrm{f}\#_{\mathrm{j}}^{\mathrm{j}}1_{\mathrm{b}}^{\backslash \hat{\approx}}\#\mathrm{k}^{?}\grave{\backslash }\text{ ^{}\overline{-\gamma}}[perp]_{\backslash }}\cdot$ $\underline{\mathrm{p}}\grave{\grave{\text{ }}}-\text{ }\theta^{-}-f\backslash \backslash \backslash$ Sun?-[? Standby $4_{\square }^{\mathrm{a}}$ $\underline{1\angle\fbox(\backslash +\mathrm{h}\mathrm{o}\mathrm{t}\mathrm{s}\mathrm{t}\mathrm{a}\mathrm{l}\mathrm{u}\mathrm{d}\mathrm{b}\mathrm{y}}$ 33 $\mathrm{h}\prime \mathrm{l}\mathrm{y}\mathrm{n}\mathrm{u}$ (2005 ) $\cdot$ $\underline{7}0$ $\text{ }$ 2005 MyNU ( ) MyNU $\mathrm{c}\mathrm{a}\mathrm{s}^{\sim}$ 412 MyNU LDAP Sun Fire V48(J1 Sun Fire V120 $\{\mathrm{i}^{-\overline{1}\mathrm{o}!}$ $\mathrm{v}1$ LDAP Sun Fire Sun Fire $\mathrm{v}210$ $(\mathrm{h}\mathrm{o}^{:}$ { $\mathrm{i}-\overline{1}\mathrm{o}\mathrm{t}$ $1rightarrow$) $\square$ (Hot Standby 1 $\mathit{1}\backslash \square$) $1_{\square }J\sim)$ $\overline{\text{ ^{}\underline{\gamma}\mathrm{a}}\mathrm{n}}$ $\angle-\mathrm{u}^{1}-$ Sun Fire V240 1 Tabie 1: (Figure 13) Nortel Networks Alteon 21 20 2 $ff\}_{\mathrm{d}}\triangleleft$ Alteon& $\mathrm{s}\mathrm{s}\mathrm{l}$ \sigma SSL $\mathrm{b}^{\mathrm{a}}$ SSL Alteon $\mathrm{m}\mathrm{v}\mathrm{n}\mathrm{u}$ Alteon $\Delta$ SSL
$-\overline{\mathrm{a}\mathrm{t}\mathrm{a}8\mathrm{a}\mathrm{s}\mathrm{e}}$ $\mathrm{e}$ $\overline{\mathrm{d}\mathrm{i}\mathrm{s}\mathrm{l}[\mathrm{a}rr\mathrm{a}\mathrm{y}}$ 34 $-$ $\ldots\ldots\ldots-$ OataBas S-e-rver Figure 13: MyNU Figure 14: MyNU Login Window MuNU A uportal $10_{\epsilon}\sigma$ Oracle $\mathrm{u}\mathrm{p}\mathrm{o}\mathrm{r}\iota \mathrm{a}\mathrm{l}$ uportal Java Java $\mathrm{c}\mathrm{a}\mathrm{s}^{\mathrm{r}}\delta$ MyNU $\mathrm{p}\mathrm{l}/\mathrm{s}\mathrm{q}\mathrm{l}$ Oracle(9i) $\cdot \mathrm{p}\mathrm{l}/\mathrm{s}\mathrm{q}\mathrm{l}\mathrm{c}\mathrm{a}\mathrm{s}^{2}$ MyNU 42 16 1 $()()$ [ $)$ 4000 2005 2 t 9 (464 )
35 17 2 4 6500 2005 3 9 (203 ) 2 $\mathrm{i}\mathrm{d}$ 22 ( $34$ ) 421 1 $->\mathrm{c}\mathrm{a}\mathrm{s}^{2}$ $arrow \mathrm{m}\mathrm{y}\mathrm{n}\mathrm{u}$ MyNU ( ) $-\text{ }$ 2 3 $-\cdot$ \rightarrow 4 (1 25 ) $arrow$ $/\backslash$ ( ) $\wedge\cdot\sim$ $-\mathrm{c}\mathrm{a}\mathrm{s}^{2}$ $arrow \mathrm{m}\mathrm{y}\mathrm{n}\mathrm{u}$ 1 MyNU ( ) $-\text{ }$ 2 3 ( ) ( ) 4 5 $arrow$ $arrow$ ( ) 1 MyNU $arrow \mathrm{m}\mathrm{y}\mathrm{n}\mathrm{u}$ ( ) 2 [ 3 $f^{--\mathrm{j}}$ $rightarrow$ 4 $arrow$ 22 $1\mathrm{D}\mathrm{J}$ ID (Figure 14) MyNU ( LDAP ) $\sqrt[\backslash ]{}1\mathrm{D}$ t LDAP
$\ovalbox{\tt\small REJECT}^{-}\backslash ffl^{-}\hslash_{\mathrm{a}^{[perp]}}^{\acute{/}\dot{\backslash }}$ $\prime \mathit{1}\mathrm{x}\mathrm{f}\#_{1\dot{\mathrm{a}}-};\neq\lambda\backslash 7]$ \mathcal{f}\mathrm{j})$ $\mathrm{a}\vec{\equiv_{\mathrm{j}}}+\mathfrak{q}\iota(\overline{\iota}^{-}\square ^{-\tilde{\mathrm{j}}})$ 38 ( ) 1 2 422 e-test suite (cf [3]) CPU 85% Table 2: CAS 3000 / $\mathrm{i}$ 1 10 \ A c $l\mathrm{y}_{-\mathrm{q}}^{\mathrm{t}}\mathrm{l}^{\check{j}}$ (1 5 150 ) 23 423 CAS 3000 / $\Re^{-\lrcorner}-- \mathrm{a}\in -$ $(\mathrm{u}\overline{\gamma}_{-}\overline{7}/t\backslash $\ovalbox{\tt\small REJECT}\{1_{i}^{\not\in} $ $\ovalbox{\tt\small REJECT}--ffl) \backslash$ 500 158-559 1236 1418207 Table 3: CAS 23 $9\mathrm{i}$ $\tilde{\tau}\delta$ Oracle $)$ SQL 15{
$24\mathrm{f}\mathrm{f}\mathrm{l}\mathrm{B}18*_{\backslash }\cdot h^{\iota}\text{ }20$ 27%) 37 $\mathrm{c}\mathrm{a}\mathrm{s}^{\iota}\sim\gamma$ (10 ) Lo 02 Validation $\mathrm{n}$ 005 $\nearrow\cdot-\wedge(\mathrm{j}^{\cdot}$ CAS 424 25 $\overline{\overline{\overline{j} \text{ }\cdot \mathrm{b}\text{ }\overline{\pi}a\supset \text{ }\mathrm{t}\supset\nearrow\backslash _{\backslash }\text{ }\backslash f^{\grave{\backslash }}}}$ 1919 (250%) 982 (128%) netbbcec 667 $87^{c/_{\mathit{0}})}$ ( ( ) nedion $3^{\iota}\mathrm{P}$ $\mathrm{j}\mathrm{p}$ neocn 622 (81%) 597 (7S%} 402 $(\overline{3}2\%)$ $]\mathrm{p} $ nestarcat $( 235 207 31^{o}J\mathrm{o})$ ( ) $\mathrm{p}$ neso-net ) $19^{\eta}$ $(26\Psi \mathit{0})$ $\mathrm{j}\mathrm{p}$ neaitai 4199 (570%) $\mathrm{x}\mathrm{p}$ windows MSIE 1757 (239%) windows2000netscape 757 (103%) Windows 98 MSIE 201 ( 27%) windows 2000MSIE F $\not\cong-\psi $-\backslash \mathfrak{g}_{\sigma}\doteqdot$? r\backslash$ l\lambda \sim 1\breve $\psi^{\backslash 25 }\cdot$ 1
$\underline{0}6$ $\mathrm{r}$ 38 Table 4: 30% 5 CAS Queens University $\mathrm{f}_{\mathit{2}}$ Central Authentication and Authorization Service $\mathrm{v}\iota\mathrm{r}\mathrm{s}\mathrm{i}\mathrm{o}\mathrm{n}2$ CAS CAS Version 3 Spring Framework Spring Framework Central Authentication and Authorization Service CAS CAS CAS $\mathrm{t}\mathrm{g}\mathrm{c}/\mathrm{s}\mathrm{t}$ Java RM I } $\mathrm{t}\mathrm{g}\mathrm{c}/\mathrm{s}\mathrm{t}$ CAS CAS CAS - CAS 26 f-}3 CAS $ \wedge$ CAS $\mathrm{s}\mathrm{s}\mathrm{l}$
Cenrral CAS )a-sig -index \mathrm{i}\mathrm{n}\mathrm{t}\mathrm{e}\mathrm{r}\mathrm{n}\mathrm{e}\mathrm{t}2-\mathrm{m}\mathrm{a}\mathrm{c}\mathrm{e}$ 0\mathrm{t}l5$ 38 [1] Yale University ITS Technology & Planning http: $//\mathrm{t}\mathrm{p}$ $\mathrm{e}\mathrm{d}\mathrm{u}/\mathrm{t}\mathrm{i}\mathrm{k}\mathrm{i}/\mathrm{t}\mathrm{i}\mathrm{k}\mathrm{i}$ itsyale [2] hllps: $//\mathrm{m}\mathrm{y}\mathrm{n}\mathrm{u}\dot{3}\mathrm{p}/$ $\mathrm{p}\mathrm{h}\mathrm{p}$ [31 $\mathrm{e}$-test srute http $://\mathrm{w}\mathrm{w}\mathrm{w}$ $\mathrm{f}\mathrm{m}\mathrm{w}$ fuj $\mathrm{i}$ $\mathrm{c}\mathrm{o}\mathrm{m}/\mathrm{s}\mathrm{e}\mathrm{r}\mathrm{v}\mathrm{i}\mathrm{c}\mathrm{e}\mathrm{s}/\mathrm{e}\mathrm{c}\mathrm{e}\mathrm{s}\mathrm{t}\mathrm{s}\mathrm{u}\mathrm{i}\mathrm{t}\mathrm{e}/$ tsu [4] CAS Generic Hindler http: $//\mathrm{e}\mathrm{s}\mathrm{u}\mathrm{p}$-casgeneric sourceforge $\mathrm{n}\mathrm{e}\mathrm{t}/$ [5] JA-SIG hbtp: $//\mathrm{w}\bm{\mathrm{w}}\mathrm{w}$ $\mathrm{o}\mathrm{r}\mathrm{g}/$ [ $6\rfloor$ Authentication Service http: $//\mathrm{j}$ asigchprinceton $\mathrm{e}\mathrm{d}\mathrm{u}:9000/\mathrm{d}\mathrm{i}\mathrm{s}\mathrm{p}\mathrm{l}\mathrm{a}\mathrm{y}/\mathrm{c}\mathrm{a}\mathrm{s}r$ [7] Internct2 Working Group Shibboleth Architecture http: $//\mathrm{d}\mathrm{o}\mathrm{c}\mathrm{s}$ $\mathrm{e}\mathrm{t}\mathrm{h}-$ - shibbol archi interoet2 $\mathrm{e}\mathrm{d}\mathrm{u}/\mathrm{d}\mathrm{o}\mathrm{c}\mathrm{l}\mathrm{i}\mathrm{b}/\mathrm{d}\mathrm{r}\mathrm{a}\mathrm{f}\mathrm{c}arrow tecture -05 htnl [ $8\rfloor$ Genefic Handler http: $//\mathrm{e}\mathrm{s}\mathrm{u}\mathrm{p}$-casgenericsourceforge $\mathrm{n}\mathrm{e}\mathrm{t}/$ [91 CAS $\gammaarrow $(2[l\mathrm{f}\mathrm{J}5)$ $\mathrm{p}\mathrm{p}$ Vol No 39 35-40 [101 CAS 3 WebCT Conference $\mathrm{p}\mathrm{p}$ $115-120$ (2005)