OpenID Provider ã®ã»ãã¥ãªãã£å¯¾ç (2) - return_to 㨠realm ã®ãã§ãã¯ãæ ããªï¼
OpenID Provider のセキュリティ対策 (1) - まずは SSL を導入!話はそれからだ - Yet Another Hackadelicã®ç¶ç·¨ã§ãã
ã¯ããã«
RP ãèªè¨¼ã¢ãµã¼ã·ã§ã³ãªã¯ã¨ã¹ãã§ãã checkid_setup/checkid_immediate ãè¡ãéã«ã¯é常㯠return_to 㨠realm ãæå®ãã¾ãã
return_to ã¨ã¯
OP ããèªè¨¼ã¢ãµã¼ã·ã§ã³ã¬ã¹ãã³ã¹ã鿥éä¿¡ã§åãåãéã«æ»ã£ã¦æ¥ãURLã®äºãRP ãæå®ãã¦ããã
realm ã¨ã¯
return_to ã®ãã¿ã¼ã³ãã¯ã¤ã«ãã«ã¼ãã使ã£ã¦è¡¨ç¾ããã
return_to 㨠realm ã®æ¤è¨¼
åºæ¬çã« return_to ã®å 㯠http://openid.art-code.org/handler ã§ããã¨ããåæã§ã便å®ä¸çªå·æ¯ãã¾ããã
(1) æå¾ éãã®çµåã
- realm
- http://*.art-code.org
- return_to
- http://openid.art-code.org/handler
ã¿ãããªçµåãã®å ´åãrealmã§æå®ãããã¿ã¼ã³ã«return_toã¯ãããããã®ã§ç¹ã«åé¡ã¯ç¡ãã
(2) realm ã®æå®ãã¯ã¤ã«ãããã
ããªãåºç¯å²ã«ã¯ã¤ã«ãã«ã¼ããæå®ãã¦ããã±ã¼ã¹ãããã¯ãã¡ã
(3) realm ã«éåãã return_to
ä¾ãã°ã
- realm
- http://*.art-code.org
- return_to
- http://redirect.example.com/redirect?url=openid.art-code.org/handler
ããã¯åãã¦ãã®ã§NGã«ãªãã¯ãã
(4) realm/return_to ã¯æ£å¸¸ã ãRPã¨ã¯ç°ãªããã¹ãã«é©ç¨ãã¦ãã
ããã«è¨ãã¨ã
- realm
- http://*.example.com/
- return_to
- http://redirect.example.com/redirect?url=openid.art-code.org/handler
ã ã£ããè¦ããä¸OKã ãã©ãæ®éã«èãã¦OPã¨ãã¦ããã許å¯ãã訳ã«ã¯è¡ããªãã
ãããã RP ããè¦ã¦ã¾ã£ããéããã¹ãã«å¯¾ã㦠realm ã return_to ãæå®ãã¦ããã®ã§ãããããã±ã¼ã¹ã¯ä¿¡ããã¹ãã§ã¯ãªãã
å½å OPã®å¯¾å¿ç¶æ³
âã¯è¯ãåºæ¥ã¾ãããÃã¯ãã¡ãâ³ã¯å¾®å¦ã解説ã¯ãã®å¾ã§ã
-- | Yahoo! Japan | livedoor | hatena | wassr | openid.ne.jp | ||||||
(1) | â | â | Ã | Ã | Ã | ||||||
(2) | â | Ã | Ã | Ã | Ã | ||||||
(3) | â | â³ | â³ | â³ | â | ||||||
(4) | â³ | â³ | Ã | Ã | Ã |
Yahoo! Japan ã®å ´å
(1) ã®å ´å -> â
ã®ãããªå½¢ã§ realm ã return_to ãæç¤ºãã¦ããããããææ¬ã
(2) ã®å ´å -> â
ãããªæãã§æãããããããããã¹ãå§¿ãããã Yahoo! ã§ããªãä¸ç¹ã ãè¨ãã° openid.mode=error ã§è¿ãã¦ãããæ°ããããã©ãæ¢ãã¦è¿ããªãããã«ãããã§ãããã
(3) ã®å ´å -> â
(2) ã¨åãç»é¢ã§æãããããããæ£ããã鿥éä¿¡ã§ã¬ã¹ãã³ã¹ãæ»ã£ã¦ããªãã®ã (2) ã¨ä¸ç·ã
(4) ã®å ´å -> â³
ããã¯æ£å¸¸ã§ããã¨èªãããã¦ãªãã¤ã¬ã¯ã¿ã«é£ã°ããã¾ãããã®è°è«ã¯å¥éã
livedoor ã®å ´å
(1) ã®å ´å -> â
ããã¯ã¾ãOKã§ãããã realm ãä¸ç·ã«åºãã¨ãªãè¯ãã§ãã
(2) ã®å ´å -> Ã
(1) ã¨åãããã«åºãä»¶ããã㯠openid.mode=error ã§ã¬ã¹ãã³ã¹è¿ããªã Yahoo! ã¨åãããã«ã¨ã©ã¼ç»é¢åºãã¦æ»ããªãã¨ãããã¹ãã
(3) ã®å ´å -> â³
ããããç»é¢çã£ç½ã§ä½ãåºãªããçµæçã«rejectãããããâ³ã¨ãã¦ããã
hatena ã®å ´å
(1) ã®å ´å -> Ã
realm ã ãåºãã£ã¦ã®ã¯å®ãããªããreturn_to ã¨å ±ã«åºããªãã¨ä¸éè æ»æã®é¤é£ã«ãªãå¯è½æ§ãããã¾ãã
(2) ã®å ´å -> Ã
以ä¸ã®ãµã¤ãã§ã¨ãã¦ã*.orgãã£ã¦ã©ãã ãã®ãµã¤ãã«è¨±å¯ããã ãï½
(3) ã®å ´å -> â³
ã©ããã hatena ã§ã¯ Data::Dumper ã使ã£ã¦ããæ¨¡æ§ï¼ï¼
ã¾ãçµæçã«ãã®å
ã«é²ã¾ãªãããâ³ã ãã©ããã¯æ¥ããããï¼ï¼
wassr ã®å ´å
(1), (2), (4) -> Ã
(3) 以å¤ã ã¨å ¨é¨ã
ã¿ããã«ãªã£ã¦ããããã®ä¸ã空ã£ã½orz...
(3) ã®å ´å -> â³
çã£ç½ï¼ï¼
openid.ne.jp
(1), (2), (4) ã®å ´å -> Ã
realm ããåºãã¦ãªããreturn_to ãåºãã¦ä¸ããï¼ï¼
ãã¨ã(2) 㯠reject ããªãã¨ãã¡ã
(3) ã®å ´å -> â
ããã¯è¦äºã« error ãè¿ãã¦ããã¡ãã£ã¨æå¤*1ã ã£ãã
ã¨è¨ã訳ã§ã¾ã¨ãã¾ããï¼
- èªè¨¼ç¢ºèªç»é¢ã§ã¯ return_to, realm å ±ã«æç¤ºãã
- realm ã«ä¸ä¸è´ãª return_to ã«å¯¾ãã¦ã¯ openid.mode=error ã§è¿ããããªãã¤ã¬ã¯ãããªã
- ãªãã¤ã¬ã¯ãããªãæ¹ãè³¢ããã*2
ãªãã¤ã¬ã¯ã¿ã¨realmã®æ¤è¨¼ã«ã¤ãã¦ã¯å¥éã¨ã³ããªæ¸ããã¨æãã¾ãã(ç¶ã)