ãŠãŒã¶ãŒèªèšŒã®ã³ã³ããã¹ãã§ã¯ãããŒã¯ã³ã¯ããŠãŒã¶ãŒã®æåããèªå¯ããã³èªèšŒã»ãã·ã§ã³ã衚ãããã«èªèšŒã·ã¹ãã ã«ãã£ãŠçæãããåºæã®ããžã¿ã« ã¢ãŒãã£ãã¡ã¯ããæããŸãããã®ããžã¿ã« ã¢ãŒãã£ãã¡ã¯ãã¯ããã®åŸã®ã¯ã©ã€ã¢ã³ããšãµãŒããŒéã®éä¿¡ã§äœ¿çšããããŠãŒã¶ãŒã®èªèšŒããã³èš±å¯ãããã¹ããŒã¿ã¹ãç¶æãããŸãããã®ããã»ã¹ã«ãããã¢ããªã±ãŒã·ã§ã³ç°å¢å ã®ãŠãŒã¶ãŒè³æ Œæ å ±ãæ©å¯ããŒã¿ãããã³ãªãœãŒã¹ ã¢ã¯ã»ã¹ç®¡çã®ã»ãã¥ãªãã£ã確ä¿ãããŸãã
éåžžãããŒã¯ã³ã¯ 2 段éã®èªèšŒããã»ã¹ã®äžéšãšããŠçæãããŸããæåã®ã¹ãããã§ã¯ããŠãŒã¶ãŒã¯ãŠãŒã¶ãŒåãšãã¹ã¯ãŒã (ãŸãã¯çäœèªèšŒãã¯ã³ã¿ã€ã ãã¹ã¯ãŒããå€èŠçŽ èªèšŒæ¹æ³ãªã©ã®ä»ã®åœ¢åŒã®èå¥) ãèªèšŒã·ã¹ãã ã«éä¿¡ããŸããã·ã¹ãã ããŠãŒã¶ãŒã®è³æ Œæ å ±ãæ€èšŒãããšã第 2 ã®ã¹ããããšããŠããŒã¯ã³ã®çæãå§ãŸããŸãããã®ããŒã¯ã³ã¯éåžžãæååãŸã㯠JSON Web ããŒã¯ã³ (JWT) ã§æ§æããããŠãŒã¶ãŒã«è¿ããããŠãŒã¶ãŒã®ããã€ã¹ãŸãã¯ã»ãã·ã§ã³ã«ä¿åãããŸãã
ããŒã¯ã³ããŒã¹ã®èªèšŒæ¹æ³ã«ã¯ãCookie ããŒã¹ã®ã»ãã·ã§ã³ãªã©ã®åŸæ¥ã®æ¹æ³ã«æ¯ã¹ãŠããã€ãã®å©ç¹ããããŸããããŒã¯ã³ã«ãã£ãŠãŠãŒã¶ãŒè³æ Œæ å ±ãã»ãã·ã§ã³ç®¡çããåãé¢ãããããšã§ãã»ãã¥ãªãã£ãåäžããäžæ£ã¢ã¯ã»ã¹ã®ãªã¹ã¯ã軜æžãããè€æ°ã®ããã€ã¹ãŸãã¯ãã©ãããã©ãŒã ãåããŠãŒã¶ãŒ ã¢ã«ãŠã³ãã«åæã«ã¢ã¯ã»ã¹ã§ããããã«ãªããŸããããã«ãããŒã¯ã³ã¯äžå®æéåŸã«æéåãã«ãªãå¯èœæ§ããããããè³æ Œæ å ±ã®çé£ãäžæ£ãªååãçºçããå Žåã«ãäžæ£ã¢ã¯ã»ã¹ã®æœåšçãªåç¶æéãççž®ãããŸãã
èªèšŒããã»ã¹ã§ã¯ããŸããŸãªããŒã¯ã³ã®åœ¢åŒãšã¿ã€ãã䜿çšãããŸãããOAuth 2.0 ãš OpenID Connect ã¯æãããæ¡çšãããŠããããŒã¯ã³æšæºã® 1 ã€ã§ããåè¿°ããããã«ãJWT ãåºã䜿çšãããŠããããŒã¯ã³åœ¢åŒã§ãããã³ã³ãã¯ãã§ URL ã»ãŒããªèªå·±å®çµåã®ãŠãŒã¶ãŒ ã¯ã¬ãŒã 衚çŸãæäŸããŸãã JWT ã¯éåžžãããããŒããã€ããŒãã眲åã® 3 ã€ã®éšåã§æ§æãããŸããããããŒã¯ãããŒã¯ã³ã®ã¿ã€ããšããŒã¯ã³ã®çœ²åã«äœ¿çšãããã¢ã«ãŽãªãºã ãå®çŸ©ããŸãããã€ããŒãã«ã¯ããŠãŒã¶ãŒã® IDãããŒã«ãæš©éãããã³ã¢ããªã±ãŒã·ã§ã³ã«é¢é£ãã远å ã®ã¡ã¿ããŒã¿ã«é¢ããã¯ã¬ãŒã ãå«ãŸããŠããŸããæåŸã«ããµãŒããŒã®ã¿ãç¥ã£ãŠããç§å¯ããŒã䜿çšããŠçœ²åãèšç®ãããããŒã¯ã³ã®æŽåæ§ãšä¿¡é Œæ§ãæ€èšŒãããŸãã
ããã¯ãšã³ããWebãããã³ã¢ãã€ã« ã¢ããªã±ãŒã·ã§ã³ãäœæããããã®åŒ·åãªno-codeãã©ãããã©ãŒã ã§ããAppMasterã¯ãããŒã¯ã³ã䜿çšããŠãŠãŒã¶ãŒã®ã¢ã¯ã»ã¹ãæš©éããªãœãŒã¹ã®æææš©ã管çããå æ¬çãªèªèšŒããã³èªå¯ã·ã¹ãã ãå®è£ ããŠããŸãããã®ãã©ãããã©ãŒã ã¯èªèšŒã¯ãŒã¯ãããŒãã¢ããªã±ãŒã·ã§ã³ ããžãã¯ã«ã·ãŒã ã¬ã¹ã«çµ±åãããµãŒããŒendpoints ãããŒã¿ ã¢ãã«ãããžãã¹ ããã»ã¹ãžã®å®å šãªã¢ã¯ã»ã¹ãåçåããŸããããžã¥ã¢ã«ãª BP Designer ã®ãããã§ããŠãŒã¶ãŒã¯ã³ãŒãã 1 è¡ãèšè¿°ããããšãªããèªèšŒããã³èªå¯ã®èŠä»¶ãå¹ççã«å®çŸ©ããã³ã«ã¹ã¿ãã€ãºã§ããŸãã
ããã«ã AppMasterããŸããŸãªèªèšŒãããã€ããŒãšèªèšŒæ¹æ³ã®çµ±åããµããŒãããŠããã顧客㯠OAuthãOpenID ConnectãJWT ãªã©ã®æ¥çæšæºãããã³ã«ã掻çšã§ããŸãããã®æè»æ§ã«ãããã¢ããªã±ãŒã·ã§ã³ã®ã»ãã¥ãªãã£ãšãã©ã€ãã·ãŒã®ç®¡çã匷åãããã ãã§ãªãããŠãŒã¶ãŒã«å¯Ÿããã·ã³ã°ã« ãµã€ã³ãªã³ (SSO) ããã³å€èŠçŽ èªèšŒ (MFA) ãªãã·ã§ã³ã®å®è£ ãç°¡çŽ åãããŸãããã®çµæã AppMasterã§çæãããã¢ããªã±ãŒã·ã§ã³ã¯æ¢åã®ã»ãã¥ãªã㣠ã€ã³ãã©ã¹ãã©ã¯ãã£ã«ç°¡åã«çµ±åã§ããGDPRãHIPAAãPSD2 ãªã©ã®èŠå¶ã³ã³ãã©ã€ã¢ã³ã¹èŠä»¶ãæºããããšãã§ããŸãã
AppMasterã§çæãããã¢ããªã±ãŒã·ã§ã³ã¯ãPostgreSQL äºæããŒã¿ããŒã¹ããã©ã€ã㪠ããŒã¿ããŒã¹ãšããŠäœ¿çšã§ãããããããŒã¿ã®äžè²«æ§ãšã»ãã¥ãªãã£ã確ä¿ãããŸãã Go (Golang) ã§èšè¿°ãããã¹ããŒãã¬ã¹ã§ã³ã³ãã€ã«ãããããã¯ãšã³ã ã¢ããªã±ãŒã·ã§ã³ã䜿çšããããšã«ããããã©ãããã©ãŒã ã¯ãé«è² è·ããšã³ã¿ãŒãã©ã€ãº ã¬ãã«ã®ã·ããªãªãå«ãããŸããŸãªãŠãŒã¹ã±ãŒã¹ã«å¯ŸããŠåªããã¹ã±ãŒã©ããªãã£ãå®çŸã§ããŸããããã«ããããžã§ã¯ãããšã« Swagger (ãªãŒãã³ API) ããã¥ã¡ã³ããšããŒã¿ããŒã¹ ã¹ããŒãç§»è¡ã¹ã¯ãªãããçæããããšã§ãã¢ããªã±ãŒã·ã§ã³ã®ã¢ãŒããã¯ãã£ã®ç®¡çãä¿¡é Œæ§ãç£æ»å¯èœæ§ã匷åãããããŒã¯ã³ããŒã¹ã®èªèšŒã·ã¹ãã ã«ãã£ãŠæäŸãããã»ãã¥ãªãã£äœå¶ãšç®¡çæ©èœãããã«åŒ·åãããŸãã
çµè«ãšããŠãããŒã¯ã³ã¯ææ°ã®ãœãããŠã§ã¢ ã¢ããªã±ãŒã·ã§ã³å ã®ãŠãŒã¶ãŒèªèšŒã®ã³ã³ããã¹ãã§éèŠãªåœ¹å²ãæãããã»ãã¥ãªãã£ããã©ã€ãã·ãŒããªãœãŒã¹ãæ©å¯æ å ±ãžã®ã¢ã¯ã»ã¹ç®¡çã®æè»æ§ãå€§å¹ ã«åŒ·åããŸããããŒã¯ã³ããŒã¹ã®èªèšŒã®å®è£ ã«ããã AppMaster ãããžã¿ã«äžçã®å¢å€§ããéèŠãæºãããå®å šã§å¹ççãªããã¯ãšã³ããWebãããã³ã¢ãã€ã« ã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããããã®ãå æ¬çã§å ç¢ãã€ã¹ã±ãŒã©ãã«ãªãœãªã¥ãŒã·ã§ã³ãæäŸããŸãã