ÃֽŠ°Ô½Ã±Û(JAVA)
2017.08.19 / 11:30

SSO(Single Sign On)

µðÆÌ
Ãßõ ¼ö 264

SSO(Single Sign On)

URL : http://flyingwolf.co.kr/110185218574 ( SSOÀÇ ±âº» °³³ä )

URL : http://blog.naver.com/joycestudy?Redirect=Log&logNo=100086631671 ( SSOÀÇ ±¸Çö )​

1. SSO(Single Sign On)ÀÇ ±âº» °³³ä

* ÅëÇÕ ÀÎÁõ ü°è(SSO)ÀÇ Á¤ÀÇ

 - ÇÑ ¹øÀÇ ½Ã½ºÅÛ ÀÎÁõÀ» ÅëÇØ Á¢±ÙÇÏ°íÀÚ ÇÏ´Â ´Ù¾çÇÑ Á¤º¸½Ã½ºÅÛ¿¡ ÀçÀÎÁõ ÀýÂ÷ ¾øÀÌ Á¢±ÙÇÒ ¼ö ÀÖµµ·Ï ÇÏ´Â ÅëÇÕ ·Î±×ÀÎ ¼Ö·ç¼Ç.

 

SSO Àû¿ë ÀÌÀü

 - °¢ ½Ã½ºÅÛº°·Î °³º°ÀûÀÎ ID¿Í Æнº¿öµå »ç¿ë

 - Æнº¿öµå¸¦ Àؾî¹ö¸®±â ½¬¿ò

 - Æнº¿öµå °ü¸®°¡ ¾î·Á¿ö º¸¾È»ç°íÀÇ °¡´É¼ºÀÌ ³ôÀ½

 - Æнº¿öµå °ü¸® °¨µ¶ÀÌ º¹Àâ

 

SSO Àû¿ë ÀÌÈÄ

 - ·Î±×Àνà ÇÑ ¹ø¸¸ ID¿Í PW¸¦ ÀÔ·ÂÇؼ­ ´Ù¸¥ ½Ã½ºÅÛ¿¡ Æí¸®ÇÏ°Ô Á¢¼ÓÀÌ °¡´É

 - Æнº¿öµå¸¦ Àؾî¹ö¸± °¡´É¼ºÀÌ ÁÙ¾îµê

 - Æнº¿öµå °ü¸®°¡ ÆíÇØÁö°í º¸¾È¼öÁصµ ¿Ã¶ó°¨

* SSO ±¸¼º¿ä¼Ò

 - »ç¿ëÀÚ

  . °³º° ID/Password ·Î±×ÀÎ ½Ãµµ

 

 - ÀÎÁõ ¼­¹ö

  . ACLÀ» ÅëÇÑ ÅëÇÕ ÀÎÁõ¼­¹ö

 

 - LDAP

  . ³×Æ®¿öÅ©»óÀÇ ÀÚ¿øµéÀ» ½Äº°ÇÏ°í,

  . »ç¿ëÀÚ¿Í ApplicationµéÀÌ ÀÚ¿ø¿¡ Á¢±ÙÇÒ ¼ö ÀÖµµ·Ï ÇÏ´Â ³×Æ®¿öÅ© µð·ºÅ͸® ¼­ºñ½º

 

 - SSO Agent

  . °¢ Á¤º¸½Ã½ºÅÛ¿¡ ÀÚµ¿ÀÎÁõ Á¤º¸(Token) ¼Û¼ö½Å ¼öÇà

 

* SSO Àå´ÜÁ¡ ºñ±³

 - ÀåÁ¡

  . ¿î¿µºñ¿ë °¨¼Ò

  . º¸¾È¼º °­È­

  . »ç¿ëÀÚ ÆíÀǼº Áõ°¡(Æнº¿öµå ºÐ½Ç À§Çè °¨¼Ò)

  . Áß¾ÓÁýÁß °ü¸®¸¦ ÅëÇÑ È¿À²ÀûÀÎ °ü¸® °¡´É

 

 - ´ÜÁ¡

  . SSO ¼­¹ö°¡ ´ÜÀÏ ½ÇÆÐ ÁöÁ¡

  . SSO ¼­¹ö ħÇØ ½Ã ¸ðµç ¼­¹öÀÇ º¸¾È ħÇØ

  . SSO °³¹ß ¹× ¿î¿µºñ¿ë ¹ß»ý

 

