
Google Appsããã³Google Apps Marketplaceãšã¯
Khabrovskã®äœæ°ã®ã»ãšãã©ãæ¢ã«Google Appsãç¥ã£ãŠããããšãé¡ã£ãŠããŸããããã§ãªãå Žåãããã¯Gmailãã«ã¬ã³ããŒãããã¥ã¡ã³ããªã©ã®äžé£ã®GoogleãµãŒãã¹ãèªåã®ãã¡ã€ã³ã®çµç¹ã§äœ¿çšããæ©èœã§ãã æè¿ã®Habréã®æ祚ããå€æãããšïŒãªã³ã¯ã¯èŠã€ãããŸããã§ãããïŒãå€ãã®äººããã§ã«ãã®æ©äŒãå©çšããŠããŸãã
3æåæ¬ãGoogleã¯Google Apps MarketplaceïŒ ããã§ã®çºè¡š ïŒãéå§ããŸãã-ãµãŒãããŒãã£ã®éçºè ãGoogle Appsã®ãŠãŒã¶ãŒã«å©çšå¯èœãªã¢ããªã±ãŒã·ã§ã³ãè¿œå ããæ©èœãããã³Google Appsã䜿çšãããã¡ã€ã³ç®¡çè ããããããããã®ã¢ããªã±ãŒã·ã§ã³ãè¿œå ããŸãã
åžå Žã«é¢ããããã§ã®çºè¡šã«å ããŠã EmForgeãããžã§ã¯ãããã¹ãããããã®ãœãªã¥ãŒã·ã§ã³ãé 眮ããçµéšãå ±æãããã®ã§ãäœããªãã£ãããã§ãã
Nuanceâ1-æ¯æã
éçºè ã®èŠ³ç¹ããã2ã€ã®ç¹ãèæ ®ããå¿ èŠããããŸãã
1.åããŠã¢ããªã±ãŒã·ã§ã³ãæçš¿ããããšãããšã100ãã«ãè«æ±ãããŸãã ããã¯ãããŒã±ãããã¬ã€ã¹ã«å ¥ãããã®1åéãã®æéã§ãã
2. ããã¥ã¡ã³ãã®ãã®éšåã¯ããã«ã¯æ³šç®ãããŸããããéåžžã«éèŠã§ãã 翻蚳ãæ£ããç解ããŠããå ŽåïŒ
* Google Appsã®é¡§å®¢ãããéãåãåãå Žåã¯ããå ±æãããå¿ èŠããããŸãïŒGoogleApp以å€ã®é¡§å®¢ããã®æ¯æããå ±æããå¿ èŠã¯ãããŸããïŒã å ±æã¯20ïŒ ã§ã
*å ±æã§ããããã«ããã«ã¯ãGoogle Appsã®ã客æ§ããã®æ¯æãã¯CheckOut APIã䜿çšããå¿ èŠããããŸãã ãŸã æºåãã§ããŠããŸããããã©ã®ããã«æºåãã§ããŸãã-éçºè ãšããŠã3ãæ以å ã«çµ±åãå®äºããå¿ èŠããããŸãã ã€ãŸãããéãåŒãåºãããã®äœããã®APIãæ¢ã«æ¥ç¶ãããŠããå ŽåãGoogleAppsã®ã¯ã©ã€ã¢ã³ãã䞊è¡ãããå¿ èŠããããŸãã
å®éãã¢ããŠã³ã¹ã¡ã³ãã«èšèŒãããŠããªãéåžžã«éèŠãªãã€ã³ãã¯ãããã«ã¯æ°ä»ããªãã§ãããã ç§ã®å ŽåãEmForgeã«ã¯ãŸã ãã¹ãŠã®ãµãŒãã¹ãç¡æã§ãããè«æ±ã¯ãããŸããããããã£ãŠãCheckOutããã蟌ãããšãã§ããŸã-ãã ããæ¢åã®ã¢ããªã±ãŒã·ã§ã³ãæ¢ã«äœæããã³ãã¹ãæžã¿ã®è«æ±ãšGoogle Appsã§çµ±åãããšãåé¡ãçºçããå¯èœæ§ããããŸã
ããã°ã©ããŒã«ãšã£ãŠã¯ã©ã®ããã«èŠããŸãã
äœããã®ãµãŒãã¹ããããGoogle Appsã§ãªãŒãã£ãšã³ã¹ãæ¡å€§ããããšããŸãã æå°ãã€ååãªèŠä»¶ã¯ãOpenIDãä»ãããã°ã€ã³ããµããŒãããã·ã³ã°ã«ãµã€ã³ãªã³çµç¹ã§ãã Google Appsã䜿çšãããã¡ã€ã³ã®openIDã«ã¯ãããã€ãã®æè¡çãªåŸ®åŠãªéãããããŸããããã以äžã§ãã ContactAPIãCalendarAPIãªã©ãå€ãã®Google APIãšçµ±åããŠãããç·å¯ãªçµ±åãå®çŸããããšãã§ããŸãã ãã®ãããGoogle Codeã«ã¯å¥ã®å€§ããªã»ã¯ã·ã§ã³ããããŸãã
ãããå®è£ ããåŸãGoogle Apps Marketplaceã«ç»é²ãããã³ããŒãšããŠèªåèªèº«ã説æããããŒãžãäœæãïŒããšãã°ã åœç€Ÿã®ããã« ïŒãã¢ããªã±ãŒã·ã§ã³ãé 眮ããŸãïŒæåã®ãã¬ãŒã¹ã¡ã³ãã«$ 100ãæ±ããããŸãïŒã
ããã«æ¿èªæéãç¶ããŸã-Googleã®åŸæ¥å¡ã¯ãã¢ããªã±ãŒã·ã§ã³ãã©ã®ããã«Google Appsãçµ±åãããããã¹ãããŸã-ç¹°ãè¿ããŸã-æå°èŠä»¶-SSOãæ©èœããŸã
ç§ã®å ŽåãSSOå®è£ ã®åé¡ã«ãããæ°åã®å埩ãš3é±éããããŸããã æ¥ç¶ãäžæ¹åã§ã¯ãªããã¢ããªã±ãŒã·ã§ã³ããã¹ãã«åæ ŒããŠããªããšããã¡ãã»ãŒãžãåãåã£ãå Žåã詳现ãå°ããããšã§è³ªåãæžãããšãã§ããŸã-çããåŸãããšãã§ããŸãã 質åãšåçã®çã®å埩ã«ã¯éåžž2ã3æ¥ããããŸãããã®ããããã¹ãŠãïŒç§ã®ããã«ïŒåŒãããåºãããŸãã
ãã®çµæãã¢ããªã±ãŒã·ã§ã³ãæ¿èªãåãåã£ãåŸãã¢ããªã±ãŒã·ã§ã³ã®ããŒãžãGoogle Apps Marketplaceã«è¡šç€ºãããŸãïŒãããããšãã°ã®ããã«ãªããŸã ïŒã
ã¢ããªã±ãŒã·ã§ã³ããŒãžã®ç£èŠ
ç解ã§ããªããããããªã1ã€ã®ãã€ã³ã-ã¢ããªã±ãŒã·ã§ã³ããŒãžãç·šéãããšããGoogleã¢ããªãã£ã¯ã¹IDãå ¥åããæ©äŒïŒãªãã·ã§ã³ïŒããããŸã-ããã«ãããããŒã±ãããã¬ã€ã¹ã§ãã®ããŒãžãžã®ã¢ã¯ã»ã¹æ°ãç£èŠããããšãã§ããŸã-ãã®æ å ±ã¯åœ¹ç«ã¡ãŸãã
ãšã³ããŠãŒã¶ãŒã«ã©ã®ããã«èŠããã
ãã¡ã€ã³ã®ç®¡çè ã¯ãã€ã³ã¹ããŒã«ããã¢ããªã±ãŒã·ã§ã³ãéžæããŸã-è€æ°ã®ã€ã³ã¹ããŒã«ãã©ãŒã ã®åŸ-ããšãã°ãèŠæ±ãããAPIãžã®ã¢ã¯ã»ã¹ãèš±å¯ãããã©ãããå°ããŸãïŒãšããã§-ç¹å®ã®èšå®ã§ãã©ãŒã ãè¿œå ã§ããŸãïŒ-ã¢ããªã±ãŒã·ã§ã³ã¯ä»ã®Google Appsã¢ããªã±ãŒã·ã§ã³ã®äžã«ãããŸãã
ãšã³ããŠãŒã¶ãŒã¯ãã ãŠãããŒãµã«ããã²ãŒã·ã§ã³ã㌠ãïŒããã¯Gmailã®äžéšã«ããã¡ãã¥ãŒã§ãã¡ãŒã«ãã«ã¬ã³ããŒãããã¥ã¡ã³ããªã©ãäžèŠ§è¡šç€ºããŸãïŒããã¢ããªã±ãŒã·ã§ã³ã«ã¢ã¯ã»ã¹ã§ããŸã-ãªã©ãã¢ããªã±ãŒã·ã§ã³ã¯ãšããã衚瀺ãããŸãã
ã¢ããªã±ãŒã·ã§ã³ãã¯ãªãã¯ãããšããŠãŒã¶ãŒã¯ãµãŒãã¹ãžã®ç¹å¥ãªURLã«èªå°ããããã¡ã€ã³åããã©ã¡ãŒã¿ãŒå ã®URLã«æ¿å ¥ãããŸãã ã¢ããªã±ãŒã·ã§ã³ã¯OpenIDãããã€ããŒã«ãªãã€ã¬ã¯ãããå¿ èŠãããããããã€ããŒã¯èªåçã«ãã°ã€ã³ãèš±å¯ããŸãïŒãã®å ŽåããŠãŒã¶ãŒã¯äœãèãããŸãã-ãã¡ã€ã³ç®¡çè ã¯ãã§ã«ãã¹ãŠãèš±å¯ããŠããŸãïŒ-ãªãã€ã¬ã¯ãã¯ãµãŒãã¹ã«æ»ããŸãã openIdæ å ±ãåä¿¡ããŠââåŠçãããŠãŒã¶ãŒãèªåçã«ãã°ã€ã³ããå¿ èŠããããŸãã ãã®å Žåããšã³ããŠãŒã¶ãŒã«ã¯äœãå°ããããããªãã€ã¬ã¯ãã¯ã»ãšãã©èŠããªãã®ã§ãå®éã«ã¯ããŠãŒã¶ãŒã¯ãªã³ã¯ãã¯ãªãã¯ããåŸãæ¢ã«ãµãŒãã¹ã«ãã°ã€ã³ããŠããããšãããããŸãã openIdãããã€ããŒããååŸïŒã ããã¯ã·ã³ã°ã«ãµã€ã³ãªã³ã§ãã
ããŠããã®ãŠãŒã¶ãŒã§æ¬¡ã«äœããããã¯ããªã次第ã§ã:)
èŠåïŒ2-Google Appsãã¡ã€ã³ã®OpenIDåºæ
äžè¬ã«ãOpenID-ãããã¯ã¯ãã§ã«ããªãå€ããããã§äœåºŠãè°è«ãããŠããŸããå€ãã®ãµãŒãã¹ãopenIDãä»ãããã°ã€ã³ããµããŒãããŠããŸãã ããªãã-ããªãã®ããã«ç°¡åã«ãªããŸãã
ããã-Google Appsã®openIDãã¡ã€ã³ã®åŠçã«ã¯ããã€ãã®åŸ®åŠãªéãããããŸãã
å®éããã®å ŽåãopenIdã¢ã«ãŠã³ãã¯mydomain.com/openId?id=xxxxã®ããã«èŠããŸããããããã€ããŒã¯Googleã§ãïŒãããã€ããŒã®URLã¯www.google.com/accounts/o8/site-xrdsã®ããã«ãªããŸãïŒ ïŒhd = mydomain.com ïŒ
openIDãã°ã€ã³ã³ã³ã·ã¥ãŒãïŒãã®å Žåã¯ã¢ããªã±ãŒã·ã§ã³ïŒã«é¢ããéèŠãªæ å ±ã¯ãhost-metaããååŸã§ããŸãããããã©ã«ããã¹ïŒhttp://mydomain.com/.host-metaããã§ã¯ãªããGoogleãããååŸããå¿ èŠããããŸãïŒ www .google.com / accounts / o8 / .well-known / host-metaïŒhd = mydomain.com ïŒ
ããã«ãGoogleã®åŸæ¥å¡ã«ãããã¹ãã«äœ¿çšããããã¡ã€ã³ïŒ marketplace-test.com ïŒã¯Googleãµã€ãã§ãã¹ãããã marketplace-test.com / host - metaãªã¯ãšã¹ãã¯sites.google.comã«ãªãã€ã¬ã¯ããããŸããç§ã®å Žåã¯404ãšã©ãŒãäºæ³ãããŸã-ãã¹ãã¡ã¿ãããã«ãªãããšãç解ããGoogleã§ãããæ¢ãå¿ èŠããããŸãïŒ-ãŸãã誀ã£ãåŠçã«ã€ãªããå¯èœæ§ããããŸãã
Javaã䜿çšããå Žåã step2ã©ã€ãã©ãªã䜿çšããããšã匷ããå§ãããŸããç¹ã«ãå¿ èŠãªãããªãã¯ãããã¹ãŠååšããæ¶è²»è ã®äŸã«æ³šæããŠãã ããã
Spring Frameworkã䜿çšããŠããå Žåã¯ã spring-security-step2ã©ã€ãã©ãªã䜿çšã§ããŸãã
ä»ã®èšèªã®è§£æ±ºçãããã«éããããŸãã-ããããããã§ç§ã¯ããç¥ããŸããã
ä»ã®ãµãŒãã¹ãšã®çµ±å
ã¢ããªã±ãŒã·ã§ã³ã®èª¬æã§ã¯ã䜿çšããGoogle AppsãµãŒãã¹ãæå®ããããšãã§ããŸãã ã¢ããªã±ãŒã·ã§ã³ãã€ã³ã¹ããŒã«ãããšããã¡ã€ã³ç®¡çè ãã¢ã¯ã»ã¹æš©ãä»äžããŸãããã®åŸãè¿œå ã®OAuthèªèšŒãªãã§ãããã®ãµãŒãã¹ã䜿çšã§ããŸãã
詳现ã¯ãã¡ã
éçºè åãã®ããã€ãã®ãã³ã
äžèšã«åºã¥ããŠãGoogle Appsãšã®çµ±åãå®è£ ããéçºè ã«ããã€ãã®ã¢ããã€ã¹ãæ¢ããŠè¡ããŸãã
1.å¿ ãGoogleHostedHostMetaFetcherãè¿œå ããŠãã ããïŒstep2ã³ã³ã·ã¥ãŒããŒã®äŸãåç §ïŒã
2.ãã¹ãã«ã¯ããã©ãŠã¶ãããã©ã€ããŒããã¢ãŒãã§äœ¿çšããŸã
3.ãã¹ããããšãããã¡ã€ã³ïŒhttp://mydomain.com/host-metaïŒããã®host-metaã®ãªã¯ãšã¹ãã404ãšã©ãŒä»¥å€ã®äœãïŒããšãã°ãhtmlïŒãçæããç¶æ³ãã·ãã¥ã¬ãŒãããŠã¿ãŠãã ããã
4.ãã°ãæ倧éã«ãªã³ã«ããŸãïŒå°ãªããšããã°ããã®éãæ¿èªããã¹ããŸãïŒ-ããã¹ãŠã¯ããŸããããŸãããã圌ãã¯æã£ãŠããŸããããšããç¶æ³ã«é¥ããŸããã äœããç解ããå¯äžã®æ¹æ³ã¯ãmarketplace-test.comãã¡ã€ã³ã®å Žåããããããã°ã§ããçç±ã§ã
5.æ¿èªãæåŠãããããçç±ãããããªãå ŽåããŸãã¯è¿œå ã®è³ªåãããå Žåã¯ãaskããããšãªãïŒåé¡ã®èª¬æãšãšãã«Googleããéä¿¡ãããæçŽã«çããã ãã§ïŒ-Googleã®åŸæ¥å¡ã¯ããã ãã質åãšåçã®å埩ã«ã¯2ã3æ¥ãããå Žåãããããšã«æ³šæããŠãã ããã
çµæã¯äœã§ããïŒ
Google Apps Marketplaceã«ã¯ãŸã ã¢ããªã±ãŒã·ã§ã³ãã»ãšãã©ãããŸããã ã ãã-åžå Žã«çããçŽåŸãç§ã®ã¢ããªã±ãŒã·ã§ã³ã¯ãããžã§ã¯ã管çã«ããŽãªã®2çªç®ã®ïŒæåŸã®ïŒããŒãžã«çŸããŸãã
ããŒã±ãããã¬ã€ã¹ã§1æ¥çŽ20ã®ããŒãžãã¥ãŒããµã€ãã®ã¯ãªãã¯1-2ã
æåã®è¯å®çãªã¬ãã¥ãŒã®åŸãã¢ããªã±ãŒã·ã§ã³ã¯æåã®ããŒãžã«ç§»åããŸãã-1æ¥ãããçŽ100ã®ããŒãžãã¥ãŒãçŽ5ã®ã¯ãªãã¯ã
ç§ã®å Žåã®å€æãæ¹åã§ããããšã¯æããã§ãã æåã®ããŒãžã®äžéšã«äžãããšãããå€ãã®ãã¥ãŒãšããå€ãã®ãã©ã³ãžã·ã§ã³ãååŸã§ããããšã¯æããã§ãã å¥ã®ã«ããŽãªã§ã¯ãååãšããŠãããå€ãã®æœåšçãªãŠãŒã¶ãŒãååšããå¯èœæ§ããããŸãããé åºã¯å€ãããªããšæããŸãã
ã€ãŸããã¢ããªã±ãŒã·ã§ã³ãå®å šã«äœæããããã«æããŸãã Google Appsæå-ãŸã 䟡å€ã¯ãããŸãããGoogleAppsãšã®çµ±åãæ¢åã®ã¢ããªã±ãŒã·ã§ã³ã«è¿œå ããŸã-ã¯ããã§ããŸãããæ°ãããŠãŒã¶ãŒã®å€§èŠæš¡ãªã¹ããªãŒã ã¯æåŸ ã§ããŸããã
ç§ã®çµéšã圹ã«ç«ã€ããšãé¡ã£ãŠããŸãã 質åããããŸã-ãå人çã«ããšæžããŠãã ããã