Zend_OpenId_Provider
(Àº)´Â,OpenID ¼¹ö¸¦ ½ÇÀåÇϱâ À§Çؼ »ç¿ëÇÏ´Â °ÍÀÔ´Ï´Ù.
º»Àå¿¡¼´Â ¿ì¼± µ¿ÀÛÇÏ´Â ¼¹ö¸¦ ÀÛ¼ºÇϱâ À§ÇÑ Ãʺ¸ÀûÀÎ ¿¹¸¦ ¼³¸íÇÕ´Ï´Ù.
±×·¯³ª, ½ÇÁ¦·Î ¿î¿ëÇÑ´Ù OpenID ¼¹ö
(www.myid.net µîÀÌ °°Àº °Í)
(À»)¸¦ ½ÇÀåÇÏ·Á¸é , º¸´Ù º¹ÀâÇÑ ¹®Á¦¿¡ ´ëÀÀÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.
ÀÌÇÏÀÇ ½Äº°ÀÚ´Â,Zend_OpenId_Provider::register
(À»)¸¦ »ç¿ëÇØ À¯Àú ¾îÄ«¿îÆ®¸¦ ÀÛ¼ºÇÏ´Â Äڵ带 Æ÷ÇÔÇÕ´Ï´Ù.
rel="openid.server"
ÇÏÁö¸¸ ÁöÁ¤µÇ¾î ÀÖ´Â ¸µÅ© ¿ä¼Ò´Â,
Àڱ⠺δãÀÇ ¼¹ö ½ºÅ©¸³Æ®¸¦ °¡¸®Å°°í ÀÖ½À´Ï´Ù.ÀÌ ½Äº°ÀÚ¸¦ OpenID
´ëÀÀÀÇ »çÀÌÆ®¿¡ ¼Û½ÅÇϸé, ÀÌ ¼¹ö»ó¿¡¼ÀÇ ÀÎÁõÀ» ½Ç½ÃÇÕ´Ï´Ù.
<html> º¸´Ù ÀüÀÇ ÄÚµå´Â, ÀÚµ¿ÀûÀ¸·Î À¯Àú ¾îÄ«¿îÆ®¸¦ ÀÛ¼ºÇϱâ À§ÇÑ ¾à°£ÀÇ ÁÖ¼úÀÔ´Ï´Ù. ½ÇÁ¦ÀÇ ½Äº°ÀÚ¸¦ »ç¿ëÇÏ´Â °æ¿ì´Â, ÀÌ·¯ÇÑ ÄÚµå´Â ºÒÇÊ¿äÇÕ´Ï´Ù.
·Ê 28.11. ½Äº°ÀÚ
<?php
require_once "Zend/OpenId/Provider.php";
define("TEST_SERVER", Zend_OpenId::absoluteURL("example-8.php"));
define("TEST_ID", Zend_OpenId::selfURL());
define("TEST_PASSWORD", "123");
$server = new Zend_OpenId_Provider();
if (!$server->hasUser(TEST_ID)) {
$server->register(TEST_ID, TEST_PASSWORD);
}
?>
<html><head>
<link rel="openid.server" href="<?php echo TEST_SERVER;?>" />
</head><body>
<?php echo TEST_ID;?>
</body></html>
´ÙÀ½ÀÇ ½Äº° ¼¹ö ½ºÅ©¸³Æ®´Â,OpenID ´ëÀÀÀÇ »çÀÌÆ®·ÎºÎÅÍÀÇ 2Á¾·ùÀÇ ¸®Äù½ºÆ®
(°ü·ÃÁö¾î¿Í ÀÎÁõ) (À»)¸¦ ó¸®ÇÕ´Ï´Ù.¾î´À ÂÊ¿¡ ´ëÇØ¼µµ, °°Àº ¸Þ¼Òµå
Zend_OpenId_Provider::handle
±×¸®°í ó¸®ÇÕ´Ï´Ù.
Zend_OpenId_Provider
¿¡ °Ç³×ÁÖ´Â µÎ Àμö´Â
·Î±×ÀÎ URL (¿Í)°ú ½Å·Ú°¡ ³¡³ ÆäÀÌÁöÀÇ URL ±×¸®°í,
À̰͵éÀº ÃÖÁ¾ »ç¿ëÀڷκÎÅÍ ÁöÁ¤µÈ °ÍÀÔ´Ï´Ù.
¼º°øÇßÀ» °æ¿ì,Zend_OpenId_Provider::handle
¸Þ¼Òµå´Â ¹®ÀÚ¿À» µ¹·ÁÁÝ´Ï´Ù.À̰ÍÀº ±×´ë·Î OpenID
´ëÀÀÀÇ »çÀÌÆ®¿¡ µÇµ¹¸®Áö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù.
½ÇÆÐÇßÀ» °æ¿ì´Â false
(À»)¸¦ µ¹·ÁÁÝ´Ï´Ù.
ÀÌ ¿¹¿¡¼´Â, ½ÇÆÐÇßÀ» °æ¿ì¿¡ HTTP 403 ¸®½ºÆù½º¸¦ µ¹·ÁÁÖ°í ÀÖ½À´Ï´Ù.
ÀÌ ÆäÀÌÁö¸¦ À¥ ºê¶ó¿ìÀú·Î Ç¥½ÃÇÏ·Á°í Çϸé,
HTTP 403 ¸®½ºÆù½º°¡ µ¹·ÁÁÖ¾îÁý´Ï´Ù.¸®Äù½ºÆ®°¡
OpenID Çü½ÄÀº ¾Æ´Ï¾ú±â ¶§¹®ÀÔ´Ï´Ù.
·Ê 28.12. ½ÉÇÃÇÑ ½Äº° ÇÁ·Î¹ÙÀÌ´õ
<?php
require_once "Zend/OpenId/Provider.php";
$server = new Zend_OpenId_Provider("example-8-login.php", "example-8-trust.php");
$ret = $server->handle();
if (is_string($ret)) {
echo $ret;
} else if ($ret !== true) {
header('HTTP/1.0 403 Forbidden');
echo 'Forbidden';
}
ÀÌ Ã³¸®, ±×¸®°í ±× ÈÄÀÇ ´ëÈ Çü½ÄÀÇ ½ºÅ©¸³Æ®¿¡¼´Â ½ÃÅ¥¾îÀÎ Á¢¼Ó (HTTPS) (À»)¸¦ »ç¿ëÇÏ´Â °ÍÀ» ÃßõÇÕ´Ï´Ù. À̰ÍÀº, ÆÐ½º¿öµåÀÇ ´©¼³À» ¸·±â (À§ÇØ)¶§¹®ÀÔ´Ï´Ù.
´ÙÀ½ÀÇ ½ºÅ©¸³Æ®´Â, ½Äº° ¼¹ö Zend_OpenId_Provider
¿ë¹«ÀÇ ·Î±×ÀΠȸéÀ» ½ÇÀåÇÑ °ÍÀÔ´Ï´Ù.
À¯Àú°¡ ¾ÆÁ÷ ·Î±×ÀÎÇϰí ÀÖÁö ¾Ê´Â °æ¿ì´Â, ÀÌ ÆäÀÌÁö¿¡ ¸®µð·ºÆ® ÇÕ´Ï´Ù.
ÀÌ ÆäÀÌÁö·Î À¯Àú°¡ ÆÐ½º¿öµå¸¦ ÀÔ·ÂÇÏ°í ·Î±×ÀÎÀ» ½Ç½ÃÇÕ´Ï´Ù.
ÀÌ ½Äº°ÀÚ ½ºÅ©¸³Æ®·ÎºÎÅÍÀÇ À¯Àú ·¹Áö½ºÆ®·¹À̼ǽÃÀÇ ÆÐ½º¿öµå´Â "123" ÀÔ´Ï´Ù.
¼Û½ÅÇϸé, ÀÌ ½ºÅ©¸³Æ®´Â Zend_OpenId_Provider::login
¿¡ ÃÖÁ¾ »ç¿ëÀÚÀÇ ½Äº°ÀÚ¿Í ÆÐ½º¿öµå¸¦ °Ç³×ÁÖ¾î, ½Äº° ÇÁ·Î¹ÙÀÌ´õÀÇ ½ºÅ©¸³Æ®¿¡ ¸®µð·ºÆ® ÇÕ´Ï´Ù.
¼º°øÇßÀ» °æ¿ì,Zend_OpenId_Provider::login
(Àº)´Â ÃÖÁ¾ »ç¿ëÀÚ¿Í ½Äº° ÇÁ·Î¹ÙÀÌ´õÀÇ »çÀÌÀÇ ¼¼¼ÇÀ» È®¸³ÇØ,
·Î±×ÀÎÇÑ À¯ÀúÀÇ Á¤º¸¸¦ º¸Á¸ÇÕ´Ï´Ù.
±× ÀÌÈÄ, µ¿ÀÏ À¯Àú·ÎºÎÅÍÀÇ ¸®Äù½ºÆ®¿¡¼´Â
(´Ù¸¥ OpenID ´ëÀÀ À¥ »çÀÌÆ®·ÎºÎÅÍÀÇ °ÍÀ̾ú´Ù°í ÇØµµ)
ÀÎÁõ 󸮰¡ ºÒÇÊ¿äÇØÁý´Ï´Ù.
ÀÌ ¼¼¼ÇÀº, ÃÖÁ¾ »ç¿ëÀÚ¿Í ½Äº° ÇÁ·Î¹ÙÀÌ´õÀÇ »çÀ̸¸ÀÇ °ÍÀÓ¿¡ ÁÖÀÇÇսôÙ. OpenID ´ëÀÀÀÇ »çÀÌÆ®´Â, ÀÌ ¼¼¼Ç¿¡ ´ëÇØ ¾Æ¹«°Íµµ ¾Ë ¼ö ¾ø½À´Ï´Ù.
·Ê 28.13. ½ÉÇÃÇÑ ·Î±×ÀΠȸé
<?php
require_once "Zend/OpenId/Provider.php";
$server = new Zend_OpenId_Provider();
if ($_SERVER['REQUEST_METHOD'] == 'POST' &&
isset($_POST['openid_action']) &&
$_POST['openid_action'] === 'login' &&
isset($_POST['openid_identifier']) &&
isset($_POST['openid_password'])) {
$server->login($_POST['openid_identifier'], $_POST['openid_password']);
Zend_OpenId::redirect("example-8.php", $_GET);
}
?>
<html><body>
<form method="post"><fieldset>
<legend>OpenID ·Î±×ÀÎ</legend>
<table border=0>
<tr><td>Name:</td><td><input type="text" name="openid_identifier" value="<?php
echo $_GET['openid_identity'];
?>"></td></tr>
<tr><td>Password:</td><td><input type="text" name="openid_password" value=""></td></tr>
<tr><td> </td><td><input type="submit" name="openid_action" value="login"></td></tr>
</table></fieldset></form></body></html>
À¯Àú°¡ ·Î±×ÀÎÇϰí ÀÖ´Ù°í ÇÏ´Â °Í ¸¸À¸·Î´Â, ÀÎÁõÀÌ ¼º°øÇß´Ù°í´Â ´Ü¾ðÇÒ ¼ö ¾ø½À´Ï´Ù. °³°³ÀÇ OpenID ´ëÀÀ »çÀÌÆ®¿¡ µµÂøÇϰí, ±×°ÍÀ» ½Å·ÚÇÒÁö¸¦ À¯Àú°¡ °áÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. ´ÙÀ½ÀÇ ½Å·Ú ȸéÀº, ÃÖÁ¾ »ç¿ëÀÚ¿¡ ±×°ÍÀ» ¼±ÅýÃŰ´Â °ÍÀÔ´Ï´Ù. ÀÌ ¼±ÅÃÀº, ÇöÀçÀÇ ¸®Äù½ºÆ®¸¸ ½Ç½ÃÇϵ簡, ȤÀº "¿µ±¸È÷" ½Ç½ÃÇÒ±îÀÇ ¾ðÁ¨°¡µË´Ï´Ù. ÈÄÀÚÀÇ °æ¿ì´Â, ½Å·ÚÇÏ´Â »çÀÌÆ®/ÇÏÁö ¾Ê´Â »çÀÌÆ® ÀÇ Á¤º¸°¡ ³»ºÎ µ¥ÀÌŸº£À̽º¿¡ º¸Á¸µÇ¾î ÀÌ »çÀÌÆ®·ÎºÎÅÍÀÇ ´ÙÀ½ ¹ø ÀÌÈÄÀÇ ÀÎÁõ ¸®Äù½ºÆ®´Â ÀÚµ¿ÀûÀ¸·Î ó¸®µÇ°Ô µË´Ï´Ù.
·Ê 28.14. ½ÉÇÃÇÑ ½Å·Ú ȸé
<?php
require_once "Zend/OpenId/Provider.php";
$server = new Zend_OpenId_Provider();
if ($_SERVER['REQUEST_METHOD'] == 'POST' &&
isset($_POST['openid_action']) &&
$_POST['openid_action'] === 'trust') {
if (isset($_POST['allow'])) {
if (isset($_POST['forever'])) {
$server->allowSite($server->getSiteRoot($_GET));
}
$server->respondToConsumer($_GET);
} else if (isset($_POST['deny'])) {
if (isset($_POST['forever'])) {
$server->denySite($server->getSiteRoot($_GET));
}
Zend_OpenId::redirect($_GET['openid_return_to'], array('openid.mode'=>'cancel'));
}
}
?>
<html><body>
<p><a href="<?php echo $server->getSiteRoot($_GET);?>">
<?php echo $server->getSiteRoot($_GET);?></a> ±×·¸´Ù°í ÇÏ´Â »çÀÌÆ®°¡, ´ç½ÅÀÇ ½Äº° URL
<a href="<?php echo $server->getLoggedInUser();?>">
<?php echo $server->getLoggedInUser();?></a> ÀÇ È®ÀÎÀ» ¿ä±¸ÇØ ¿Ô½À´Ï´Ù.</p>
<form method="post">
<input type="checkbox" name="forever">
<label for="forever">¿µ±¸È÷</label><br>
<input type="hidden" name="openid_action" value="trust">
<input type="submit" name="allow" value="Çã°¡ÇÑ´Ù">
<input type="submit" name="deny" value="°ÅºÎÇÑ´Ù">
</form></body></html>
½ÇÁ¦·Î ¿î¿ëµÇ°í ÀÖ´Ù OpenID ¼¹ö´Â, Åë»óÀº Simple Registration Extension ¿¡ ´ëÀÀÇϰí ÀÖ½À´Ï´Ù. À̰ÍÀ» »ç¿ëÇϸé, À¯Àú¿¡ ´ëÇÑ Á¤º¸¸¦ ÄÁ½´¸Ó(consumer)°¡ ÇÁ·Î¹ÙÀÌ´õ¿¡ ¹®ÀÇÇÏ´Â °ÍÀÌ °¡´ÉÇØÁý´Ï´Ù. ÀÌ °æ¿ì, ½Å·Ú ³¡³ ÆäÀÌÁö¿¡¼´Â À¯ÀúÀÇ Á¤º¸¸¦ ÃëµæÇÒ ¼ö ÀÖ°Ô µË´Ï´Ù.
ÇÁ·Î¹ÙÀÌ´õÀÇ ¸ðµç ÇÔ¼ö¸¦ ÇϳªÀÇ ½ºÅ©¸³Æ®¿¡ Á¤¸®ÇÒ ¼öµµ ÀÖ½À´Ï´Ù.
ÀÌ °æ¿ì´Â ·Î±×ÀÎ URL (¿Í)°ú ½Å·Ú°¡ ³¡³ »óÅ URL (Àº)´Â »ý·« µÇ¾î
Zend_OpenId_Provider
(Àº)´Â µ¿ÀÏ ÆäÀÌÁö¿¡ GET Àμö
"openid.action" (À»)¸¦ Ãß°¡ÇÑ Àå¼Ò¸¦ °¡¸®Å°°Ô µË´Ï´Ù.
´ÙÀ½ÀÇ ¿¹´Â ¿ÏÀüÇÑ °ÍÀÌ ¾Æ´Õ´Ï´Ù. ÃÖÁ¾ »ç¿ëÀÚ Àü¿ëÀÇ GUI (À»)¸¦ Á¦°øÇϰí ÀÖ¾ú½À´Ï´Ù¸¸, ·Î±×Àΰú ½Å·Ú 󸮸¦ ÀÚµ¿ÀûÀ¸·Î ½Ç½ÃÇÕ´Ï´Ù. À̰ÍÀº »ùÇÃÀ» °¡´ÉÇÑ ÇÑ ½ÉÇÃÇϰÔÇϱâ À§ÇÑ Ã³Ä¡À̸ç, ½ÇÁ¦ÀÇ ¼¹ö¿¡¼´Â, ¹æ±ÝÀüÀÇ »ùÇðú °°Àº Äڵ嵵 ÇÊ¿äÇÕ´Ï´Ù.
·Ê 28.15. ¸ðµç °ÍÀ» Áý°èÇÑ °Í
<?php
require_once "Zend/OpenId/Provider.php";
$server = new Zend_OpenId_Provider();
define("TEST_ID", Zend_OpenId::absoluteURL("example-9-id.php"));
define("TEST_PASSWORD", "123");
if ($_SERVER['REQUEST_METHOD'] == 'GET' &&
isset($_GET['openid_action']) &&
$_GET['openid_action'] === 'login') {
$server->login(TEST_ID, TEST_PASSWORD);
unset($_GET['openid_action']);
Zend_OpenId::redirect(Zend_OpenId::selfUrl(), $_GET);
} else if ($_SERVER['REQUEST_METHOD'] == 'GET' &&
isset($_GET['openid_action']) &&
$_GET['openid_action'] === 'trust') {
unset($_GET['openid_action']);
$server->respondToConsumer($_GET);
} else {
$ret = $server->handle();
if (is_string($ret)) {
echo $ret;
} else if ($ret !== true) {
header('HTTP/1.0 403 Forbidden');
echo 'Forbidden';
}
}
ÀÌ ¿¹¸¦ ¹æ±ÝÀüÀÇ º¹¼ö ÆäÀÌÁö ºÐÇ񮂡ú ºñ±³ÇØ º¸¸é,
¹èºÐ ó¸®ÀÇ ÄÚµå ÀÌ¿ÜÀÇ Â÷ÀÌ´Â 1À̳ª °÷ »ÓÀÎ °Í¿¡ ´«Ä¡ äÀ̰ÚÁö¿ä.
±×·¡.unset($_GET['openid_action'])
ÀÇ ºÎºÐÀÔ´Ï´Ù.
ÀÌ unset
(Àº)´Â, ´ÙÀ½ÀÇ ¸®Äù½ºÆ®¸¦ ¸ÞÀÎ Çڵ鷯¿¡ µ¹¸®±â À§Çؼ ÇÊ¿äÇÕ´Ï´Ù.
´ÙÀ½¿¡ ³ªÅ¸³»´Â ½Äº°ÀÚ ÆäÀÌÁö¿¡´Â, ¶Ç´Ù½Ã ÁÖ¼úÀÌ Â¥³Ö¾îÁö°í ÀÖ½À´Ï´Ù. ¿©±â¿¡¼´Â »õ·Î¿î À¯Àú ¾îÄ«¿îÆ®ÀÇ ÀÛ¼ºÀ» ½Ç½ÃÇØ, ±×°ÍÀ» ÇÁ·ÎÆÄÀÏ (´Ð³×ÀÓ°ú ÆÐ½º¿öµå) (¿Í)°ú °ü·ÃÁþ°í ÀÖ½À´Ï´Ù. ½ÇÁ¦ÀÇ È¯°æ¿¡¼´Â ÀÌ·¯ÇÑ Ã³¸®´Â ºÒÇÊ¿äÇÕ´Ï´Ù.ÃÖÁ¾ »ç¿ëÀÚ´Â OpenID ¼¹ö»ó¿¡¼ ÀÌ·¯ÇÑ Á¤º¸¸¦ µî·ÏÇϱ⠶§¹®ÀÔ´Ï´Ù. ±×·¯³ª, ÀÌ·¯ÇÑ µî·Ï¿ëÀÇ GUI ÀÇ ½ÇÀå¿¡ ´ëÇØ¼´Â ÀÌ ¸Þ´º¾ó¿¡¼´Â ´Ù·çÁö ¾Ê½À´Ï´Ù.
·Ê 28.16. ÇÁ·ÎÆÄÀÏÀ» °ü·ÃÁöÀº ½Äº°ÀÚ
<?php
require_once "Zend/OpenId/Provider.php";
require_once "Zend/OpenId/Extension/Sreg.php";
define("TEST_SERVER", Zend_OpenId::absoluteURL("example-10.php"));
define("TEST_ID", Zend_OpenId::selfURL());
define("TEST_PASSWORD", "123");
$server = new Zend_OpenId_Provider();
if (!$server->hasUser(TEST_ID)) {
$server->register(TEST_ID, TEST_PASSWORD);
$server->login(TEST_ID, TEST_PASSWORD);
$sreg = new Zend_OpenId_Extension_Sreg(array(
'nickname' =>'test',
'email' => 'test@test.com'
));
$root = Zend_OpenId::absoluteURL(".");
Zend_OpenId::normalizeUrl($root);
$server->allowSite($root, $sreg);
$server->logout();
}
?>
<html><head>
<link rel="openid.server" href="<?php echo TEST_SERVER;?>" />
</head><body>
<?php echo TEST_ID;?>
</body></html>
ÀÌ ½Äº°ÀÚ¸¦ OpenID ´ëÀÀÀÇ »çÀÌÆ® (¿©±â¿¡¼´Â, ¹æ±ÝÀüÀÇ ÀåÀÇ Simple Registration Extension ÀÇ »ùÇÃÀ» »ç¿ëÇÕ´Ï´Ù) ¿¡ °Ç³×ÁÖ¾î, ±× »çÀÌÆ®´Â ´ÙÀ½ÀÇ OpenID ¼¹ö ½ºÅ©¸³Æ®¸¦ »ç¿ëÇÕ´Ï´Ù.
À̰ÍÀº, ¹æ±ÝÀüÀÇ "¸ðµç °ÍÀ» Á¶ÇÕÇÑ´Ù" ¿¹¸¦ Á¶±Ý º¯°æÇÑ °ÍÀÔ´Ï´Ù.
ÀÚµ¿ ·Î±×ÀÎÀÇ ±¸Á¶´Â°ú °°ÀÌ »ç¿ëÇϰí ÀÖ½À´Ï´Ù¸¸,
½Å·Ú°¡ ³¡³ ÆäÀÌÁö¿¡ °üÇÑ Á¤º¸´Â Æ÷ÇÔÇϰí ÀÖÁö ¾Ê½À´Ï´Ù.
À¯Àú´Â À̹Ì, ÀÌ »ùÇÃÀÇ ½ºÅ©¸³Æ®¸¦ "¿µ±¸È÷" ½Å·ÚÇϰí ÀÖ½À´Ï´Ù.
À̰ÍÀ» ½Ç½ÃÇϰí ÀÖ´Â °ÍÀº, ½Äº°ÀÚ ½ºÅ©¸³Æ®ÀÇ
Zend_OpenId_Provider::alowSite
¸Þ¼ÒµåÀÔ´Ï´Ù.
°°Àº ¸Þ¼Òµå·Î ÇÁ·ÎÆÄÀϰú ½Å·Ú°¡ ³¡³ »óÅ URL (À»)¸¦ °ü·ÃÁö¾î
½Å·Ú°¡ ³¡³ »óÅ URL (À¸)·ÎºÎÅÍ ¸®Äù½ºÆ®°¡ ÀÖ¾úÀ» °æ¿ì¿¡ ÀÌ ÇÁ·ÎÆÄÀÏÀÌ ÀÚµ¿ÀûÀ¸·Î µ¹·ÁÁÖ¾îÁý´Ï´Ù.
Simple Registration Extension (À»)¸¦ µ¿ÀÛ½Ã۱â À§Çؼ À¯ÀÏ ÇÊ¿äÇÑ °ÍÀº,
Zend_OpenId_Extension_Sreg
ÀÇ ¿ÀºêÁ§Æ®¸¦
Zend_OpenId_Provider::handle
ÀÇ 2 ¹øÂ°ÀÇ Àμö·Î¼ °Ç³×ÁÖ´Â °ÍÀÔ´Ï´Ù.
·Ê 28.17. SREG (À»)¸¦ »ç¿ëÇÑ ÇÁ·Î¹ÙÀÌ´õ
<?php
require_once "Zend/OpenId/Provider.php";
require_once "Zend/OpenId/Extension/Sreg.php";
$server = new Zend_OpenId_Provider();
$sreg = new Zend_OpenId_Extension_Sreg();
define("TEST_ID", Zend_OpenId::absoluteURL("example-10-id.php"));
define("TEST_PASSWORD", "123");
if ($_SERVER['REQUEST_METHOD'] == 'GET' &&
isset($_GET['openid_action']) &&
$_GET['openid_action'] === 'login') {
$server->login(TEST_ID, TEST_PASSWORD);
unset($_GET['openid_action']);
Zend_OpenId::redirect(Zend_OpenId::selfUrl(), $_GET);
} else if ($_SERVER['REQUEST_METHOD'] == 'GET' &&
isset($_GET['openid_action']) &&
$_GET['openid_action'] === 'trust') {
echo "½Å·Ú ¹ÞÁö ¾ÊÀº µ¥ÀÌÅÍ" ;
} else {
$ret = $server->handle(null, $sreg);
if (is_string($ret)) {
echo $ret;
} else if ($ret !== true) {
header('HTTP/1.0 403 Forbidden');
echo 'Forbidden';
}
}
OpenID ¼¹öÀÇ ÀÛ¼ºÀº,
OpenID ´ëÀÀÀÇ »çÀÌÆ®ÀÇ ÀÛ¼º(Á¤µµ)¸¸Å ºó¹øÈ÷ ½Ç½ÃÇÏ´Â °ÍÀÌ ¾Æ´Õ´Ï´Ù.
°Å±â¼,Zend_OpenId_Consumer
ÀÇ ¸Þ´º¾ó°ú´Â ´Þ¶ó
Zend_OpenId_Provider
ÀÇ ¸Þ´º¾ó¿¡¼´Â ¸ðµç ±â´ÉÀ» ¸Á¶óÇÏ´Â °ÍÀ» ±×¸¸µÓ´Ï´Ù.
³²¾Æ ÀÖ´Â ±â´É¿¡ ´ëÇØ °£´ÜÇÏ°Ô Á¤¸®Çϸé, ´ÙÀ½°ú °°ÀÌ µË´Ï´Ù.
ÃÖÁ¾ »ç¿ëÀÚ Àü¿ëÀÇ GUI ÀÎÅÍÆäÀ̽º¸¦ ÀÛ¼ºÇϱâ À§ÇÑ ¸Þ¼Òµå±º. À¯ÀúÀÇ µî·Ï, ½Å·Ú°¡ ³¡³ »çÀÌÆ®³ª ÇÁ·ÎÆÄÀÏÀÇ ¼³Á¤µîÀ» ½Ç½ÃÇÒ ¼ö ÀÖµµ·Ï(µíÀÌ) ÇÕ´Ï´Ù.
À¯Àú³ª »çÀÌÆ®, ÇÁ·ÎÆÄÀÏÀ̶ó°í ÇÏ´Â Á¤º¸¸¦ °Ý³³Çϱâ À§ÇÑ Ãß»óÈ µÈ º¸Á¸ ·¹À̾î.
¿©±â¿¡´Â, ÇÁ·Î¹ÙÀÌ´õ¿Í OpenID ´ëÀÀ »çÀÌÆ®¿ÍÀÇ °ü·ÃÁö¾î Á¤º¸µµ º¸Á¸ÇÕ´Ï´Ù.
ÀÌ ·¹À̾î´Â Zend_OpenId_Consumer
ÀÇ °Í°ú ¸Å¿ì Àß ´à¾Ò½À´Ï´Ù.
µðÆúÆ®¿¡¼´Â ÆÄÀÏ ½ºÅ丮Áö¸¦ »ç¿ëÇÕ´Ï´Ù¸¸,
´Ù¸¥ ½ÇÀåÀ¸·Î ¿Å°Ü³õ´Â °Íµµ °¡´ÉÇÕ´Ï´Ù.
ÃÖÁ¾ »ç¿ëÀÚÀÇ À¥ ºê¶ó¿ìÀú¿Í ·Î±×ÀÎ ½Äº°ÀÚ¸¦ °ü·ÃÁþ±â À§ÇÑ, À¯Àú °ü·ÃÁö¾îÀÇ Ãß»óÈ ·¹À̾î.
Zend_OpenId_Provider
(Àº)´Â,
OpenID ¼¹ö¸¦ ½ÇÀåÇÒ ¼ö ÀÖ´Â Àü±â´ÉÀ» ¼Æ÷Æ®Çϰí ÀÖ´Â °ÍÀº ¾Æ´Õ´Ï´Ù
(¿¹¸¦ µé¾î µðÁöÅÐ Áõ¸í¼ µî).±×·¯³ª,
Zend_OpenId_Extension
(À»)¸¦ »ç¿ëÇϰųª ¾ÆÀÌ Å¬·¡½º¸¦ ÀÛ¼ºÇϰųª Çϰí,
°£´ÜÇÏ°Ô È®ÀåÇÏ´Â °ÍÀÌ °¡´ÉÇÕ´Ï´Ù.