1. CAS ¼ò½é
1.1. What is CAS £¿
CAS £¨ Central Authentication Service
£© ÊÇ Yale ´óѧ·¢ÆðµÄÒ»¸öÆóÒµ¼¶µÄ¡¢¿ªÔ´µÄÏîÄ¿£¬Ö¼ÔÚΪ Web Ó¦ÓÃϵͳÌṩһÖÖ¿É¿¿µÄµ¥µãµÇ¼½â¾ö·½·¨£¨ÊôÓÚ
Web SSO £©¡£
CAS ¿ªÊ¼ÓÚ 2001 Ä꣬ ²¢ÔÚ 2004 Äê 12 ÔÂÕýʽ³ÉΪ JA-SIG
µÄÒ»¸öÏîÄ¿¡£
1.2. Ö÷ÒªÌØÐÔ
1¡¢ ¿ªÔ´µÄ¡¢¶àÐÒéµÄ SSO ½â¾ö·½°¸£» Protocols £º Custom
Protocol ¡¢ CAS ¡¢ OAuth ¡¢ OpenID ¡¢ RESTful API ¡¢ SAML1.1
¡¢ SAML2.0 µÈ¡£
2¡¢ Ö§³Ö¶àÖÖÈÏÖ¤»úÖÆ£º Active Directory ¡¢ JAAS
¡¢ JDBC ¡¢ LDAP ¡¢ X.509 Certificates µÈ£»
3¡¢ °²È«²ßÂÔ£ºÊ¹ÓÃÆ±¾Ý£¨ Ticket £©À´ÊµÏÖÖ§³ÖµÄÈÏÖ¤ÐÒ飻
4¡¢ Ö§³ÖÊÚȨ£º¿ÉÒÔ¾ö¶¨ÄÄЩ·þÎñ¿ÉÒÔÇëÇóºÍÑéÖ¤·þÎñƱ¾Ý£¨ Service
Ticket £©£»
5¡¢ Ìṩ¸ß¿ÉÓÃÐÔ£ºÍ¨¹ý°ÑÈÏÖ¤¹ýµÄ״̬Êý¾Ý´æ´¢ÔÚ TicketRegistry
×é¼þÖУ¬ÕâЩ×é¼þÓкܶàÖ§³Ö·Ö²¼Ê½»·¾³µÄʵÏÖ£¬È磺 BerkleyDB ¡¢ Default ¡¢ EhcacheTicketRegistry
¡¢ JDBCTicketRegistry ¡¢ JBOSS TreeCache ¡¢ JpaTicketRegistry
¡¢ MemcacheTicketRegistry µÈ£»
6¡¢ Ö§³Ö¶àÖÖ¿Í»§¶Ë£º Java ¡¢ .Net ¡¢ PHP ¡¢ Perl
¡¢ Apache, uPortal µÈ¡£
2. SSO µ¥µãµÇ¼ÔÀí
±¾ÎÄÄÚÈÝÖ÷ÒªÕë¶Ô Web SSO ¡£
2.1. ʲôÊÇSSO
µ¥µãµÇ¼£¨ Single Sign-On , ¼ò³Æ SSO £©ÊÇĿǰ±È½ÏÁ÷ÐеķþÎñÓÚÆóÒµÒµÎñÕûºÏµÄ½â¾ö·½°¸Ö®Ò»£¬
SSO ʹµÃÔÚ¶à¸öÓ¦ÓÃϵͳÖУ¬Óû§Ö»ÐèÒª µÇ¼һ´Î ¾Í¿ÉÒÔ·ÃÎÊËùÓÐÏ໥ÐÅÈεÄÓ¦ÓÃϵͳ¡£
2.2. SSO ÔÀí
2.2.1. SSO ÌåϵÖеĽÇÉ«
Ò»°ã SSO ÌåϵÖ÷Òª½ÇÉ«ÓÐÈýÖÖ£º
1¡¢ User £¨¶à¸ö£©
2¡¢ Web Ó¦Ó㨶à¸ö£©
3¡¢ SSO ÈÏÖ¤ÖÐÐÄ£¨ 1 ¸ö £©
2.2.2. SSO ʵÏÖģʽµÄÔÔò
SSO ʵÏÖģʽһ°ã°üÀ¨ÒÔÏÂÈý¸öÔÔò£º
1¡¢ ËùÓеÄÈÏÖ¤µÇ¼¶¼ÔÚ SSO ÈÏÖ¤ÖÐÐĽøÐУ»
2¡¢ SSO ÈÏÖ¤ÖÐÐÄͨ¹ýһЩ·½·¨À´¸æËß Web Ó¦Óõ±Ç°·ÃÎÊÓû§¾¿¾¹ÊDz»ÊÇÒÑͨ¹ýÈÏÖ¤µÄÓû§£»
3¡¢ SSO ÈÏÖ¤ÖÐÐĺÍËùÓÐµÄ Web Ó¦Óý¨Á¢Ò»ÖÖÐÅÈιØÏµ£¬Ò²¾ÍÊÇ˵
web Ó¦ÓñØÐëÐÅÈÎÈÏÖ¤ÖÐÐÄ¡££¨µ¥µãÐÅÈΣ©
2.2.3. SSO Ö÷ҪʵÏÖ·½Ê½
SSO µÄÖ÷ҪʵÏÖ·½Ê½ÓУº
1¡¢ ¹²Ïí cookies
»ùÓÚ¹²ÏíͬÓòµÄ cookie ÊÇ Web ¸Õ¿ªÊ¼½×¶ÎʱʹÓõÄÒ»ÖÖ·½Ê½£¬ËüÀûÓÃä¯ÀÀͬÓòÃûÖ®¼ä×Ô¶¯´«µÝ
cookies »úÖÆ£¬ÊµÏÖÁ½¸öÓòÃûÖ®¼äϵͳÁîÅÆ´«µÝÎÊÌ⣻ÁíÍ⣬¹ØÓÚ¿çÓòÎÊÌ⣬ËäÈ» cookies±¾Éí²»¿çÓò£¬µ«¿ÉÒÔÀûÓÃËüʵÏÖ¿çÓòµÄ
SSO ¡£È磺´úÀí¡¢±©Â¶ SSO ÁîÅÆÖµµÈ¡£
ȱµã£º²»Áé»î¶øÇÒÓв»ÉÙ°²È«Òþ»¼£¬ÒѾ±»Åׯú¡£
2¡¢ Broker-based( »ùÓÚ¾¼ÍÈË )
ÕâÖÖ¼¼ÊõµÄÌØµã¾ÍÊÇ£¬ÓÐÒ»¸ö¼¯ÖеÄÈÏÖ¤ºÍÓû§ÕʺŹÜÀíµÄ·þÎñÆ÷¡£¾¼ÍÈ˸ø±»ÓÃÓÚ½øÒ»²½ÇëÇóµÄµç×ÓÉí·Ý´æÈ¡¡£ÖÐÑëÊý¾Ý¿âµÄʹÓüõÉÙÁ˹ÜÀíµÄ´ú¼Û£¬²¢ÎªÈÏÖ¤Ìṩһ¸ö¹«¹²ºÍ¶ÀÁ¢µÄ
"µÚÈý·½ " ¡£ÀýÈç Kerberos ¡¢ Sesame ¡¢ IBM KryptoKnight
£¨Æ¾Ö¤¿â˼Ïë ) µÈ¡£ KerberosÊÇÓÉÂéÊ¡Àí¹¤´óѧ·¢Ã÷µÄ°²È«ÈÏÖ¤·þÎñ£¬ÒѾ±» UNIX ºÍ Windows
×÷ΪĬÈϵݲȫÈÏÖ¤·þÎñ¼¯³É½ø²Ù×÷ϵͳ¡£
3¡¢ Agent-based £¨»ùÓÚ´úÀíÈË£©
ÔÚÕâÖÖ½â¾ö·½°¸ÖУ¬ÓÐÒ»¸ö×Ô¶¯µØÎª²»Í¬µÄÓ¦ÓóÌÐòÈÏÖ¤Óû§Éí·ÝµÄ´úÀí³ÌÐò¡£Õâ¸ö´úÀí³ÌÐòÐèÒªÉè¼ÆÓв»Í¬µÄ¹¦ÄÜ¡£±ÈÈ磬Ëü¿ÉÒÔʹÓÿÚÁî±í»ò¼ÓÃÜÃÜÔ¿À´×Ô¶¯µØ½«ÈÏÖ¤µÄ¸ºµ£´ÓÓû§ÒÆ¿ª¡£´úÀíÈ˱»·ÅÔÚ·þÎñÆ÷ÉÏÃæ£¬ÔÚ·þÎñÆ÷µÄÈÏ֤ϵͳºÍ¿Í»§¶ËÈÏÖ¤·½·¨Ö®¼ä³äµ±Ò»¸ö
" ·Òë "¡£ÀýÈç SSH µÈ¡£
4¡¢ Token-based
ÀýÈç SecureID,WebID £¬ÏÖÔÚ±»¹ã·ºÊ¹ÓõĿÚÁîÈÏÖ¤£¬±ÈÈç FTP
¡¢Óʼþ·þÎñÆ÷µÄµÇ¼ÈÏÖ¤£¬ÕâÊÇÒ»ÖÖ¼òµ¥Ò×Óõķ½Ê½£¬ÊµÏÖÒ»¸ö¿ÚÁîÔÚ¶àÖÖÓ¦Óõ±ÖÐʹÓá£
5¡¢ »ùÓÚÍø¹Ø
6¡¢ »ùÓÚ SAML
SAML(Security Assertion Markup Language
£¬°²È«¶ÏÑÔ±ê¼ÇÓïÑÔ£©µÄ³öÏÖ´ó´ó¼ò»¯ÁË SSO £¬²¢±» OASIS Åú׼Ϊ SSO µÄÖ´Ðбê×¼ ¡£¿ªÔ´×éÖ¯
OpenSAML ʵÏÖÁË SAML ¹æ·¶¡£
3. CAS µÄ»ù±¾ÔÀí
3.1. ½á¹¹Ìåϵ
´Ó½á¹¹Ìåϵ¿´£¬ CAS °üÀ¨Á½²¿·Ö£º CAS Server ºÍ CAS
Client ¡£
3.1.1. CAS Server
CAS Server ¸ºÔðÍê³É¶ÔÓû§µÄÈÏÖ¤¹¤×÷ , ÐèÒª¶ÀÁ¢²¿Êð , CAS
Server »á´¦ÀíÓû§Ãû / ÃÜÂëµÈƾ֤(Credentials) ¡£
3.1.2. CAS Client
¸ºÔð´¦Àí¶Ô¿Í»§¶ËÊܱ£»¤×ÊÔ´µÄ·ÃÎÊÇëÇó£¬ÐèÒª¶ÔÇëÇó·½½øÐÐÉí·ÝÈÏ֤ʱ£¬Öض¨Ïòµ½
CAS Server ½øÐÐÈÏÖ¤¡££¨ÔÔòÉÏ£¬¿Í»§¶ËÓ¦Óò»ÔÙ½ÓÊÜÈκεÄÓû§ÃûÃÜÂëµÈ Credentials
£©¡£
CAS Client ÓëÊܱ£»¤µÄ¿Í»§¶ËÓ¦Óò¿ÊðÔÚÒ»Æð£¬ÒÔ Filter
·½Ê½±£»¤Êܱ£»¤µÄ×ÊÔ´¡£
3.2. CAS ÔÀíºÍÐÒé
3.2.1. »ù´¡Ä£Ê½
»ù´¡Ä£Ê½ SSO ·ÃÎÊÁ÷³ÌÖ÷ÒªÓÐÒÔϲ½Ö裺
1. ·ÃÎÊ·þÎñ£º SSO ¿Í»§¶Ë·¢ËÍÇëÇó·ÃÎÊÓ¦ÓÃϵͳÌṩµÄ·þÎñ×ÊÔ´¡£
2. ¶¨ÏòÈÏÖ¤£º SSO ¿Í»§¶Ë»áÖØ¶¨ÏòÓû§ÇëÇóµ½ SSO ·þÎñÆ÷¡£
3. Óû§ÈÏÖ¤£ºÓû§Éí·ÝÈÏÖ¤¡£
4. ·¢·ÅƱ¾Ý£º SSO ·þÎñÆ÷»á²úÉúÒ»¸öËæ»úµÄ Service Ticket
¡£
5. Ñé֤Ʊ¾Ý£º SSO ·þÎñÆ÷Ñé֤Ʊ¾Ý Service Ticket
µÄºÏ·¨ÐÔ£¬Ñé֤ͨ¹ýºó£¬ÔÊÐí¿Í»§¶Ë·ÃÎÊ·þÎñ¡£
6. ´«ÊäÓû§ÐÅÏ¢£º SSO ·þÎñÆ÷Ñé֤Ʊ¾Ýͨ¹ýºó£¬´«ÊäÓû§ÈÏÖ¤½á¹ûÐÅÏ¢¸ø¿Í»§¶Ë¡£
ÏÂÃæÊÇ CAS ×î»ù±¾µÄÐÒé¹ý³Ì£º

cas»ù´¡ÐÒéͼ
»ù´¡ÐÒéͼ
ÈçÉÏͼ£º CAS Client ÓëÊܱ£»¤µÄ¿Í»§¶ËÓ¦Óò¿ÊðÔÚÒ»Æð£¬ÒÔ Filter
·½Ê½±£»¤ Web Ó¦ÓõÄÊܱ£»¤×ÊÔ´£¬¹ýÂË´Ó¿Í»§¶Ë¹ýÀ´µÄÿһ¸ö Web ÇëÇó£¬Í¬Ê±£¬ CAS Client
»á·ÖÎö HTTP ÇëÇóÖÐÊÇ·ñ°üº¬ÇëÇó Service Ticket( ST ÉÏͼÖÐµÄ Ticket) £¬Èç¹ûûÓУ¬Ôò˵Ã÷¸ÃÓû§ÊÇûÓо¹ýÈÏÖ¤µÄ£»ÓÚÊÇ
CAS Client »áÖØ¶¨ÏòÓû§ÇëÇóµ½ CAS Server £¨ Step 2 £©£¬²¢´«µÝ Service
£¨Òª·ÃÎʵÄÄ¿µÄ×ÊÔ´µØÖ·£©¡£ Step 3 ÊÇÓû§ÈÏÖ¤¹ý³Ì£¬Èç¹ûÓû§ÌṩÁËÕýÈ·µÄ Credentials
£¬ CAS Server Ëæ»ú²úÉúÒ»¸öÏ൱³¤¶È¡¢Î¨Ò»¡¢²»¿ÉαÔìµÄ Service Ticket £¬²¢»º´æÒÔ´ý½«À´ÑéÖ¤£¬²¢ÇÒÖØ¶¨ÏòÓû§µ½
Service ËùÔÚµØÖ·£¨¸½´ø¸Õ²Å²úÉúµÄ Service Ticket £© , ²¢Îª¿Í»§¶Ëä¯ÀÀÆ÷ÉèÖÃÒ»¸ö
Ticket Granted Cookie £¨ TGC £© £» CAS Client ÔÚÄõ½ Service
ºÍвúÉúµÄ Ticket ¹ýºó£¬ÔÚ Step 5 ºÍ Step6 ÖÐÓë CAS Server ½øÐÐÉí·ÝºËʵ£¬ÒÔÈ·±£
Service Ticket µÄºÏ·¨ÐÔ¡£
ÔÚ¸ÃÐÒéÖУ¬ËùÓÐÓë CAS Server µÄ½»»¥¾ù²ÉÓà SSL ÐÒ飬ÒÔÈ·±£
ST ºÍ TGC µÄ°²È«ÐÔ¡£ÐÒ鹤×÷¹ý³ÌÖлáÓÐ 2 ´ÎÖØ¶¨Ïò µÄ¹ý³Ì¡£µ«ÊÇ CAS Client Óë CAS
Server Ö®¼ä½øÐÐ Ticket ÑéÖ¤µÄ¹ý³Ì¶ÔÓÚÓû§ÊÇ͸Ã÷µÄ£¨Ê¹Óà HttpsURLConnection
£©¡£
CAS ÇëÇóÈÏ֤ʱÐòͼÈçÏ£º

casÈÏ֤ʱÐòͼ
3.2.1. CAS ÈçºÎʵÏÖ SSO
µ±Óû§·ÃÎÊÁíÒ»¸öÓ¦ÓõķþÎñÔٴα»Öض¨Ïòµ½ CAS Server µÄʱºò£¬
CAS Server »áÖ÷¶¯»ñµ½Õâ¸ö TGC cookie £¬È»ºó×öÏÂÃæµÄÊÂÇ飺
1) Èç¹û User ³ÖÓÐ TGC ÇÒÆä»¹Ã»Ê§Ð§£¬ÄÇô¾Í×ß»ù´¡ÐÒéͼµÄ
Step4 £¬´ïµ½ÁË SSO µÄЧ¹û£»
2) Èç¹û TGC ʧЧ£¬ÄÇôÓû§»¹ÊÇÒªÖØÐÂÈÏÖ¤ ( ×ß»ù´¡ÐÒéͼµÄ Step3)
¡£
3.2.2. CAS ´úÀíģʽ
¸ÃģʽÐÎʽΪÓû§·ÃÎÊ App1 £¬ App1 ÓÖÒÀÀµÓÚ App2 À´»ñȡһЩÐÅÏ¢£¬È磺
User -->App1 -->App2¡£
ÕâÖÖÇé¿öÏ£¬¼ÙÉè App2 Ò²ÊÇÐèÒª¶Ô User ½øÐÐÉí·ÝÑéÖ¤²ÅÄÜ·ÃÎÊ£¬ÄÇô£¬ÎªÁ˲»Ó°ÏìÓû§ÌåÑ飨¹ý¶àµÄÖØ¶¨Ïòµ¼ÖÂ
User µÄ IE ´°¿Ú²»Í£µØÉÁ¶¯ ) £¬ CAS ÒýÈëÁËÒ»ÖÖ Proxy ÈÏÖ¤»úÖÆ£¬¼´ CAS Client
¿ÉÒÔ´úÀíÓû§È¥·ÃÎÊÆäËü Web Ó¦Óá£
´úÀíµÄǰÌáÊÇÐèÒª CAS Client ÓµÓÐÓû§µÄÉí·ÝÐÅÏ¢ ( ÀàËÆÆ¾¾Ý
) ¡£Ö®Ç°ÎÒÃÇÌáµ½µÄ TGC ÊÇÓû§³ÖÓжÔ×Ô¼ºÉí·ÝÐÅÏ¢µÄÒ»ÖÖÆ¾¾Ý£¬ÕâÀïµÄ PGT ¾ÍÊÇ CAS Client
¶Ë³ÖÓеĶÔÓû§Éí·ÝÐÅÏ¢µÄÒ»ÖÖÆ¾¾Ý¡£Æ¾½èTGC £¬ User ¿ÉÒÔÃâÈ¥ÊäÈëÃÜÂëÒÔ»ñÈ¡·ÃÎÊÆäËü·þÎñµÄ Service
Ticket £¬ËùÒÔ£¬ÕâÀïÆ¾½è PGT £¬ WebÓ¦ÓÿÉÒÔ´úÀíÓû§È¥ÊµÏÖºó¶ËµÄÈÏÖ¤£¬¶ø ÎÞÐèǰ¶ËÓû§µÄ²ÎÓë
¡£
ÏÂÃæÎª´úÀíÓ¦Ó㨠helloService £©»ñÈ¡ PGT µÄ¹ý³Ì£º £¨×¢£º
PGTURL ÓÃÓÚ±íʾһ¸ö Proxy ·þÎñ£¬ÊÇÒ»¸ö»Øµ÷Á´½Ó£» PGT Ï൱ÓÚ´úÀíÖ¤£» PGTIOU Ϊȡ´úÀíÖ¤µÄÔ¿³×£¬ÓÃÀ´Óë
PGT ×ö¹ØÁª¹ØÏµ£»£©

