https://github.com/WP-API/jwt-auth/commit/e4c66f91205b70d74df1ce341cd3dbbdf43827f7ã§ãæå¹ãªããŒãã¢ããã®ããŒã¿ã§ã®ã¿ããŒã¯ã³ãçæã§ããããã«ããå€æŽãã³ãããããŸããã
ãã®å€æŽã«ããããŠãŒã¶ãŒåãšãã¹ã¯ãŒãã䜿çšããŠãã°ã€ã³ã§ããããšãæåŸ ããŠããæè¡è 以å€ã®ã»ãšãã©ã®ãŠãŒã¶ãŒãããã®ãã©ã°ã€ã³ã®æ©èœã«ã¢ã¯ã»ã¹ã§ããªããªãã®ã§ã¯ãªãããšå¿é ããŠããŸãã
ããŒãã¢ã¢ãããŒãã«ã¯ã䜿ãããããæãªãããã€ãã®æ¬ ç¹ããããŸãïŒãããã¯ãWooCommerceãã©ã°ã€ã³ã«åæ§ã®ã¹ããŒã ã䜿çšãããšãã«ééããçŸå®ã®åé¡ã§ãïŒã
çŽæçã§ã¯ãããŸãã
ãã®æ¹æ³ã䜿çšããŠWordPressãšçµ±åãããä»ã®ã·ã¹ãã ã§ã¯ãéå§ããããã«ããŒãã¢ãèšå®ããæ¹æ³ã®èª¬æ/ãã¥ãŒããªã¢ã«ãå¿
èŠã«ãªããŸãã
ããã€ã¹éã§ã®äœ¿çšã¯é£ãã
ãã®ããŒãæºåž¯é»è©±ã®ã¢ããªã«äœ¿çšãããå Žåãããã«å°éããç°¡åãªæ¹æ³ã¯ãããŸããã é·ãæååãæ°åãç¹æ®æåãæºåž¯é»è©±ã«å
¥åããããããŸãããæåèµ·ãããšã©ãŒãçºçããå¯èœæ§ããããŸãã 人ã
ãã¹ãã£ã³ã§ããQRã³ãŒããçæããããšã§ãæåèµ·ããã®é£æ床ãåãé€ãããšãã§ããŸããããã®åŸãäžèšã®åé¡ã«æ»ããŸãã人ã
ã¯QRã³ãŒãã¢ããªãããŠã³ããŒãããå¿
èŠããããããµãŒãããŒãã£ã®éçºè
ãQRã³ãŒããäœæããå¿
èŠããããŸããç§ãã¡ãšååããããã«ãã©ã€ãã©ãªãã¢ããªã«è§£æããŸãã
ããã¯è¯ãã»ãã¥ãªãã£è¡çãä¿é²ããŸãã
çæ³çã«ã¯ããŠãŒã¶ãŒã¯ããŒãæ
éã«ç®¡çããŠãå€ããªã£ããã䟵害ãããŠããªããªã©ã®åé¡ããªãããšã確èªããŸããæ®å¿µãªããããããåœãŠã«ããããšã¯ã§ããŸããã䟵害ãããããŒã¯ã䟵害ãããããŒã¯ã³ãããããã«å±éºã§ãã ãŸããå¹³åçãªãŠãŒã¶ãŒã¯ãç§å¯ãå®å
šãªå Žæã«ä¿åããã®ã§ã¯ãªããå¿
èŠã«ãªããã³ã«æ°ããããŒãäœæããå¯èœæ§ããããŸãã
ããã«ãã»ãã·ã§ã³ãåãæ¶ãããã®ã¡ãœãããè¿œå ããããšãæžå¿µããŠããŸããWordPressã®ãããã¡ã€ã«ããŒãžã«ã¯ãã§ã«[ä»ã®å Žæãããã°ã¢ãŠã]ãã¿ã³ããããŸãããŠãŒã¶ãŒãšããŠãã¢ããªã±ãŒã·ã§ã³ããããã°ã¢ãŠãããããšãæåŸ ããŠããŸãïŒãŸãã¯å°ãªããšãç§ããããããããã©ããç§ã«ä¿ããŸããïŒïŒ
è¿œå ã®ã»ãã¥ãªãã£ã¯æäŸãããŸãã
æ»æè
ãšããŠã®ç§ããã§ã«ããªãã®ãŠãŒã¶ãŒåãšãã¹ã¯ãŒããæã£ãŠããå Žåãç§ãããªããšããŠã§ããªãããšã¯äœããããŸããïŒ2FAãèšå®ãããŠããªãããšãåæãšããŠããŸãïŒã
ããã¯ãç§ãåå¿è ã®ã¢ããªã±ãŒã·ã§ã³éçºè ãšããŠãŠãŒã¶ãŒã®ç掻ã楜ã«ãããå Žåããããã¬ã¹ãã©ãŠã¶ãŒã䜿çšããŠãŠãŒã¶ãŒã®ã¢ã«ãŠã³ãã«ãã°ã€ã³ããããŒã¯ã³ãäœæãã詳现ãèªãã§ããããªã©ã®æãŸãããªãããšãè©Šã¿ãå¯èœæ§ããããšããäºå®ã«ã€ãªãããŸããããããç§ã®ã¢ããªã«æ»ããŸãã
ããŒã¯çŸåšãéèŠãªç®çãæãããŠããŸããããŒã¯ã³ã®å¯¿åœãéåžžã«é·ãå¯èœæ§ãããã«ãããããããããŒã¯ã³ã®å€±å¹ãèš±å¯ããããã«äœ¿çšãããŠããŸãã ãã ãããããè¡ãããã«å¿ ãããããŒãã¢ã¯å¿ èŠãããŸããã
usermeta
WordPressã®session_tokens
ãšã³ããªããã€ã³ã¹ãã¬ãŒã·ã§ã³ãåŸãŠâ JWTåºæã®å€±å¹ããŒã®ä¿åãããã»ããã¯åãæ©èœãèš±å¯ãããä»ã®å Žæã§ãã°ã¢ãŠãããå®è£
ããã®ã¯ç°¡åã«ãªããŸãæ©èœâãã®ãšã³ããªãããŒãã«ããåé€ããã ãã§ãã
2FAã¯ã©ãã§ããïŒ
2FAãã©ã°ã€ã³ãå¿
èŠã§ãããæäŸãããŠããªãå Žåã«ãã¯ã©ã€ã¢ã³ãã«ã2FAããŒã¯ã³ãæäŸããŠãããäžåºŠããçŽããŠãã ããããšäŒããããã«äœ¿çšã§ããããã¯ãèš±å¯ã§ãããã©ããçåã«æã£ãŠããŸãã ããã«ãå¥ã®ããã¯ïŒãŸãã¯ããããåãããã¯ïŒïŒã䜿çšããŠã2FAãã©ã°ã€ã³ãæäŸãããã³ãŒããæ£ããããšã確èªã§ããããã«ããããšãã§ããŸããïŒ JWTã·ã¹ãã ã¯ã2FAãã©ã®ããã«å®è£
ãããŠãããïŒå¥ã®ãã©ã°ã€ã³ã«ä»»ãããŠããïŒã«ã€ããŠã¯äœãæ³å®ããŠããŸããããã®ãããªããšãå¯èœã«ããããã®ããã¯ãæäŸããã ãã§ãã
ãããŸã§èªãã§ããã ãããããšãããããŸããäžèšã¯ãã¹ãŠç§èŠã§ããããŠãŒã¶ãŒããã®ããã»ã¹ãå°ãåçŽåããŠã誰ã«ãšã£ãŠãããã«äœ¿ããããã«ã§ããããšãé¡ã£ãŠããŸãã
ç§ã¯å°ãªããšã_äœã_ãéãããšç¢ºä¿¡ããŠããã®ã§ã人ã ãããã«ã€ããŠæã£ãŠãããããããªããã£ãŒãããã¯ãèããŠããããã§ãïŒ
ãã®ãã¹ãŠãæžãåºãããã«æéãå²ããŠããã ãããããšãããããŸãã 以äžã®äœããå³ãããšæããå Žåãããã¯æå³ããããã®ã§ã¯ãããŸãããç§ã¯ããªãã«ç§ã®æèŠãè¿°ã¹ãŠããã ãã§ãããããã ãã§ã¯ãããŸãããããããæ··åšããŠããå¯èœæ§ããããè°è«ã¯åé¡ãããŸããã
ãã®å€æŽã«ããããŠãŒã¶ãŒåãšãã¹ã¯ãŒãã䜿çšããŠãã°ã€ã³ã§ããããšãæåŸ ããŠããæè¡è 以å€ã®ã»ãšãã©ã®ãŠãŒã¶ãŒãããã®ãã©ã°ã€ã³ã®æ©èœã«ã¢ã¯ã»ã¹ã§ããªããªãã®ã§ã¯ãªãããšå¿é ããŠããŸãã
ç§ã¯ããªããããã§èšãããšããŠããããšãç解ããŸãããåæã«ããªããææ¡ããŠããããšã¯ããŠãŒã¶ãŒã«WordPressã«ãã°ã€ã³ããŠããŒãã¢ãäœæããããšãèŠæ±ããããšã¯ãããŒã¯ã³ãçæãããéæè¡çãªãŠãŒã¶ãŒã«ãšã£ãŠã¯ã©ããããããé£ãããšããããšã§ãããã°ã©ã ã§RESTAPIãä»ããŠã ãããã¯_éæè¡çãª_ãŠãŒã¶ãŒã§ã¯ãªããšç§ã¯äž»åŒµããŸãã
åæ§ã«ããã¹ãŠã®å®å šãªã·ã¹ãã ã«ã¯ããŠãŒã¶ãŒãããã䜿çšããããã«å æããªããã°ãªããªãåå ¥éå£ããããŸãã Googleã§ã¯ãAPIãªã¯ãšã¹ãã§ãŠãŒã¶ãŒåãšãã¹ã¯ãŒãã䜿çšããŠJWTãŸãã¯OAuthæ¥ç¶ãäœæããããšã¯èš±å¯ãããŠããŸããã ããã¯å®å šã§ã¯ãããŸããã ããŒã¯ã³ãŸãã¯èªèšŒæ¥ç¶ãç¡å¹ã«ã§ããæ¹æ³ã§ãŠãŒã¶ãŒã«æ¥ç¶ãããŠããããšã確èªããæ¹æ³ãå¿ èŠã§ãã
çŽæçã§ã¯ãããŸãã
ãã®æ¹æ³ã䜿çšããŠWordPressãšçµ±åãããä»ã®ã·ã¹ãã ã§ã¯ãéå§ããããã«ããŒãã¢ãèšå®ããæ¹æ³ã®èª¬æ/ãã¥ãŒããªã¢ã«ãå¿ èŠã«ãªããŸãã
ã¢ã¯ã»ã¹ãšèªèšŒã®åé¢ããµããŒãããå®å
šãªã¢ãã«ãäœæããã«ã¯ãé·æéæå¹ãªããŒã¯ã³ãç¡éã®ã¢ã¯ã»ã¹ãã€ã³ãã«ãªããªãããã«ããã¬ãŒãã¬ãŒã«ãå¿
èŠã§ãã æŽæ°ããŒã¯ã³ãè¿œå ãããšãæªæã®ãããŠãŒã¶ãŒãuser:pass
çµã¿åããã§ã¢ã¯ã»ã¹ããŒã¯ã³ãšæŽæ°ããŒã¯ã³ãäœæããå¯èœæ§ããããŸããããã¯ãããŒã¯ã³ãç¡å¹ã«ããããŒãã¢ãŸãã¯åçã®ãã®ããªãå Žåã¯ç¡å¹ã«ã§ããŸããã
WordPressã«ãã°ã€ã³ãããããã¡ã€ã«ã«ç§»åããŠããŒãã¢ãçæããããã«ãŠãŒã¶ãŒã«æ瀺ããããšã¯ãã»ãã¥ãªãã£ã®ããã«æ¯æãå°ããªä»£åã§ãã åæ§ã«ãæ瀺ã¯éåžžã«ç°¡åã§ãã
ããã€ã¹éã§ã®äœ¿çšã¯é£ãã
ãã®ããŒãæºåž¯é»è©±ã®ã¢ããªã«äœ¿çšãããå Žåãããã«å°éããç°¡åãªæ¹æ³ã¯ãããŸããã é·ãæååãæ°åãç¹æ®æåãæºåž¯é»è©±ã«å ¥åããããããŸãããæåèµ·ãããšã©ãŒãçºçããå¯èœæ§ããããŸãã 人ã ãã¹ãã£ã³ã§ããQRã³ãŒããçæããããšã§ãæåèµ·ããã®é£æ床ãåãé€ãããšãã§ããŸããããã®åŸãäžèšã®åé¡ã«æ»ããŸãã人ã ã¯QRã³ãŒãã¢ããªãããŠã³ããŒãããå¿ èŠããããããµãŒãããŒãã£ã®éçºè ãQRã³ãŒããäœæããå¿ èŠããããŸããç§ãã¡ãšååããããã«ãã©ã€ãã©ãªãã¢ããªã«è§£æããŸãã
ããªããåç §ãç¶ãããã®ã¢ããªã«ã€ããŠèª¬æããŠãã ããããªãããã¯ããªãã®ããã«ãã¹ãŠã®èªèšŒãšãã°ã€ã³ãåŠçããã®ã§ããïŒ ããã¯å®å šã§ã¯ãããŸããã ããªãã¯ãã®ã¢ããªã«ããªãã®ãŠã§ããµã€ãã«ããããããšãããããã«å¿ èŠãªãã¹ãŠã®ã¢ã¯ã»ã¹ãšèªèšŒãäžããã§ãããã ã¢ããªã®ã¢ãŒããã¯ãã£ãæ£ãããªãå¯èœæ§ãããããšãèæ ®ããå¿ èŠããããŸãããã®èªèšŒãããŒã¯ã説æããŠããå 容ãæ£ç¢ºã«é²ãããã®ãã®ã§ãã
ããªããç§ã«èª¬æããã®ã¯ããã¬ãŒã³ããã¹ãã®ãŠãŒã¶ãŒåãšãã¹ã¯ãŒããä¿åããã¢ããªã§ããããã«ãããREST APIãä»ããŠWordPressã«ãã°ã€ã³ãããªãœãŒã¹ãžã®ã¢ã¯ã»ã¹ã«äœ¿çšãããããŒã¯ã³ãçæã§ããŸãããåããã®ãä»ããŠããŒã¿ããŒã¹ãå®å šã«ãã³ãããããšãã§ããŸããèªèšŒãšã¢ã¯ã»ã¹ã®æ段ã ããªãã説æããããã«ããªããã®ãŠãŒã¹ã±ãŒã¹ã«è¿ããã®ããµããŒããããã®ãããããŸããã
ããã¯è¯ãã»ãã¥ãªãã£è¡çãä¿é²ããŸãã
çæ³çã«ã¯ããŠãŒã¶ãŒã¯ããŒãæ éã«ç®¡çããŠãå€ããªã£ããã䟵害ãããŠããªããªã©ã®åé¡ããªãããšã確èªããŸããæ®å¿µãªããããããåœãŠã«ããããšã¯ã§ããŸããã䟵害ãããããŒã¯ã䟵害ãããããŒã¯ã³ãããããã«å±éºã§ãã ãŸããå¹³åçãªãŠãŒã¶ãŒã¯ãç§å¯ãå®å šãªå Žæã«ä¿åããã®ã§ã¯ãªããå¿ èŠã«ãªããã³ã«æ°ããããŒãäœæããå¯èœæ§ããããŸãã
ãŸããããŒãã¢ã¯æå¹æéã«é¢é£ä»ããããŠããããçŸåšå®è¡ã§ããã®ã¯ããŒã¯ã³ãäœæããããšã ãã§ãããã®ãããããŒã¯ã³ãç¡å¹ã«ãããã®ã§ããããã䟵害ãããããŒã¯ã³ããããå±éºãã§ããããšãããããŸããã 第äºã«ããŠãŒã¶ãŒã¯æ éã«äœãããŸããããŠãŒã¶ãŒãèªåã®è¡åã®ã»ãã¥ãªãã£ãžã®åœ±é¿ãç解ããããšãæåŸ ããŠã¯ãªããŸããã ç§ãã¡ã¯ã圌ããéåžžã«ç¡èœã§ãããèªåãã¡ã®åŸçä»ãã決ããŠããªãã»ã©æ æ°ã§ããå¯èœæ§ãé«ããšæ³å®ããå¿ èŠããããŸãã ãã ããè¿œå ã®ããŒãã¢ãäœæããããšã¯ã»ãã¥ãªãã£ã®åé¡ã§ã¯ãããŸããã ã»ãã¥ãªãã£ã®åé¡ã¯ããã¬ãŒã³ããã¹ãã®ãŠãŒã¶ãŒåãšãã¹ã¯ãŒããå€åœã®ã¢ããªã«äžããããšã§ãã
ããã«ãã»ãã·ã§ã³ãåãæ¶ãããã®ã¡ãœãããè¿œå ããããšãæžå¿µããŠããŸããWordPressã®ãããã¡ã€ã«ããŒãžã«ã¯ãã§ã«[ä»ã®å Žæãããã°ã¢ãŠã]ãã¿ã³ããããŸãããŠãŒã¶ãŒãšããŠãã¢ããªã±ãŒã·ã§ã³ããããã°ã¢ãŠãããããšãæåŸ ããŠããŸãïŒãŸãã¯å°ãªããšãç§ããããããããã©ããç§ã«ä¿ããŸããïŒïŒ
ããŒãã¢ãåé€ããããã«ãŠãŒã¶ãŒã«ä¿ãããšã¯ã§ããŸããããã°ã¢ãŠãã«ãã£ãŠããŒã¯ã³ãç Žå£ãããããšã¯ãããŸããã ããã¯ããã®ãããªã·ã¹ãã ã®éåžžã®åäœãŸãã¯äºæ³ãããåäœã§ã¯ãªããæ··ä¹±ãšå€§éã®ãµããŒãèŠæ±ãåŒãèµ·ããå¯èœæ§ããããŸãã
è¿œå ã®ã»ãã¥ãªãã£ã¯æäŸãããŸãã
æ»æè ãšããŠã®ç§ããã§ã«ããªãã®ãŠãŒã¶ãŒåãšãã¹ã¯ãŒããæã£ãŠããå Žåãç§ãããªããšããŠã§ããªãããšã¯äœããããŸããïŒ2FAãèšå®ãããŠããªãããšãåæãšããŠããŸãïŒã
ç§ã¯æåºãšããŠåæããŸããã ãã®ã¢ãããŒãã¯ãRESTãªãœãŒã¹ã«ã¢ã¯ã»ã¹ããããã®è¿œå ã®ã»ãã¥ãªãã£ãæäŸããŸãããããæããã§ãªãå Žåã¯ããããæ確ã«ããããã«ããã«ããã¥ã¡ã³ããå¿
èŠã§ãã ããªãã¯ã誰ãããã§ã«ããªãã®è³æ Œæ
å ±ãæã£ãŠãããªããããªãã¯å°æããŠãããšäž»åŒµããŠããŸãããRESTAPIãžã®ã¢ã¯ã»ã¹ãäžããããã«ãããã䜿çšããããšãææ¡ããŠããŸãã ãããRESTã«ã¢ã¯ã»ã¹ããæ¹æ³ã§ããå Žåã¯ãåºæ¬èªèšŒã䜿çšããŸãã ããã¯ã user:pass
ã䜿çšããŠããŒã¯ã³ãäœæããå Žåã«å®è£
ãããã®ãšãŸã£ããåãã ããã§ãã
ããã¯ãç§ãåå¿è ã®ã¢ããªã±ãŒã·ã§ã³éçºè ãšããŠãŠãŒã¶ãŒã®ç掻ã楜ã«ãããå Žåããããã¬ã¹ãã©ãŠã¶ãŒã䜿çšããŠãŠãŒã¶ãŒã®ã¢ã«ãŠã³ãã«ãã°ã€ã³ããããŒã¯ã³ãäœæãã詳现ãèªãã§ããããªã©ã®æãŸãããªãããšãè©Šã¿ãå¯èœæ§ããããšããäºå®ã«ã€ãªãããŸããããããç§ã®ã¢ããªã«æ»ããŸãã
ããã¯ãã³ãŒã«ããã¯ã䜿çšããŠã¢ããªã«ããŒãã¢ãäžããããšãå¯èœã«ããèªèšŒãããŒãäœæããå Žæã§ãã ãã®ãããªãã®ã¯ãã¢ããªã±ãŒã·ã§ã³ãã¹ã¯ãŒããã©ã°ã€ã³ã«ãã§ã«å®è£ ãããŠãããšæããŸãã
ç§ã¯ã¢ããªã®èªèšŒãããŒãäœæããããšã«100ïŒ
ãªãŒãã³ã§ããã¢ããªã«ã¢ã¯ã»ã¹ãããšãWordPressã«ãã°ã€ã³ããããã«æ±ãããã2factorãªã©ã®è¿œå æ©èœãè¿œå ãããŸããããã«ãããããŒãã¢ãçæãããäœããã®ã³ãŒã«ããã¯ã䜿çšãããŸããã¢ããªã«ããŒãã¢ãæž¡ããŸãã ããããã°ãã¢ããªéçºè
ã¯å€§éã®æªããœãªã¥ãŒã·ã§ã³ãäœæããå¿
èŠããªããã¢ããªã¯user:pass
ä¿åããŸããã
代ããã«äœãã§ããã§ããããïŒ
ããŒã¯çŸåšãéèŠãªç®çãæãããŠããŸããããŒã¯ã³ã®å¯¿åœãéåžžã«é·ãå¯èœæ§ãããã«ãããããããããŒã¯ã³ã®å€±å¹ãèš±å¯ããããã«äœ¿çšãããŠããŸãã ãã ãããããè¡ãããã«å¿ ãããããŒãã¢ã¯å¿ èŠãããŸããã
æ£è§£ã§ããããŸããŸãªã¢ãããŒãã䜿çšã§ããŸãã
usermetaã®WordPressã®session_tokensãšã³ããªïŒJWTåºæã®å€±å¹ããŒã®ä¿åãããã»ããïŒããã€ã³ã¹ãã¬ãŒã·ã§ã³ãåŸãŠãåãæ©èœãèš±å¯ãããä»ã®å Žæã§ãã°ã¢ãŠããæ©èœãå®è£ ããã®ã¯ç°¡åã§ããããŒãã«ãããã®ãšã³ããªãåé€ããã ãã§ãã
ããã¯ãè¿œå ããå¿ èŠã®ããçŸåšã®å®è£ ã«çœ®ãæãããã®ã§ã¯ãããŸããã ç§ã¯ããšã³ã¿ãŒãã©ã€ãºãœãããŠã§ã¢éçºè ãšããŠããã®æ¹æ³ã決ããŠäœ¿çšããŸããã ãããã£ãŠãããã¯æå¹ãªã¢ãããŒãã§ãããæå¹æéãåããŠããªãããããŒã¯ã³ãåãæ¶ãããŠããªãéããããŒã¯ã³ãæå¹ã§ãããšæåŸ ããæ©èœããããŸããã ããªãã®ã·ããªãªã§ã¯ã2çªç®ã«ãã°ã¢ãŠããããšããŒã¯ã³ã¯ç¡å¹ã«ãªããŸãã ããã¯ãèªèšŒãããŒã®IMOã®æ¬ é¥ã§ããããã°ã€ã³ããŠãããŠãŒã¶ãŒãšç·å¯ã«çµåãããŠãããããã¢ããªããªãœãŒã¹ã«ã¢ã¯ã»ã¹ããæ©èœã«ç¡æ°ã®åé¡ãåŒãèµ·ãããŸãã
2FAã¯ã©ãã§ããïŒ
2FAãã©ã°ã€ã³ãå¿ èŠã§ãããæäŸãããŠããªãå Žåã«ãã¯ã©ã€ã¢ã³ãã«ã2FAããŒã¯ã³ãæäŸããŠãããäžåºŠããçŽããŠãã ããããšäŒããããã«äœ¿çšã§ããããã¯ãèš±å¯ã§ãããã©ããçåã«æã£ãŠããŸãã ããã«ãå¥ã®ããã¯ïŒãŸãã¯ããããåãããã¯ïŒïŒã䜿çšããŠã2FAãã©ã°ã€ã³ãæäŸãããã³ãŒããæ£ããããšã確èªã§ããããã«ããããšãã§ããŸããïŒ JWTã·ã¹ãã ã¯ã2FAãã©ã®ããã«å®è£ ãããŠãããïŒå¥ã®ãã©ã°ã€ã³ã«ä»»ãããŠããïŒã«ã€ããŠã¯äœãæ³å®ããŠããŸããããã®ãããªããšãå¯èœã«ããããã®ããã¯ãæäŸããã ãã§ãã
ããã«ãããIMOã¯ãå€ãã®ãµããŒãèŠæ±ãäœæããå¯èœæ§ã®ããäžå¿ èŠãªè€éãã®å±€ãè¿œå ããŸãã
ãããŸã§èªãã§ããã ãããããšãããããŸããäžèšã¯ãã¹ãŠç§èŠã§ããããŠãŒã¶ãŒããã®ããã»ã¹ãå°ãåçŽåããŠã誰ã«ãšã£ãŠãããã«äœ¿ããããã«ã§ããããšãé¡ã£ãŠããŸãã
ç§ã¯å°ãªããšãäœããéãããšç¢ºä¿¡ããŠããã®ã§ã人ã ãããã«ã€ããŠæã£ãŠãããããããªããã£ãŒãããã¯ãèããŠããããã§ãïŒ
壮倧ãªæçš¿ã ãã®ãã¹ãŠãæžãçããŠããã ãããããšãããããŸãã ããªãã¯æ¬åœã«ããã«å€ãã®ããšãèããŸããã ç§ã¯äœãæå¢ããããšããŠããã®ã§ã¯ãªããšèšãããã§ãã user:pass
çµã¿åããã§ããŒã¯ã³ãäœæã§ããããã«ããå Žåããã®æ¹æ³ã¯éåžžã«å®å
šã§ãããã¢ããªããã°ã€ã³è³æ Œæ
å ±ãä¿åããå¯èœæ§ããŒãã§ããå¿
èŠããããŸãã
ã¢ã¯ã»ã¹ãšèªèšŒãåé¢ãããšããç¹ã¯æå³çãªãã®ã§ããã軜èŠãã¹ãã§ã¯ãããŸããã ã€ã³ã¿ãŒãããã®1/3ã®æœåšçãªRESTèªèšŒãæ§ç¯ããŠããŸãã ãã®ãããé²ãã¹ãéãèŠã€ãããŸã§ããŠãŒã¶ãŒã®è³æ Œæ å ±ã䜿çšããŠããŒã¯ã³ãäœæããæ©èœãåé€ããŸããã ããã¯ãè¿œå ã§ããªããšããæå³ã§ã¯ãããŸãããè¿œå ããåã«ãå€ãã®è°è«ãå¿ èŠãªã ãã§ãã
ããïŒ ç§ãç解ããŠããããšãããããã§ã®äŒè©±ã®äž»ãªåé¡ç¹ã¯äœ¿ããããã§ãã å®éããŠãŒã¶ãŒããã°ã€ã³ããŠããŒãã¢ãäœæããããã«ãµã€ãã«ã¢ã¯ã»ã¹ããããšã¯ãäžéšã®ãŠãŒã¶ãŒã«ãšã£ãŠåé¡ãŸãã¯äžäŸ¿ã®åå ã«ãªããŸãã
éçºè ã¯ãä»æ¥ããŠãŒã¶ãŒã®ããã«åŒ·åãªãã¹ã¯ãŒããå¿ èŠãšããæ©èœãåé€ããã®ãšåãæ¹æ³ã§ããããåé¿ããããã®å®å šã§ãªãæ¹æ³ãèŠã€ããããšããå¯èœæ§ããããŸãã
ç§ã¯æ±ºå®ã«ãããã»ãã¥ãªãã£ã®åŽé¢ãç解ããŠããŸãããããçšåºŠåæããŸãã ããããç§ãã¡ã¯äž¡æ¹ã®ããã«åãããšãã§ããæ¹æ³ãèŠã€ããå¿ èŠããããŸãã
ããã§ããªããèšã£ãããšã¯@valendesignsãå¯èœãªè§£æ±ºçãããããªãããã§ãïŒ
ç§ã¯ã¢ããªã®èªèšŒãããŒãäœæããããšã«100ïŒ ãªãŒãã³ã§ããã¢ããªã«ã¢ã¯ã»ã¹ãããšãWordPressã«ãã°ã€ã³ããããã«æ±ãããã2factorãªã©ã®è¿œå æ©èœãè¿œå ãããŸããããã«ãããããŒãã¢ãçæãããäœããã®ã³ãŒã«ããã¯ã䜿çšãããŸããã¢ããªã«ããŒãã¢ãæž¡ããŸãã ããããã°ãã¢ããªéçºè ã¯å€§éã®æªããœãªã¥ãŒã·ã§ã³ãäœæããå¿ èŠããªããã¢ããªã¯userïŒpassãä¿åããŸãã
ç§ãç解ããŠããããšãããåºæ¬çã«ã¯çŸåšã®ãããŒãç¶æããŸããããã¯ãããŒã¯ã³ãçæããããã«ããŒãã¢ã®ã¿ãäžãã代ããã«ã¢ããªã«ãã¹ã¯ãŒããäžããå¿ èŠããªããããããå®å šã§ãããããã¯äžéšã®äººã«ãšã£ãŠããŒãã«ã«ãªãå¯èœæ§ããããŸãã
å€åœã®ã¢ããªã«ãã¹ã¯ãŒããäžããå¿ èŠããªãå Žæã§ããã®ä»ã®ãããŒãç¶æããŸãã 代ããã«ãWordPressã«ãã°ã€ã³ããŠããŒãã¢ãçæããããã«äŸé ŒããŸãã
ãã®éšåã«ã€ããŠãã£ãšæ å ±ã欲ããã®ã§ããïŒ
ããŒãã¢ãåé€ããããã«ãŠãŒã¶ãŒã«ä¿ãããšã¯ã§ããŸããããã°ã¢ãŠãã«ãã£ãŠããŒã¯ã³ãç Žå£ãããããšã¯ãããŸããã ããã¯ããã®ãããªã·ã¹ãã ã®éåžžã®åäœãŸãã¯äºæ³ãããåäœã§ã¯ãªããæ··ä¹±ãšå€§éã®ãµããŒãèŠæ±ãåŒãèµ·ããå¯èœæ§ããããŸãã
ãã©ãŠã¶ãšã¢ããªãä»ããŠsite.comã«ãã°ã€ã³ããŠããå Žåã¯è¡šç€ºãããŸããããã©ãŠã¶ã®[ä»ã®å Žæãããã°ã¢ãŠã]ãã¯ãªãã¯ãããšãã¢ããªããããã°ã¢ãŠããããŸãã ãããæ³å®ãããã¢ããªãèŠãããšãã§ããŸãã ããªããã©ãã§ããã°ã¢ãŠãããã ãããšããæåŸ ã
ã¢ã«ãŠã³ããåé€ããããšãã«ãåãããšãèµ·ããå¿ èŠããããŸãã
ããŒãã¢UXãéåžžã«ãŠãŒã¶ãŒãã¬ã³ããªãŒã§ãããšããããšã«ã€ããŠèšãããããšã«åæããå¿ èŠããããŸãã
ãã®Authã¡ãœããã䜿çšã§ãããã€ãã£ãã¢ãã€ã«ã¢ããªãæ§ç¯ããããšã¯éåžžã«å°é£ã§ãã
確ãã«ïŒããããæå³ããŠïŒãJWTã¯OAuth1aãããã¯ããã«ç°¡åã§ã;ïŒ
ãŠãŒã¶ãŒã¯æåã«ïŒã§ããã°httpsçµç±ã§ïŒWordpressã«ãŠãŒã¶ãŒåãšãã¹ã¯ãŒãã䜿çšããŠãã°ã€ã³ããå¿ èŠãããããããŠãŒã¶ãŒåãšãã¹ã¯ãŒãã®ãã¢ãã¢ã¯ã»ã¹ããŒã¯ã³ãååŸã§ãããšããã»ãã¥ãªãã£äžã®åé¡ãäœã§ãããã¯ããããŸããã ïŒ ããã¯ãã¹ãŠãäžæ¥ã®çµããã«åããã¯ã€ã€ãŒããä»ããŠéä¿¡ãããŠããŸããïŒ ãã¡ããïŒ
çŸåšå®è£ ãããŠããã¢ããªã±ãŒã·ã§ã³ã®ããŒãã¢ãé©çšãããšããã®èªèšŒæ¹æ³ãã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ã§äœ¿çšããããšã¯ïŒçŸå®ã®äžçã§ã¯ïŒçµ¶å¯Ÿã«äžå¯èœã«ãªããŸãã
ã¢ãã€ã«ã¢ããªããããã«å ¥åãããããã®æ£ããæ¹æ³ã¯ãããŸããã
ç§ã¯OAuth1aãOAuth2ããããŠä»ã§ã¯2ã€ã®JWTãã©ã°ã€ã³ãè©ŠããŠãã¢ã¯ã»ã¹å¯èœãªãã€ãã£ãã¢ããªãå®è£ ããŸãããããŠãŒã¶ãŒã®ããã«äœããè©ŠããŠã¿ãããã«ãããã³ã°ããããšãªãããã¹ãŠããããã«äœ¿ããã倱æã«çµãããŸãã 確ãã«ããã®ãããªãã®ã¯ç°¡åã«ãªãã¯ãã§ããïŒ
ããã«ãããµãŒãããŒãã£ã®JWTãã©ã°ã€ã³ïŒã€ã³ã¹ããŒã«æ°ã10,000以äžïŒã¯ãŠãŒã¶ãŒ/ãã¹ããµããŒãããŠãããç§ãæ§ç¯ããŠãããã€ãã£ãã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ã§ããŸãæ©èœããŸãã ãã ãããã©ã°ã€ã³ãä»ããæŽæ°ããŒã¯ã³ããªãå Žåã¯å€±æãããŠãŒã¶ãŒã¯å床ããã°ã€ã³ãããå¿ èŠããããŸãã ïŒwp-configãæåã§ç·šéããå¿ èŠããããŸãïŒ
ãã®ããŸããªãå ¬åŒã«ãªããïŒç§ã¯é¡ã£ãŠããŸãïŒïŒãã©ã°ã€ã³ã¯ãã¢ãã€ã«ãŠãŒã¶ãŒãã¬ã³ããªãŒã®æ¬ åŠãšããã®ããã«å®éã«éçºã§ããã¢ããªã±ãŒã·ã§ã³ã®çš®é¡ãç¡èŠããŠããããã«èŠããããã«å€±æããŸãã ãããŠãããã¯éåžžã«è¿èŠçŒçãªããã§ãã
wp.ââorgãµã€ãã«æçš¿ããããã®ãã€ãã£ãã¢ãã€ã«ã¢ããªãäžè¶³ããŠããã®ã«ã¯çç±ããããŸãã ãããŠãããã§ãã
ãé¡ãããŸããããã«ã€ããŠäœãåããããããŸããïŒ ïŒç§ã¯ãREST APIã®å°å ¥ä»¥æ¥ããŠãŒã¶ãŒãèªèšŒããããã®ãé©åãªãæ¹æ³ãåŸ ã£ãŠãäœå¹Žãã®éãã€ãã£ãã¢ããªã«åãçµãã§ããŸããïŒ
:)
ããŒã¯ã³ãããŒUXã¯éåžžèã§ãããå®éã®äœ¿çšã«ã¯å®çšçã§ã¯ãããŸããããŠãŒã¶ãŒã¯ã·ã¹ãã ã«ãŠãŒã¶ãŒåãšãã¹ã¯ãŒãã䜿çšããŠãã°ã€ã³ã§ããAPIããŒã®ãã¢ãèŠæ±ããŠãæå³ããããŸãããããã§ã¯æœè±¡åãæ¡çšããŠããŸãããã¢ããªã±ãŒã·ã§ã³ã®äœ¿çšã«é¢ããæè¡ãããŠãŒã¶ãŒãä¿è·ããããã«ãé»è©±ã§Facebookã«ãã°ã€ã³ããã«ã¯ãFacebookã®ç®¡çããŒã¿ã«ã«ãã°ã€ã³ããŠAPIããŒãã¢ãäœæããŠãããAPIããŒãã¢ã䜿çšããå¿ èŠããããšã©ã®ããã«æããŸããããã°ã€ã³ããããã«ãç§ãã¡ã¯éçºè åãã«éçºããŠããã®ã§ã¯ãªãããµãŒãã¹ã®æè¡çåŽé¢ãäœã§ããããç¥ããªã顧客åãã«éçºããŠãããããã«ã¢ã³ã€ã³ã¹ããŒã«ããŸãã ãã®ãã©ã°ã€ã³ãèªèšŒã«ã©ã®ããã«åœ¹ç«ã€ã®ããç§ã«ã¯ããããããŸããã
ãŠãŒã¶ãŒãã°ã€ã³>ããŒã¯ã³ãããŒã«é¢ãããã®åé¡ã¯ãJWTã䜿çšããŠããå¯èœæ§ã®ããéåžžã«å€ãã®ã¢ããªã®éçºãæ·±å»ã«åŠšããŠããŸãã
äœã¶æãäœã¶æãçµã¡ç¶ããŠãããããã¯åã«å¯ŸåŠãããŠããŸããã
äžã§è¿°ã¹ãããã«ããŠãŒã¶ãŒãå®éã«ç®¡çè ã«ãã°ã€ã³ããããã«ãŠãŒã¶ãŒåãšãã¹ã¯ãŒãã®ãã¢ã䜿çšãããšããäºå®ã¯ãããŒã¯ã³ãååŸããããã«ãŠãŒã¶ãŒåãšãã¹ã¯ãŒãã®ãã¢ã䜿çšããªãããšã䜿çšããããšã«ã€ããŠäœããã®è°è«ãããŸããïŒ ãã¡ããïŒ
ãã®ã¹ã¬ãããæŽæ°ããã ãã§ãããã®ãããžã§ã¯ãã¯ãWPã³ã¢ã«å®å šãªOAuthãããŒãå®è£ ããããã«çœ®ãæããããŠããããã§ãã ãã¹ãŠã®é·æãç¶æããªãããããã§èª¬æããã¢ãããŒãã®æ¬ ç¹ã«å¯ŸåŠããå¿ èŠããããŸãã
ããã«åå ãããå Žåã¯ãSlackã®ïŒcore-restapiã«æ°è»œã«ã¢ã¯ã»ã¹ããŠãã ããã
æãåèã«ãªãã³ã¡ã³ã
ãŠãŒã¶ãŒã¯æåã«ïŒã§ããã°httpsçµç±ã§ïŒWordpressã«ãŠãŒã¶ãŒåãšãã¹ã¯ãŒãã䜿çšããŠãã°ã€ã³ããå¿ èŠãããããããŠãŒã¶ãŒåãšãã¹ã¯ãŒãã®ãã¢ãã¢ã¯ã»ã¹ããŒã¯ã³ãååŸã§ãããšããã»ãã¥ãªãã£äžã®åé¡ãäœã§ãããã¯ããããŸããã ïŒ ããã¯ãã¹ãŠãäžæ¥ã®çµããã«åããã¯ã€ã€ãŒããä»ããŠéä¿¡ãããŠããŸããïŒ ãã¡ããïŒ
çŸåšå®è£ ãããŠããã¢ããªã±ãŒã·ã§ã³ã®ããŒãã¢ãé©çšãããšããã®èªèšŒæ¹æ³ãã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ã§äœ¿çšããããšã¯ïŒçŸå®ã®äžçã§ã¯ïŒçµ¶å¯Ÿã«äžå¯èœã«ãªããŸãã
ã¢ãã€ã«ã¢ããªããããã«å ¥åãããããã®æ£ããæ¹æ³ã¯ãããŸããã
ç§ã¯OAuth1aãOAuth2ããããŠä»ã§ã¯2ã€ã®JWTãã©ã°ã€ã³ãè©ŠããŠãã¢ã¯ã»ã¹å¯èœãªãã€ãã£ãã¢ããªãå®è£ ããŸãããããŠãŒã¶ãŒã®ããã«äœããè©ŠããŠã¿ãããã«ãããã³ã°ããããšãªãããã¹ãŠããããã«äœ¿ããã倱æã«çµãããŸãã 確ãã«ããã®ãããªãã®ã¯ç°¡åã«ãªãã¯ãã§ããïŒ
ããã«ãããµãŒãããŒãã£ã®JWTãã©ã°ã€ã³ïŒã€ã³ã¹ããŒã«æ°ã10,000以äžïŒã¯ãŠãŒã¶ãŒ/ãã¹ããµããŒãããŠãããç§ãæ§ç¯ããŠãããã€ãã£ãã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ã§ããŸãæ©èœããŸãã ãã ãããã©ã°ã€ã³ãä»ããæŽæ°ããŒã¯ã³ããªãå Žåã¯å€±æãããŠãŒã¶ãŒã¯å床ããã°ã€ã³ãããå¿ èŠããããŸãã ïŒwp-configãæåã§ç·šéããå¿ èŠããããŸãïŒ
ãã®ããŸããªãå ¬åŒã«ãªããïŒç§ã¯é¡ã£ãŠããŸãïŒïŒãã©ã°ã€ã³ã¯ãã¢ãã€ã«ãŠãŒã¶ãŒãã¬ã³ããªãŒã®æ¬ åŠãšããã®ããã«å®éã«éçºã§ããã¢ããªã±ãŒã·ã§ã³ã®çš®é¡ãç¡èŠããŠããããã«èŠããããã«å€±æããŸãã ãããŠãããã¯éåžžã«è¿èŠçŒçãªããã§ãã
wp.ââorgãµã€ãã«æçš¿ããããã®ãã€ãã£ãã¢ãã€ã«ã¢ããªãäžè¶³ããŠããã®ã«ã¯çç±ããããŸãã ãããŠãããã§ãã
ãé¡ãããŸããããã«ã€ããŠäœãåããããããŸããïŒ ïŒç§ã¯ãREST APIã®å°å ¥ä»¥æ¥ããŠãŒã¶ãŒãèªèšŒããããã®ãé©åãªãæ¹æ³ãåŸ ã£ãŠãäœå¹Žãã®éãã€ãã£ãã¢ããªã«åãçµãã§ããŸããïŒ
:)