¿¢½ºÆ®¶ó³Ý Á¢±Ù °ü¸®(Extranet Access Management, EAM)

 - ÇÑ ¹ø ·Î±×ÀÎÀ¸·Î ¿©·¯ ¼­¹ö¿¡ Á¢±ÙÇÒ ¼ö ÀÖ´Â ½Ì±Û»çÀο ±â´É°ú 

  ±ÇÇÑ¿¡ µû¶ó Â÷µîÀûÀ¸·Î ÀÚ¿ø¿¡ Á¢±ÙÇÏ°Ô ÇØÁÖ´Â º¸¾È¼ºÀ» Á¦°øÇÏ´Â ¼Ö·ç¼Ç. 

 - ÀÏ¹Ý ±â¾÷°ú ±ÝÀ¶±Ç, Æ÷Å» µî ±â¾÷ ³» »ç¿ëÀÚ¿Í ÀÏ¹Ý »ç¿ëÀÚ¿¡°Ô Àû¿ëÀÌ °¡´ÉÇϸç ÀÎÅÍ³Ý ¹ðÅ·, 

  ¼îÇÎ µî ¼­ºñ½º ÆíÀǼº°ú ¿î¿µºñ Àý°¨ ¹× ±â¾÷ ³» º¸¾È È¿°ú°¡ ÀÖ´Ù.

 

2. ±¸Çö

URL : http://blog.naver.com/joycestudy?Redirect=Log&logNo=100086631671

¾ÆÁÖ ¿À·¡Àü¿¡ SSO °ü·Ã ¼Ö·ç¼ÇÀ» ã¾Æº¸´Ù°¡, JOSSO¸¦ µé¿©´Ù º» ÀûÀÌ ÀÖ¾ú´Ù. 2006³â 9¿ù. ±×¶§ÀÇ JOSSO ¹öÀüÀÌ 1.4. ±×·ÎºÎÅÍ ½Ã°£ÀÌ, ¾Æ´Ï ¼¼¿ùÀÌ ¸¹ÀÌ Èê·¶´Ù. ±×µ¿¾È JOSSO ¿ª½Ã ²Ï ¸¹Àº º¯È­¸¦ °Þ¾ú´Ù. ¹«¾ùº¸´Ùµµ ¿¹Àü¿¡´Â ÀüÇô Áö¿øÇÏÁö ¾Ê´ø Cross Domain SSO¸¦ ÀÌÁ¨ Áö¿øÇÑ´Ù°í ÇÑ´Ù. µµ¸ÞÀÎÀÌ ¼­·Î ´Þ¶óµµ, SSO°¡ µÈ´Ü´Ù. ±× ¿ø¸®°¡ ¹®µæ ±Ã±ÝÇØÁ³´Ù.

 

 

  • http://www.josso.org/ JOSSO °ø½Ä »çÀÌÆ®. Ȥ½Ã ¾àÀÚ°¡ ±Ã±ÝÇϽŠºÐÀ» À§ÇØ. Java Open  Single Sign-On = JOSSO. 
    2009³â 8¿ù ÇöÀç, ÃֽŠ¹öÀüÀº 1.8. Å©·Î½º µµ¸ÞÀÎ ±â´ÉÀ» Áö¿øÇÔ. PHP, ASP, Ŭ¶óÀ̾ðÆ®(¿¡ÀÌÀüÆ®) ¸ðµâ Á¦°ø

 

 

 

http://www.josso.org/confluence/display/JOSSO1/Architecture+Overview ¾ÆÅ°ÅØÃç °³¿ä

 

¹®¼­°¡ »ý°¢º¸´Ù º¹ÀâÇÏ´Ù. ³Ê¹« ¸ÚÀÖ°Ô Æ÷ÀåÇÏ·Á°í ÇÑ °Í °°´Ù.

 

 

ÇÏÁö¸¸, »ý°¢º¸´Ù °£´ÜÇÏ´Ù. PHP¿¡¼­ »ç¿ëÇÏ´Â »ùÇÃÀ» º¸ÀÚ.

 

 

Sample page