cas´úÀíPGT»ñÈ¡
ÈçÉÏÃæµÄ CAS Proxy ͼËùʾ£¬ CAS Client ÔÚ»ù´¡ÐÒéÖ®ÉÏ£¬ÔÚÑéÖ¤
ST ʱÌṩÁËÒ»¸ö¶îÍâµÄPGT URL( ¶øÇÒÊÇ SSL µÄÈë¿Ú ) ¸ø CAS Server £¬Ê¹µÃ
CAS Server ¿ÉÒÔͨ¹ý PGT URL Ìṩһ¸ö PGT ¸ø CAS Client ¡£
CAS Client Äõ½ÁË PGT(PGTIOU-85 ¡ ..ti2td)
£¬¾Í¿ÉÒÔͨ¹ý PGT Ïòºó¶Ë Web Ó¦ÓýøÐÐÈÏÖ¤¡£
ÏÂÃæÊÇ´úÀíÈÏÖ¤ºÍÌṩ·þÎñµÄ¹ý³Ì£º

ÈçÉÏͼËùʾ£¬ Proxy ÈÏÖ¤ÓëÆÕͨµÄÈÏÖ¤Æäʵ²î±ð²»´ó£¬ Step1 £¬
2 Óë»ù´¡Ä£Ê½µÄ Step1,2 ¼¸ºõÒ»Ñù£¬Î¨Ò»²»Í¬µÄÊÇ£¬ Proxy ģʽÓõÄÊÇ PGT ¶ø²»ÊÇ TGC
£¬ÊÇ Proxy Ticket £¨ PT £©¶ø²»ÊÇ Service Ticket ¡£
3.2.3. ¸¨Öú˵Ã÷
CAS µÄ SSO ʵÏÖ·½Ê½¿É¼ò»¯Àí½âΪ£º 1 ¸ö Cookie ºÍ N
¸ö Session ¡£ CAS Server ´´½¨ cookie£¬ÔÚËùÓÐÓ¦ÓÃÈÏ֤ʱʹÓ㬸÷Ó¦ÓÃͨ¹ý´´½¨¸÷×ÔµÄ
Session À´±êʶÓû§ÊÇ·ñÒѵǼ¡£
Óû§ÔÚÒ»¸öÓ¦ÓÃÑé֤ͨ¹ýºó£¬ÒÔºóÓû§ÔÚͬһä¯ÀÀÆ÷Àï·ÃÎÊ´ËÓ¦ÓÃʱ£¬¿Í»§¶ËÓ¦ÓÃÖеĹýÂËÆ÷»áÔÚ
session Àï¶ÁÈ¡µ½Óû§ÐÅÏ¢£¬ËùÒԾͲ»»áÈ¥ CAS Server ÈÏÖ¤¡£Èç¹ûÔÚ´Ëä¯ÀÀÆ÷Àï·ÃÎʱðµÄ web
Ó¦ÓÃʱ£¬¿Í»§¶ËÓ¦ÓÃÖеĹýÂËÆ÷ÔÚ session Àï¶ÁÈ¡²»µ½Óû§ÐÅÏ¢£¬¾Í»áÈ¥ CAS Server µÄ login
½Ó¿ÚÈÏÖ¤£¬µ«ÕâʱCAS Server »á¶ÁÈ¡µ½ä¯ÀÀÆ÷´«À´µÄ cookie £¨ TGC £©£¬ËùÒÔ CAS
Server ²»»áÒªÇóÓû§È¥µÇÂ¼Ò³ÃæµÇ¼£¬Ö»ÊÇ»á¸ù¾Ý service ²ÎÊýÉú³ÉÒ»¸ö Ticket £¬È»ºóÔÙºÍ
web Ó¦ÓÃ×öÒ»¸öÑéÖ¤ ticket µÄ½»»¥¶øÒÑ¡£
3.3. ÊõÓï½âÊÍ
CAS ϵͳÖÐÉè¼ÆÁË 5 ÖÐÆ±¾Ý£º TGC ¡¢ ST ¡¢ PGT ¡¢ PGTIOU
¡¢ PT ¡£
Ticket-granting cookie(TGC) £º´æ·ÅÓû§Éí·ÝÈÏ֤ƾ֤µÄ
cookie £¬ÔÚä¯ÀÀÆ÷ºÍ CAS Server ¼äͨѶʱʹÓ㬲¢ÇÒÖ»ÄÜ»ùÓÚ°²È«Í¨µÀ´«Ê䣨 Https
£©£¬ÊÇ CAS Server ÓÃÀ´Ã÷È·Óû§Éí·ÝµÄƾ֤£»
Service ticket(ST) £º·þÎñƱ¾Ý£¬·þÎñµÄΩһ±êʶÂë ,
ÓÉ CAS Server ·¢³ö£¨ Http ´«ËÍ£©£¬Í¨¹ý¿Í»§¶Ëä¯ÀÀÆ÷µ½´ïÒµÎñ·þÎñÆ÷¶Ë£»Ò»¸öÌØ¶¨µÄ·þÎñÖ»ÄÜÓÐÒ»¸öΩһµÄ
ST £»
Proxy-Granting ticket £¨ PGT £©£ºÓÉ CAS
Server °ä·¢¸øÓµÓÐ ST ƾ֤µÄ·þÎñ£¬ PGT °ó¶¨Ò»¸öÓû§µÄÌØ¶¨·þÎñ£¬Ê¹ÆäÓµÓÐÏò CAS Server
ÉêÇ룬»ñµÃ PT µÄÄÜÁ¦£»
Proxy-Granting Ticket I Owe You £¨ PGTIOU
£© : ×÷ÓÃÊǽ«Í¨¹ýƾ֤УÑéʱµÄÓ¦´ðÐÅÏ¢ÓÉ CAS Server ·µ»Ø¸ø CAS Client £¬Í¬Ê±£¬Óë¸Ã
PGTIOU ¶ÔÓ¦µÄ PGT ½«Í¨¹ý»Øµ÷Á´½Ó´«¸ø Web Ó¦ÓᣠWeb Ó¦ÓøºÔðά»¤ PGTIOU Óë
PGT Ö®¼äÓ³Éä¹ØÏµµÄÄÚÈÝ±í£»
Proxy Ticket (PT) £ºÊÇÓ¦ÓóÌÐò´úÀíÓû§Éí·Ý¶ÔÄ¿±ê³ÌÐò½øÐзÃÎÊµÄÆ¾Ö¤£»
ÆäËü˵Ã÷ÈçÏ£º
Ticket Granting ticket(TGT) £ºÆ±¾ÝÊÚȨƱ¾Ý£¬ÓÉ
KDC µÄ AS ·¢·Å¡£¼´»ñÈ¡ÕâÑùÒ»ÕÅÆ±¾Ýºó£¬ÒÔºóÉêÇë¸÷ÖÖÆäËû·þÎñƱ¾Ý (ST) ±ã²»±ØÔÙÏò KDC Ìá½»Éí·ÝÈÏÖ¤ÐÅÏ¢
(Credentials) £»
Authentication service(AS) ---------
ÈÏÖ¤Ó÷þÎñ£¬Ë÷È¡ Credentials £¬·¢·Å TGT £»
Ticket-granting service (TGS) ---------
Ʊ¾ÝÊÚȨ·þÎñ£¬Ë÷È¡ TGT £¬·¢·Å ST £»
KDC( Key Distribution Center ) ----------
ÃÜÔ¿·¢·ÅÖÐÐÄ£»
4. CAS °²È«ÐÔ
CAS µÄ°²È«ÐÔ½ö½öÒÀÀµÓÚ SSL ¡£Ê¹ÓõÄÊÇ secure cookie
¡£
4.1. TGC/PGT °²È«ÐÔ
¶ÔÓÚÒ»¸ö CAS Óû§À´Ëµ£¬×îÖØÒªÊÇÒª±£»¤ËüµÄ TGC £¬Èç¹û TGC
²»É÷±» CAS Server ÒÔÍâµÄʵÌå»ñµÃ£¬ Hacker Äܹ»ÕÒµ½¸Ã TGC £¬È»ºóð³ä CAS Óû§·ÃÎÊ
ËùÓÐ ÊÚȨ×ÊÔ´¡£ PGT µÄ½ÇÉ«¸ú TGC ÊÇÒ»ÑùµÄ¡£
´Ó»ù´¡Ä£Ê½¿ÉÒÔ¿´³ö£¬ TGC ÊÇ CAS Server ͨ¹ý SSL ·½Ê½·¢Ë͸øÖÕ¶ËÓû§£¬Òò´Ë£¬Òª½ØÈ¡
TGC ÄѶȷdz£´ó£¬´Ó¶øÈ·±£ CAS µÄ°²È«ÐÔ¡£
TGT µÄ´æ»îÖÜÆÚĬÈÏΪ 120 ·ÖÖÓ¡£
4.2. ST/PT °²È«ÐÔ
ST £¨ Service Ticket £©ÊÇͨ¹ý Http ´«Ë͵ģ¬Òò´ËÍøÂçÖÐµÄÆäËûÈË¿ÉÒÔ
Sniffer µ½ÆäËûÈ赀 Ticket ¡£ CAS ͨ¹ýÒÔϼ¸·½ÃæÀ´Ê¹ ST ±äµÃ¸ü¼Ó°²È«£¨ÊÂʵÉ϶¼ÊÇ¿ÉÒÔÅäÖõģ©£º
1¡¢ ST Ö»ÄÜʹÓÃÒ»´Î
CAS ÐÒ鹿¶¨£¬ÎÞÂÛ Service Ticket ÑéÖ¤ÊÇ·ñ³É¹¦£¬ CAS
Server ¶¼»áÇå³ý·þÎñ¶Ë»º´æÖеĸÃTicket £¬´Ó¶ø¿ÉÒÔÈ·±£Ò»¸ö Service Ticket ²»±»Ê¹ÓÃÁ½´Î¡£
2¡¢ ST ÔÚÒ»¶Îʱ¼äÄÚʧЧ
CAS ¹æ¶¨ ST Ö»ÄÜ´æ»îÒ»¶¨µÄʱ¼ä£¬È»ºó CAS Server »áÈÃËüʧЧ¡£Ä¬ÈÏÓÐЧʱ¼äΪ
5 ·ÖÖÓ¡£
3¡¢ ST ÊÇ»ùÓÚËæ»úÊýÉú³ÉµÄ
ST ±ØÐë×ã¹»Ëæ»ú£¬Èç¹û ST Éú³É¹æÔò±»²Â³ö£¬ Hacker ¾ÍµÈÓÚÈÆ¹ý
CAS ÈÏÖ¤£¬Ö±½Ó·ÃÎÊ ¶ÔÓ¦µÄ·þÎñ¡£
|