Implicit Grant ã¯ããŠãŒã¶ãŒã®èªèšŒãšèªå¯ã«åºã䜿çšãããŠãããã¬ãŒã ã¯ãŒã¯ã§ãã OAuth 2.0 ã®èªå¯ãã㌠ã¿ã€ãã§ããããã¯ãã·ã³ã°ã« ããŒãž ã¢ããªã±ãŒã·ã§ã³ (SPA) ããã³ãŠãŒã¶ãŒã®ãã©ãŠã¶å ã§å®å šã«å®è¡ãããã¯ã©ã€ã¢ã³ãåŽ Web ã¢ããªã±ãŒã·ã§ã³åãã«ç¹å¥ã«èšèšãããŠããŸãããã®ç®çã¯ããããã®ã¢ããªã±ãŒã·ã§ã³ãåå¥ã®ãªã¯ãšã¹ããå¿ èŠãšããã«èªå¯ãµãŒããŒããçŽæ¥ã¢ã¯ã»ã¹ ããŒã¯ã³ãååŸã§ããããã«ãããŠãŒã¶ãŒã«ä»£ãã£ãŠä¿è·ããããªãœãŒã¹ã«ã¢ã¯ã»ã¹ããããã«å¿ èŠãªæš©éãã¢ããªã±ãŒã·ã§ã³ã«ä»äžããããšã§ãã
åœåãJavaScript ã¢ããªã±ãŒã·ã§ã³ã®èªå¯ã³ãŒã ãããŒã®ããåçŽãªä»£æ¿ææ®µãšããŠå°å ¥ãããæé»çèš±å¯ã«ã¯ãåºæã®ã»ãã¥ãªãã£å¶éãããã€ããããŸãã Proof Key for Code Exchange (PKCE) ãããŒãªã©ãSPA ããã³ã¯ã©ã€ã¢ã³ãåŽã¢ããªã±ãŒã·ã§ã³åãã«ç¹å¥ã«èª¿æŽããããããå®å šãªæ°ãããããŒã®åºçŸã«ãããå€ãã®å°éå®¶ãããããã®ããå®å šãªä»£æ¿ææ®µãåªå ããŠæé»çèš±å¯ãåé¿ããããšãæšå¥šããŠããŸãããã ããImplicit Grant 㯠OAuth 2.0 仿§ã®äžéšã§ãããäŸç¶ãšããŠäžéšã®ã·ããªãªã§äœ¿çšãããŠããããããã®ä»çµã¿ãçè§£ããããšãäŸç¶ãšããŠéèŠã§ãã
Implicit Grant ãããŒã§ã¯ããã©ãŠã¶ããŒã¹ã®ã¢ããªã±ãŒã·ã§ã³ã¯ãŠãŒã¶ãŒãèªå¯ãµãŒããŒã«éä¿¡ããèªèšŒãè¡ããèŠæ±ãããã¢ã¯ã»ã¹èš±å¯ (ã¹ã³ãŒã) ã«å¯ŸããåæãæäŸããŸããæ¬¡ã«ãèªå¯ãµãŒããŒã¯ãURL ãã©ã°ã¡ã³ããšããŠçŽæ¥å«ãŸããã¢ã¯ã»ã¹ ããŒã¯ã³ãšãšãã«ããŠãŒã¶ãŒãã¢ããªã±ãŒã·ã§ã³ã®ç»é²æžã¿ãªãã€ã¬ã¯ã URI ã«ãªãã€ã¬ã¯ãããŸãããã®åŸãã¢ããªã±ãŒã·ã§ã³ã¯ URL ããã¢ã¯ã»ã¹ ããŒã¯ã³ãæœåºããããã䜿çšããŠãŠãŒã¶ãŒã«ä»£ãã£ãŠä¿è·ããããªãœãŒã¹ã«ã¢ã¯ã»ã¹ã§ããŸãã
ãã®ãããŒã§ã¯ãã¢ã¯ã»ã¹ ããŒã¯ã³ã URL ã«å ¬éãããªãããã«ãããããèªå¯ã³ãŒã ãããŒã®éèŠãªã»ãã¥ãªãã£æ©èœã§ããèªå¯ã³ãŒããèŠæ±ããäžéã¹ããããã¹ããããããŸãããã ãããã®ç°¡çŽ åã«ã¯ã»ãã¥ãªã㣠ãªã¹ã¯ã®å¢å ã䌎ããŸãã Implicit Grant ãããŒã®ã¢ã¯ã»ã¹ ããŒã¯ã³ã¯ããã©ãŠã¶ãŒã®å±¥æŽããªãã¡ã©ãŒ ããããŒããŸãã¯æœåšçãªã¹ã¯ãªãã ã€ã³ãžã§ã¯ã·ã§ã³ãä»ããŠååããããããªããŸããããã«ãImplicit Grant ã«ã¯ãªãã¬ãã·ã¥ ããŒã¯ã³ããµããŒããããŠããªããããããŒã¯ã³ç®¡çã®å®å šæ§ãšå¹çæ§ãäœäžããå¯èœæ§ããããŸãã
æœåšçãªã»ãã¥ãªãã£äžã®æžå¿µãš SPA ã«ããé©ãããããŒã®å¯çšæ§ãèæ ®ãããšãæé»çãªèš±å¯ã¯ææ°ã®ã¢ããªã±ãŒã·ã§ã³ã®ãã¹ã ãã©ã¯ãã£ã¹ãšã¯èŠãªãããªããªããŸããã PKCE 察å¿ã®èªèšŒã³ãŒã ãããŒã¯ãSPA ããã³ã¯ã©ã€ã¢ã³ãåŽã¢ããªã±ãŒã·ã§ã³ã«æšå¥šãããèªèšŒãããŒãšãªããããå®å šã§æè»ãªãœãªã¥ãŒã·ã§ã³ãæäŸããŸãã
Implicit Grant ãé¿ããããšãæšå¥šãããŠããŸããããã®ä»çµã¿ãšæœåšçãªãŠãŒã¹ã±ãŒã¹ãçè§£ããããšã¯ãOAuth 2.0 å®è·µè ã«ãšã£ãŠäžå¯æ¬ ã§ããããã¯ãšã³ããWebãã¢ãã€ã« ã¢ããªã±ãŒã·ã§ã³ãäœæããããã®åŒ·åãªno-codeãã©ãããã©ãŒã ã§ããAppMasterã®ã³ã³ããã¹ãã§ã¯ãçæãããã¢ããªã±ãŒã·ã§ã³ãå¿ èŠãªã»ãã¥ãªãã£èŠä»¶ãæºãããŠããããšã確èªããäžã§ããŠãŒã¶ãŒã®èªèšŒãšæ¿èªãéèŠãªåœ¹å²ãæãããŸãã AppMasterããŸããŸãªçš®é¡ã®ã¯ã©ã€ã¢ã³ãããŠãŒã¹ã±ãŒã¹ã«å¯Ÿå¿ããããŸããŸãª OAuth 2.0 ãã㌠ãªãã·ã§ã³ãæäŸããéçºè ãéåžžã®æ°åã®äžã®æéãšã³ã¹ãã§å®å šã§ã¹ã±ãŒã©ãã«ã§å¹ççãªã¢ããªã±ãŒã·ã§ã³ãäœæã§ããããã«æ¯æŽããŸãã
AppMasterã§ OAuth 2.0 ãæ¡çšããå Žåãéçºè ã¯ãèªå¯ã³ãŒã ãããŒããªãœãŒã¹ææè ã®ãã¹ã¯ãŒãè³æ Œæ å ±ãããŒãã¯ã©ã€ã¢ã³ãè³æ Œæ å ±ãããŒãçŸåšã¯éæšå¥šãšãªã£ãŠããæé»çèªå¯ãªã©ãç¹å®ã®ããŒãºã«åºã¥ããŠããŸããŸãªèªå¯ä»äžã¿ã€ãããéžæã§ããŸãããã ããçŸåšã®ãã¹ã ãã©ã¯ãã£ã¹ã«åŸããSPA ããã³ã¯ã©ã€ã¢ã³ãåŽ Web ã¢ããªã±ãŒã·ã§ã³ã® PKCE 察å¿ã®èªèšŒã³ãŒã ãããŒãªã©ãå¯èœãªéãæãé©åã§å®å šãªãããŒã䜿çšããããšãåžžã«ãå§ãããŸãã
çµè«ãšããŠãImplicit Grant 㯠SPA ããã³ã¯ã©ã€ã¢ã³ãåŽ Web ã¢ããªã±ãŒã·ã§ã³åãã«èšèšããã OAuth 2.0 èªèšŒãããŒã§ãããã¢ã¯ã»ã¹ ããŒã¯ã³ãååŸããããã®ããã·ã³ãã«ã§ããå®å šæ§ã¯äœããªãã·ã§ã³ãæäŸããŸããããã«ã¯æŽå²çãªéèŠæ§ããããOAuth 2.0 仿§ã®äžéšãšããŠæ®ã£ãŠããŸãããPKCE 察å¿ã®èªèšŒã³ãŒã ãããŒã®ãããªææ°ã®ä»£æ¿ææ®µã¯ãã¯ããã«åªããã»ãã¥ãªãã£ãšæè»æ§ãæäŸããŸãã AppMasterã䜿çšãããŠãŒã¶ãŒèªèšŒã®å°éå®¶ãšããŠãçæãããã¢ããªã±ãŒã·ã§ã³ã«ãŠãŒã¶ãŒèªèšŒãããŒãå®è£ ããéã«ã¯ãæ¥çã®ãã¹ã ãã©ã¯ãã£ã¹ãšã¬ã€ãã©ã€ã³ãåžžã«ææ°ã®ç¶æ ã«ä¿ã¡ãæãå®å šã§å¹ççãªãœãªã¥ãŒã·ã§ã³ãéžæããããšãéèŠã§ãã