index.php

 <!doctype html public "-//w3c//dtd html 4.0 transitional//en"> <html> <head> <title>Sample Partner Application - JOSSO</title> <meta name="description" content="Java Open Single Signon"> </head> <body> <h1>This is a very simple PHP JOSSO partner application</h1> <?php // jossoagent is automatically instantiated by josso.php, // declared in auto_prepend_file property of php.ini. // If you do not use auto_prepend feature, include josso.php in all your pages // Get current SSO User and SSO Session information, $user = $josso_agent->getUserInSession(); $sessionId = $josso_agent->getSessionId(); // Check if user is authenticated if (isset($user)) { // Display USER INFORMATION // Username associated to authenticated user echo 'Username : ' . $user->getName() . '<br><br>'; // Get a specific user property echo 'user.name=' . $user->getProperty('user.name') . '<br><br>'; // Get all user properties $properties = $user->getProperties(); if (is_array($properties)) { foreach ($properties as $property) { echo $property['name'] . '=' . $property['value'] . '<br>'; } } // Get all user roles $roles = $josso_agent->findRolesBySSOSessionId($sessionId); echo '<h2>Roles</h2>'; foreach ($roles as $role) { echo $role->getName() . '<br>'; } // Check if user belongs to a specific role if ($josso_agent->isUserInRole('role1')) { echo '<h3>user is in role1</h3>'; } echo 'Click <a href="'.jossoCreateLogoutUrl().'">here</a> to logout ...<br>'; echo '<p>SSO Session ID : ' . $sessionId . '</p>'; } else { // User is unknown.. echo '<h2>you are an annonymous user ...</h2>'; echo 'Click <a href="'.jossoCreateLoginUrl().'">here</a> to login ...'; } ?> </body> </html>

 

Áß°£¿¡ ±¦È÷ º¹ÀâÇÏ°Ô º¸ÀÌ´Â ºÎºÐÀº, userÀÇ role(¿ªÇÒ)°ú property(¼Ó¼º)À» °¡Á®¿Í¼­ º¸¿©ÁÖ·Á Çϱ⠶§¹®ÀÌ°í, ½ÇÁ¦·Î´Â ¾ÆÁÖ °£´ÜÇÏ´Ù.

 

$user = $josso_agent->getUserInSession(); $sessionId = $josso_agent->getSessionId(); // Check if user is authenticated if (isset($user)) { echo 'Click <a href="'.jossoCreateLogoutUrl().'">here</a> to logout ...<br>'; echo '<p>SSO Session ID : ' . $sessionId . '</p>'; } else { // User is unknown.. echo '<h2>you are an annonymous user ...</h2>'; echo 'Click <a href="'.jossoCreateLoginUrl().'">here</a> to login ...'; }

 »ç¿ëÀÚ(user)ÀÇ ¼¼¼Ç(session)ÀÌ ¼¼¼Ç ¼­¹ö¿¡ ÀÖ´ÂÁö¸¦ °Ë»çÇϸé, ³¡ÀÌ´Ù.±×·±µ¥, »çÀÌÆ®ÀÇ ¹®¼­¸¦ ¾Æ¹«¸® µé¿©´Ù ºÁµµ, cross domainÀÇ ¿ø¸®¿¡ ´ëÇؼ­´Â ³ª¿Í ÀÖ´Â °Ô ¾ø´Ù. °á±¹, ¼Ò½º¸¦ ¼³Ä¡Çؼ­ ¶â¾îºÁ¾ß ¾Ë ¼ö ÀÖÀ» µí... 3. »ý°¢º°²¨ ¾ø³×¿ä.·Î±×ÀÎ ¾ÆÀ̵ð¿Í Æнº¿öµå·Î ÀÎÁõÀ» ÇÏ°í ³­ ´ÙÀ½¿¡ ¼¼¼ÇÀ» ¸¸µé¾î¼­ ¼¼¼ÇÁ¤º¸¸¦ ÆäÀÌÁö È£ÃâÇÒ¶§¸¶´Ù È®ÀÎÇϴµí.±×·¯¸é HTTPS¿¡¼­ÀÇ publicÅ°¸¦ ³ª´²ÁÖ°Ô µÇ¸é, domainÀÌ ´Ù¸¥ °÷¿¡¼­´Â ¾î¶»°Ô ±× Å°·Î ÀÎÁõÀ» ÇÏ´À³ÄÀε¥??domainÀÌ ´Ù¸¥ °÷¿¡ publicÅ°¸¦ °°ÀÌ ¾µ ¼ö ÀÖ°Ô µÇ¾ú³ªº¸³×¿ä. ( ÀÎÁõ¼­ ¼­ºñ½º¿¡¼­ ¸ÖƼµµ¸ÞÀοë ÀÎÁõ¼­¸¦ ÆȾƸÔÀ»µí? )¿ª½Ã³ª ã¾Æº¸´Ï ¸ÖƼµµ¸ÞÀÎ ÀÎÁõ¼­¶ó´Â °ÍÀ» ÆȾƸ԰í Àֳ׿ä.