ç®æ¬¡
- 1 ã¯ããã«
- 2 åºæ¬çãªããªã·ãŒ
- 3 詳现ãªããªã·ãŒ
- 3.1 èšèšå šè¬
- 3.2 é¡äŒŒæ©èœã§ã®èšå®å€ã®ç¶æ¿
- 3.3 URIã«ããè€æ°èšå®ã®çµ±å
- 3.4 ç°å¢äŸåå€ã¯ããŒã¹å€ã䜿çš
- 3.5 å®è¡æãã©ã¡ãŒã¿ã®äœ¿çš
- 3.6 çµç«¯åºåãæåã®æç¡ã®æç¢ºå
- 3.7 çžå¯Ÿãã¹ã®åºæºãã©ã«ãã®æç¢ºå
- 3.8 ã³ã¡ã³ãã®æŽ»çš
- 3.9 泚æãå¿ èŠãªèšå®å€
ã¯ããã«
- ã¹ã¿ã³ãã¢ãã³ã¢ããªã±ãŒã·ã§ã³ãã¯ã©ãŠãããŒã¹ã®Webã¢ããªã±ãŒã·ã§ã³çã®èšå®ã«é¢ããèšèšããªã·ãŒã説æããŸãã
- ããã§ã¯ã¢ããªã±ãŒã·ã§ã³ã®èšå®æ å ±ãæ§æïŒConfigurationïŒãåã ã®èšå®é ç®ã»å€ã®ããšãèšå®ïŒSettingïŒããšè¡šèšããŸããïŒãèšå®ãã®éåããæ§æãã®ã€ã¡ãŒãžã§ããïŒ
- æ§ææ å ±ã»èšå®ãæ ŒçŽããã¹ãã¬ãŒãžããæ§ææ å ±ã¹ãã¬ãŒãžããšè¡šèšããŸããæ§ææ å ±ã¹ãã¬ãŒãžã®å ·äœäŸãšããŠãç°å¢å€æ°ãèšå®ãã¡ã€ã«ãããŒã¿ããŒã¹çãæ³å®ããŠããŸãã
- ä»ã®ã·ãªãŒãºã®ç޹ä»ã§ãã**NDW
äžè¬çãªãã°çš®å¥ã»ãã°åºåé ç®ã®ç޹ä»ãäŸå€æã皌åç£èŠã·ã¹ãã ãèæ ®ãããã°èšèšã®æ³šæç¹çã玹ä»ããŸãããŸããå®è£ æã®ãâŠ
åºæ¬çãªããªã·ãŒ
èšå®ã®åé¡
- ã¢ããªã®èšèšãè¡ããšæ§ã ãªèšå®å€ãã§ãŠããŸãã倧ããåããŠãã·ã¹ãã å¯ãã®èšå®ïŒã·ã¹ãã èšå®ïŒãæ¥åå¯ãã®èšå®ïŒæ¥åèšå®ïŒãã«åé¡ã§ããŸãã
- æ±ããããèŠä»¶ïŒã»ãã¥ãªãã£ã¬ãã«ãåç §é »åºŠã»æŽæ°é »åºŠãããŒã¿éãçïŒã«åºã¥ããŠãèšå®ãæŽçã»åé¡ããæé©ãªã¹ãã¬ãŒãžãéžæããŸãããã®éžæã«ãã£ãŠäœ¿çšãããœãªã¥ãŒã·ã§ã³ããããã¯ã¢ããæ¹åŒçãå€åããéçšã³ã¹ãã«åœ±é¿ããå ŽåããããŸãã
- ã·ã¹ãã èšå®ã¯ãåç §é »åºŠã¯é«ããããããŸããããããŒã¿éã倿Žé »åºŠã¯å°ãªããææªã®å Žåã¯ä¿å®ã§åŸ©å ããããšãå¯èœãªã®ã§ãå®äŸ¡ã§ã·ã³ãã«ãªæ§ææ å ±ã¹ãã¬ãŒãžãå©çšã§ããŸãã
- æ¥åèšå®ã¯é¡§å®¢ããŒã¿ã«ãªãã®ã§ãããå³å¯ãªç®¡çãå¿ èŠãšãªããŸãããŸãã倧éããŒã¿ã§é«é »åºŠã®åç §ã»æŽæ°ã«ãªãå ŽåããããŸããããããèæ ®ããŠãããŒã¿ããŒã¹çã®ããä¿¡é Œæ§ã®é«ãæ§ææ å ±ã¹ãã¬ãŒãžã䜿çšããå¿ èŠããããŸãã
- ã·ã¹ãã èšå®ã«æ¥åèšå®ãæ··åšãããšãã·ã¹ãã èšå®çšã§ãæ¥åèšå®ãšåæ§ã«é«åºŠãªæ§ææ å ±ã¹ãã¬ãŒãžãå¿ èŠã«ãªã£ãŠããŸãã®ã§æ³šæãå¿ èŠã§ãã
- ã·ã¹ãã èšå®ãªã®ãæ¥åèšå®ãªã®ã倿ãé£ããå ŽåããããŸãããŠãŒã¶éœåïŒæ°èŠå¥çŽçïŒããŠãŒã¶æäœã«ãã£ãŠè¿œå ã»å€æŽã»åé€ãããèšå®ã¯å šãŠãæ¥åèšå®ãããšããå€ææ¹æ³ããããŸãã
ã·ã¹ãã èšå®ã®æ ŒçŽ
- ã¯ã©ãŠãã䜿çšããå Žåãå®è¡ç°å¢ã«å¿ããŠè€æ°ã®æ§ææ
å ±ã¹ãã¬ãŒãžãæäŸãããŠãããçšéã«å¿ããŠäœ¿çšããã¹ãã¬ãŒãžãéžæããŸãã
çš®é¡ïŒAzureäŸïŒ 説æ èšå®ã®äŸ ã¢ããªæ§æç®¡ç
(App Configuration)çµå詊éšãéçšçã®ç°å¢ãæ§èœã«äŸåããèšå® DBãWebAPIæ¥ç¶æååããã°æ¡ä»¶ããªãã©ã€æ¡ä»¶ ãµãŒãæ§æ
(App Service, Functionsç)ãµãŒãäžã§ã¢ããªã皌åããããã®æå°éã®èšå® ã¯ã©ãŠãæ§æç®¡çãžã®æ¥ç¶æ å ± ã¢ããªèšå®ãã¡ã€ã«
(appsettings.json)ç°å¢ã«äŸåããªãå ±éã®èšå® æ©èœæ§æãªãã·ã§ã³ïŒDIé¢é£çïŒ éçºçšã¢ããªèšå®ãã¡ã€ã«
(appsettings.Development.json)éçºç°å¢ã§ã®ã¿æå¹ãªèšå® éçºDBæ¥ç¶æååãã¢ãã¯äœ¿çš - ã¯ã©ãŠãã§ã¯ãã¢ããªã±ãŒã·ã§ã³ã®æ§æãéäžç®¡çã§ãããœãªã¥ãŒã·ã§ã³ïŒä»¥åŸããã¢ããªæ§æç®¡çããšè¡šèšïŒãæäŸãããŠããŸããèšå®ã®ç®¡çã容æã«ããä¿å®æ§ãåäžãããããå¯èœãªéãã¢ããªæ§æç®¡çã§ã¢ããªã®æ§æã»èšå®ã管çããŸãã
- ã¢ããªéçºæã¯ãããŒã«ã«ç°å¢ã®ã¿ã§ã¢ããªã®å®è¡ããããã°ãã§ãããšéçºå¹çãé«ãŸãã®ã§ãããŒã«ã«ã«ããã¢ããªèšå®ãã¡ã€ã«ã»éçºçšèšå®ãã¡ã€ã«ã«å¿ èŠãªèšå®ãå®çŸ©ããŸããïŒç°å¢ã«äŸåããªãã¢ããªã®èšå®ã¯ã¢ããªèšå®ãã¡ã€ã«ãéçºç°å¢ã«äŸåããèšå®ã¯éçºçšã¢ããªèšå®ãã¡ã€ã«ã«å®çŸ©ãããïŒ
- ã¯ã©ãŠãã§ã®éçºç°å¢ãåæãšããŠããå Žåãç°å¢ã«äŸåããªãã¢ããªã®èšå®ã¯ã¢ããªèšå®ãã¡ã€ã«ã§ã¯ãªããã¢ããªæ§æç®¡çã§å®çŸ©ããŠãè¯ããããããŸããã
- ãŠãŒã¶èšå®ãæ¥åäŸåã倧ããèšå®ãçã¯ã·ã¹ãã ã®çšŒåã«å¿ èŠãªæ§æã»èšå®ãšã¯èŠä»¶ãç°ãªãå Žåãå€ãã®ã§ãããŒã¿ããŒã¹ããã¡ã€ã«çã®å¥ã®æ§ææ å ±ã¹ãã¬ãŒãžã䜿çšããŸãã
- éèŠæ§ãäœããåçŸã容æãªèšå®ã«é¢ããŠã¯ããã©ãŠã¶ã®ããŒã«ã«ã¹ãã¬ãŒãžãCookieã«ä¿åããæ¹æ³ãèããããŸãã
æ©å¯æ å ±ã®æ ŒçŽ
- ããã§ããæ©å¯æ å ±ãšã¯ãã·ã¹ãã ã®çšŒåã«å¿ èŠãšãªãæ©åŸ®ãªæ å ±ã§ãããã·ã¹ãã æ§æèŠçŽ ãå€éšã·ã¹ãã ãšã®æ¥ç¶ïŒèªèšŒïŒã«å¿ èŠãšãªãã·ãŒã¯ã¬ããã»ã¢ã¯ã»ã¹ããŒã»èšŒææžãããŒã¿ã®æå·åã«äœ¿çšããããŒãçãæ³å®ããŠããŸãã
- æ©å¯æ å ±ã¯ã»ãã¥ã¢ãªã¹ãã¬ãŒãžã§ç®¡çããŸããã¯ã©ãŠãã䜿çšããå ŽåãAzureã§ã¯KeyVaultãAWSã§ã¯KSMãCloudHSMããªã©ã§ãã
- ã¯ã©ãŠãã䜿çšããå ŽåãAzureç°å¢ã®ãããŒãžãIDã®ããã«ããã¹ã¯ãŒãçã®æ©å¯æ å ±ãèšå®ããã«å®å šã«æ¥ç¶ããä»çµã¿ãçšæãããŠããŸããå¯èœãªéãããã®ãããªæ©å¯æ å ±ãäžèŠãšããä»çµã¿ã䜿çšããŸããïŒç®¡ç察象ãšãªãæ©å¯æ å ±ã®åæžãïŒ
- ã¢ããããŒãã»ããŠã³ããŒããã¡ã€ã«çšã®æå·åããŒããŠãŒã¶ãæå®ããå€éšé£æºçšã®ããŒãçã®ããã«æ¥åéœåã§äœæã»ç»é²ãããæ©å¯æ å ±ã¯ãæ±ããããå®å šæ§ã»ããŒã¿éã»ã¢ã¯ã»ã¹é »åºŠã»éçšè²»çšçã«å¿ããŠé©åãªã¹ãã¬ãŒãžãéžæããŸããèšèšã»éçºæã®ã»ãã¥ãªãã£ã¬ã€ãã©ã€ã³ãèšããããŠããäŒæ¥ã§ã¯ãããã«æºæ ããŠæ±ºå®ããå¿ èŠããããŸãã
- åçŽãªãã®ã§ããã°ãæ©å¯æ å ±ãAES256çã§æå·åããŠDBã«ä¿åããæ¹åŒãèããããŸããïŒæå·åã§äœ¿çšããããŒã¯ãåè¿°ã®ã»ãã¥ã¢ãªã¹ãã¬ãŒãžã§ç®¡çãçãïŒ
- ãã€ãã³ããŒïŒå人çªå·ïŒçã®ããå®å šæ§ãæ±ããããæ©å¯æ å ±ã管çããå Žåãå©çšæéãæ¯èŒçé«é¡ã«ãªããŸãããKeyVaultãCloudHSMçã§æäŸããHSMæ©èœã®å©çšããèŠãããŸããHSM(Hardware Security Module)ã§ã¯ãæ©å¯æ å ±ãæå·åã»åŸ©å åããããã®ããŒãããŒããŠã§ã¢ã§ç®¡çãããå€éšãã容æã«ååŸã§ããªãä»çµã¿ã«ãªã£ãŠããŸãã
ç¬èªã®æ§ææ å ±ã¹ãã¬ãŒãžã®å®è£
- äžè¬çãªæ§ææ å ±ã¹ãã¬ãŒãžã§ã¯ãèšå®å€ã®é »ç¹ãªæŽæ°ã¯æ³å®ããŠããŸãããé«é »åºŠã®åç §ãšæŽæ°ãè¡ããããããªèšå®ã§ã¯ãæ§èœãç¶æãã€ã€å®å šã«èšå®ãæŽæ°ã§ãããããªç¬èªã®æ§æã¹ãã¬ãŒãžãå¿ èŠãããããŸããã
- ãã®ãããªæ§æã¹ãã¬ãŒãžã¯ãåæã¢ã¯ã»ã¹ã«å¯Ÿããå®å šãªèªã¿åãã»æžã蟌ã¿ãå®çŸããå¿ èŠãããããã«ããªãŒããŒã»ã©ã€ã¿ãŒããã¯çã®é£æåºŠã®é«ãèšèšã»å®è£ ãæ±ããããå ŽåããããŸããèšèšã»å®è£ ã®å質確ä¿ãäžååãªå Žåãã¢ã¯ã»ã¹é »åºŠã®é«ãéçšç°å¢ã§ããçºçããªããã°ã«ãªãå Žåãããã®ã§ãå®çŸã«ã¯ååãªæ€èšãå¿ èŠã§ãã
衚瀺é ç®ãšå€èšèªå¯Ÿå¿
- å®è¡ç°å¢ããŠãŒã¶ã®éžæã«å¿ããŠäœ¿çšèšèªã®åæ¿ãå¯èœãšããã¢ããªã§ã¯ãã¿ã€ãã«ããã¿ã³ãããŒã«ãããçã®UIéšåã®æ å ±ãåœããšã«å®çŸ©ã»ä¿æããå¿ èŠããããŸãã
- ãã®ãããªä»çµã¿ã¯ãå€ãã®ããã°ã©ãã³ã°èšèªã®åœéåæ©èœãšããŠãµããŒããããŠããŸããäŸãã°ãJavaã§ã¯ResourceBundleãšãªãœãŒã¹ãã¡ã€ã«ãC#ã§ã¯ãªãœãŒã¹çã䜿çšããŸãã
- å€èšèªå¯Ÿå¿ãäžèŠãªå Žåã§ãããšã©ãŒã¡ãã»ãŒãžãéä¿¡ã¡ãŒã«ã®ä»¶åã»æ¬æãçãåæ§ã®ä»çµã¿ã®äœ¿çšããèŠãããŸãã
ãªã³ã¯
詳现ãªããªã·ãŒ
èšèšå šè¬
- æ¢å®å€ãèšããã
- ã¢ããªå®è¡ã®é£æåºŠïŒå¿ èŠãªç¥èïŒãäžããããã«ãæ¢å®å€ãèšããŸãã
- éçºç°å¢ããæ¬çªç°å¢ã®ãªãœãŒã¹ã誀ã£ãŠå€æŽãåé€ããªããããéçšç°å¢ã«é¢ããæ¥ç¶æ å ±ã¯æ¢å®å€ãèšå®äŸã«å«ããŠã¯ãããŸããã
- åæ§ã«ãæå³ããªã倿Žãäžæ£ã¢ã¯ã»ã¹ãé²ãããã«ãéçºç°å¢ä»¥å€ã®ãã¹ã¯ãŒããã¢ã¯ã»ã¹ããŒã»ããŒã¯ã³çã®æ©å¯æ å ±ã¯å«ããŠã¯ãããŸããã
- ã¢ããªãã¬ãŒã ã¯ãŒã¯ãæ¥åããŒã ã§äœ¿çšããå Žåãæå·åãããæ°ããªãã©ã€åæ°ãã¿ã€ã ã¢ãŠãå€çã®æè¡çãªèšå®å€ã決ããã®ã¯å°é£ãªã®ã§ããã¬ãŒã ã¯ãŒã¯ã®éçºåŽã§æäœéã®æ¢å®å€ãèšå®ããå¿ èŠããããŸãã
- å®å
šãªæ¢å®å€ã䜿çšããã
- ã»ãã¥ãªãã£ã¬ãã«ãäžããªãå€ãæ¢å®å€ãšããŸããïŒå®å šãªããã©ã«ãïŒ
- ãããã»ãã¥ãªãã£ã¬ãã«ãäžãããããªèšå®ãèšããå Žåãéçšç°å¢ã§ã®é倧ãªã€ã³ã·ãã³ãã«ãªãåã«ããã®èšå®ãè¡ãããŠããããšãæ°ã¥ããããã«ãã工倫ãéèŠã§ãã詳现ã¯åŸè¿°ããŸãã
- éçºç°å¢ã®èšå®ãéçšç°å¢ã«æ··å ¥ãããšé倧ãªã€ã³ã·ãã³ãã«ãªãã®ã§ãéçšç°å¢ã®å€ãæ¢å®å€ã«ããããšããèŠãããŸãã
- éçºå¹çãå®å
šæ§ãåäžããèšå®ãéçºè
ã«é
åžããã
- ã¢ããªã®æ¹ä¿®ã®éœåºŠãéçºç°å¢ã®DBãå€éšã·ã¹ãã ãžã®æ¥ç¶æ å ±ïŒã·ãŒã¯ã¬ãããã¢ã¯ã»ã¹ããŒãå«ãïŒãèšå®ãã¡ã€ã«ã«å®çŸ©ããã®ã¯å€§å€ã§ããçŸå Žã®ã»ãã¥ãªãã£ã¬ã€ãã©ã€ã³ãšããŠåé¡ãªããã°ãèšå®ãã¡ã€ã«ã«éçºç°å¢çšã®æ¥ç¶æ å ±ãå®çŸ©ããŸãã
- éçºç°å¢ã§ã¯å©çšãé£ããå€éšã·ã¹ãã ã䜿çšããæ©èœã§ã¯ãã¢ãã¯åäœãè¡ãæ©èœãå®è£ ããŸããã¢ãã¯åäœãå¯èœãšããããšã§ãåäœç¢ºèªãåäœãã¹ãã容æã«ãªããéçºå¹çãåäžããŸããéçºè ã«é åžããéçºçšã¢ããªæ§æãã¡ã€ã«ã§ã¯ãã¢ãã¯åäœãæå¹ã«ããŸãããã ãããã®èšå®ãçµå詊éšç°å¢ãéçšç°å¢ã«ç§»è¡ããªãããæ¢å®å€ã¯ç¡å¹ã«ããŠãããŸãã
- èŠä»¶ã«å¿ããŠèšå®å€ã®æ€èšŒæ©èœãå®è£
ããã
- äžè¬çãªæ¥åã¢ããªã®çµå詊éšãç·å詊éšã§ã¯ãèšèšæžïŒèšå®å®çŸ©ïŒã«åºã¥ããŠæ§ç¯ããç°å¢ã§ã¢ããªã®åçš®ãã¹ããè¡ããèšå®å€ãå«ãã¢ããªã®åŠ¥åœæ§ãæ€èšŒããŸããèšå®ã®èª€ããããå Žåããã®å·¥çšã§äžå ·åãšããŠæ€åºãããèšæ£ãããŸãããã®ããã«çµå詊éšå·¥çšä»¥éã§èšå®å€ã®æ€èšŒãè¡ãããã®ã§ãèšå®å€ã®æ€èšŒãå®è£ ããå¿ èŠæ§ã¯äœããšèããŸããïŒçµå詊éšä»¥éã§ã¯ãå質管çã®ããã«ãçµå察象ãšãªãæ©èœã»ç°å¢ã®ããŒãžã§ã³ãå³å¯ã«ç®¡çããæ³å®ã§ããïŒ
- ãšã³ããŠãŒã¶ãèšå®ã倿Žã§ãããããªãããã¯ããããã±ãŒãžãã¢ããªãã¬ãŒã ã¯ãŒã¯çã®å Žåãèšå®ã®ééããæ€èšŒããå·¥çšããªãã®ã§ãèšå®å€ã®æ€èšŒã®å®è£ ãå¿ èŠã§ãã
- èšå®å€ãäžæ£ãªç¶æ ã§ãµãŒãã¹ãç¶ç¶ãããšãããŒã¿ã®äžæŽåãæ å ±æŒæŽ©çã®ã€ã³ã·ãã³ãã«ç¹ããå ŽåããããŸããæ€èšŒãå®è£ ããå Žåãèšå®ã®äžæ£ïŒæ€èšŒå€±æïŒãå¯èœãªéãæ©ãæ€åºããããšãéèŠã§ããã¢ããªèµ·åã®çŽåŸããŠãŒã¶ã®ãµã€ã³ã€ã³çŽåŸãçã®æ©ãã¿ã€ãã³ã°ã§èšå®å€ãæ€èšŒããŸããæ€èšŒã«å€±æããå Žåãæ¥å圱é¿ãèžãŸããŠã¢ããªã®å®è¡ã忢ããã®ããç¶ç¶ïŒçž®éé転ïŒããã®ããèšèšããŸãã
é¡äŒŒæ©èœã§ã®èšå®å€ã®ç¶æ¿
- é¡äŒŒã®æ©èœéã§å
±éã®èšå®ã®ä»çµã¿ã«ãããšã次ã®äŸã®ããã«ç¹å®ã®ãŠãŒã¹ã±ãŒã¹ã§ã®èšå®ãå°é£ã«ãªãå ŽåããããŸãã
èšå®äŸ äŸå€çãªãŠãŒã¹ã±ãŒã¹ REST APIå®è¡ã®åŸ æ©æéãå詊è¡åæ°ç ä¿¡é Œæ§ãäœãREST APäœ¿çšæã¯åŒãäžã DBã³ãã³ãã¿ã€ã ã¢ãŠã å®è¡å®äºãé·æéåŸ æ©ãããããã¯ã³ãã³ãã¿ã€ã ã¢ãŠããäŒžé· ããŒã¿ååŸäžéä»¶æ°ãåé€æå€§ä»¶æ° å€§éããŒã¿ãæ±ãç¹å®ãããã®äžéä»¶æ°ã®åŒãäžã ããŒãžèŸºãä»¶æ°ãæå€§ããŒãžæ° 管çè ç»é¢ã§ã®è¡šç€ºä»¶æ°ã®åŒãäžã - ãã®ãããªå Žåãæ¬¡ã®ããã«ç¶æ¿ïŒå
±éãšåå¥ã§èšå®ãåé¢ïŒãå¯èœãšããèšèšã«ããŸãã
ïŒãã®äŸã§ã¯ãWebãµãŒãã¹ãå®è¡ããããã®æ±çšçãªã¯ã©ã¹WebClientãå®è£ ããå®è¡ã®ã¿ã€ã ã¢ãŠãã¯60ç§ãšããŠããŸãããã¹ã¿ããŒã¿æ€çŽ¢REST APIãå®è¡ããããã«ãWebClientããæŽŸçããMstRestClientã¯ã©ã¹ãå®è£ ããŸãããã®REST APIã¯ä¿¡é Œæ§ãäœãã®ã§ã¿ã€ã ã¢ãŠãã¯120ç§ã«äŒžé·ããŸããïŒ123WebClient::TimeoutBySecond=60WebClient::RetryCount=3WebClient:MstRestClient:TimeoutBySecond=120123"WebClient": {"default": { "TimeoutBySecond": 60, "RetryCount": 3 },"MstRestClient": { "TimeoutBySecond": 120 },
URIã«ããè€æ°èšå®ã®çµ±å
- URIã¯ãã€ã³ã¿ãŒãããäžã®HTMLãç»åçã®ãªãœãŒã¹ãåäžæ å ±ã§äžæã«ç€ºããããšã«ã¡ãªããããããŸãã
- ã¹ããŒãããã¹ãåãããŒãçªå·ããã£ã¬ã¯ããªåçã®èšå®å€ããURIãçæãããããªå ŽåãURIãæå®å¯èœãšããåäžã®èšå®å€ã«çµ±åããŸãã
- åå¥ã®èšå®å€ã«åããŠããŸããšæ¥ç¶å ãåããã¥ãããªããŸãããŸããç°å¢ãåãæ¿ããéã«ãè€æ°ã®èšå®å€ãçºããŠå€æŽããå¿ èŠããããå°ã æéãããããŸãã
ç°å¢äŸåå€ã¯ããŒã¹å€ã䜿çš
- åŠçã§å¿ èŠãšãªãURIããã¹ãç°å¢ã«äŸåããå Žåãå®è¡ç°å¢ã容æã«åãæ¿ãããããããç°å¢äŸåéšåãããŒã¹URIãããŒã¹ãã¹ãçã®ãããªèšå®å€ã«ããŸãã
- REST APIçã®WebãµãŒãã¹ã䜿çšããã¢ããªã®å Žåãæ¬¡ã®äŸã®ããã«ããWebãµãŒãã¹ãèå¥ãããã¹ãåãããŒãçªå·ãäžéšãã¹ãã¯ç°å¢äŸåïŒé»è²éšåïŒããåŒã³åºãå
ã®WebãµãŒãã¹ã®ãã¹ãã¯å®è£
ã§åºå®ïŒéè²éšåïŒãããããšã«ãªããšæããŸãã
æ³å®äŸ ãµã³ãã«URI ããŒã«ã«ç°å¢ https://localhost:8438/MstProj/api/v1/Customer/1 éçºç°å¢ https://dev-mstapi:8080/api/v1/Customer/1 çµå詊éšç°å¢A https://it-mstapi/ita/api/v1/Customer/1 çµå詊éšç°å¢B https://it-mstapi/itb/api/v1/Customer/1 éçšç°å¢ https://prod-mstapi/api/v1/Customer/1
ãªã³ã¯
å®è¡æãã©ã¡ãŒã¿ã®äœ¿çš
- 次ã®ããã«ãèšå®å€ãšå®è¡æã«æ±ºå®ãããã©ã¡ãŒã¿ãçµã¿åãããå Žåãå®è¡æã®å€ãå±éããå Žæã瀺ãå°ïŒãã¬ãŒã¹ãã«ãïŒã䜿çšããŸãããã¬ãŒã¹ãã«ãã䜿çšããããšã§æåŸ
ãããã¹ãURIãã€ã¡ãŒãžãããããªããå®è¡æãã©ã¡ãŒã¿ã®çš®é¡ãäœçœ®ã®å€æŽã容æã«ãªãããã§ããïŒãã¬ãŒã¹ãã«ã{}ã®éšåãå®è¡æã®å€ã«å±éããã€ã¡ãŒãžã§ããïŒ
èšå®å€ã®äŸ å±éäŸ /backup/{date}/org/{userid} /backup/20231231/org/1234 https://server/api/v1/Customer/{userid} https://server/api/v1/Customer/1234 CREATE DATABASE {dbname} COLLATE {collate} CREATE DATABASE CUS001 COLLATE French_CI_AI - ãŠãŒã¶ãå€éšã·ã¹ãã çã®ä¿¡é Œã§ããªãå ¥åããã¬ãŒã¹ãã«ãã«å±éããå ŽåãSQLã€ã³ãžã§ã¯ã·ã§ã³ãOSã³ãã³ãã€ã³ãžã§ã¯ã·ã§ã³ããã°ã€ã³ãžã§ã¯ã·ã§ã³çã®å¯Ÿçãå¿ èŠã«ãªããŸãã
- ãã¬ãŒã¹ãã«ããšããŠã§ã¯ãªãèšå®å€ã®å€ãšããŠ{userid}ãå«ãŸããå Žåã誀ã£ãå±éã«ãªãå ŽåããããŸãããã®ãããªå Žåã[userid], #userid#, {{userid}}, __userid__çã®ããã«å¥ã®è¡šçŸã«ããããã{{ã¯ãã¬ãŒã¹ãã«ãã®å§ãŸãã§ã¯ãªã{ãšèŠãªããã®ãããªãšã¹ã±ãŒãã®ã«ãŒã«ããæ€èšããŸãã
- å±éããããã©ã¡ãŒã¿ã¯å°æ¥çã«å¢æžããå¯èœæ§ãããå Žåããã¬ãŒã¹ãã«ãåããå±éããå€ãéžæããæ¹åŒããèŠãããŸããäŸãã°ãæ€çŽ¢ããã¬ã³ãŒãã®ã«ã©ã å€ãå±éãããããªå Žåããã¬ãŒã¹ãã«ãã®åç§°ïŒ{ã«ã©ã å}ïŒããå±éããã«ã©ã å€ã決å®ããŸãã
çµç«¯åºåãæåã®æç¡ã®æç¢ºå
- URIããã¹ã®çµç«¯ã«”/”ã”\”çã®åºåæåïŒçµç«¯åºåãæåïŒãä»ãããã©ããã«ãŒã«ãšããŠæç¢ºã«ããŸãã
- çµç«¯åºåãæåã«ã€ããŠãäžæ¹ã®èšå®å€ã§ã¯å¿
èŠã仿¹ã®èšå®å€ã§ã¯äžèŠãã®ãããªèšèšã«ãªããšã次ã®ããã«ãã°ã«ã€ãªãããŸãã123456789// æåŸ ããurlå€: "https://server/parent/child"// 倱æäŸïŒïŒèšå®å€ã®æåŸã«"\"ããªãåæã®å®è£string baseUri = "https://server/parent/"; // èšå®å€ãæ³å®string result = baseUri + "/child"; // çµæNG: "https://server/parent//child"// 倱æäŸïŒïŒèšå®å€ã®æåŸã«"\"ãããåæã®å®è£string baseUri = "https://server/parent"; // èšå®å€ãæ³å®string result = baseUri + "child"; // çµæNG: "https://server/parentchild"
- ããŒã«ãã«ãŒããéçºè ã®è² æ ã軜æžããããã«ãå®è£ ã§ã¯çµç«¯åºåãæåã®æç¡ã«ãããããæ£åžžåäœãããããšããèŠãããŸãã
- äŸãã°ãJavaã®URIãPathãC#ã®UriãPathãçã®ããã«ãåºåãæåã®æç¡ãåé¡ãªãåŠçã§ããã©ã€ãã©ãªã䜿çšããŠURIããã¹ãç·šéããŸããæååã§æäœããå Žåãæ¬¡ã®äŸã®ããã«ãçµç«¯ã®åºåãæåãããªã åŸïŒïŒåºåãæåããªãç¶æ
ïŒããæ¹æ³ããããŸãã123// æååæäœã®äŸstring baseUri = "https://server/parent/"; // èšå®å€ãæ³å®string result = baseUri.TrimEnd('/') + "/child"; // çµæOK: "https://server/parent/child"
çžå¯Ÿãã¹ã®åºæºãã©ã«ãã®æç¢ºå
- çžå¯Ÿãã¹ãæå®å¯èœãªèšå®å€ã®å Žåãåºæºãšãããã©ã«ãïŒåºæºãã©ã«ãïŒãææ§ã«ãªããããã®ã§ã仿§ãšããŠæç¢ºã«ããããšããèŠãããŸãã
- åºæºãã©ã«ããšããŠãã¢ããªãå®è¡ããéã®ã«ã¬ã³ããã£ã¬ã¯ããªãäœ¿ãæ¹æ³ãã¢ããªã§æå®ãããã£ã¬ã¯ããªãäœ¿ãæ¹æ³ãèããããŸãã
- åè ã®ã«ã¬ã³ããã£ã¬ã¯ããªã䜿çšããæ¹æ³ã¯ãå®è¡ç°å¢ã»å®è¡æ¹æ³ã§å€åããå¯èœæ§ããããå®è¡ç°å¢ã«ãã£ãŠã¯æ£ããåäœããªãå Žåãããã®ã§ãããããèæ ®ããèšèšãå¿ èŠã«ãªããŸãã
- åŸè ã®ã¢ããªæå®ãã©ã«ãã䜿çšããæ¹æ³ã§ã¯ãã¢ããªæ¬äœãšãªãã³ãã³ãã»ãã€ããªãã¡ã€ã«ãé 眮ããããã£ã¬ã¯ããªãèšå®å€ã§å®çŸ©ãããã£ã¬ã¯ããªãçãåºæºã«ã§ããŸããåºæºãã©ã«ããåºå®ãããã®ã§ãçµéšçã«ãã¡ãã®æ¹æ³ãå®å šã§èŠãã§ãã
ã³ã¡ã³ãã®æŽ»çš
- èšå®ãã¡ã€ã«ã䜿çšããå Žåãã¡ã³ããã³ã¹æ§ãåäžããããã«ãã³ã¡ã³ãã®å®çŸ©ã蚱容ããããšããèŠãããŸããïŒäžéšã®èšå®ã¹ãã¬ãŒãžã§ã¯èšå®å€ã«å¯Ÿããã¡ã¢ãç»é²ã§ããå ŽåããããŸããïŒ
- èšå®ã®æ¢å®å€ã䜿çšããå Žåãæå¹ãšãªãæ¢å®å€ãåãããããæ¢å®å€ãèšå®ããå®çŸ©ããã³ã¡ã³ãã¢ãŠãããŠæ®ããŠããããšããèŠãããŸãã
- èšå®å€ã®èš±å®¹å€ã泚æç¹ãã³ã¡ã³ããšããŠæ®ã£ãŠãããšäºæ ãé²ãããšãã§ããŸããåºæ¬ã¯èšèšæžãã¬ã€ãçã«æžãã¹ãå 容ãªã®ã§å¿ èŠæå°éã§éèŠãªãã®ã®ã¿ã«çµã£ãŠã³ã¡ã³ãããããšããèŠãããŸããå人çãªæèŠã§ãããéçºè ã¯çšæãããŠããè³æãèŠãªã人ãå€ãã®ã§ããã®ããã«èšèŒããŠãããæ¹ãäœæ¥å¹çãäžãããç¡çšãªãµããŒããåæžã§ããŸãã
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | { // "TargeFile": "default.json" // "RetryCount": 3 "FileScanInterval": 10, // [s] "ReportYearMonth": "2023-03", // "yyyy-MM" "TenantId": "005d28bb-2cec-4c11-bdeb-0be69dff0875", // A瀟ããã³ã "FingerPrint": "57DDE...0DEC06", // SHA-224(倧尿åç¡èŠ) "RunMinutes": "30", // å(0-59) "DisplayType": 2, // 0: é衚瀺, 1:åžžæè¡šç€º, 2: ãŠãŒã¶èšå®ã«åºã¥ããŠè¡šç€º "IgnoreClientCert": true, // éçšç°å¢ã§ã®trueã¯çŠæ¢ "ApiSecret": "", // Key Vaultã§ç®¡ç "DisableFunc1": true, // 倿޿ã¯DisableFunc2ã䜵ããŠå€æŽ ... } |
泚æãå¿ èŠãªèšå®å€
- åé€å¯Ÿè±¡ã«åœ±é¿ãäžããèšå®ã§ã¯ãæå®ãããå€ã®åŠ¥åœæ§ã®æ€èšŒããèŠãããŸãã
- ., .., \çã®æå®ã«ãããã¢ããªãã®ãã®ãOSé åã®éèŠãã¡ã€ã«ãåé€ããå¯èœæ§ããããŸãã
- 被害ãæå°éã«ããããã«ãåé€å¯Ÿè±¡ã®ãã¹ããã¢ããªã®ããŒã¿é åé äžããäžæãã£ã¬ã¯ããªé äžããããŒã ãã£ã¬ã¯ããªé äžãçã§ããããšã®æ€èšŒããèŠãããŸãã
- éçšæã®ã€ã³ã·ãã³ãã«ç¹ããèšå®ã¯æ°ã¥ããããã«ããã
- éçºç°å¢ã«çšæã§ããªãå€éšã·ã¹ãã ãããå Žåããã®ãããªå€éšã·ã¹ãã ã®åŒã³åºãåŠçãã¢ãã¯åäœãããèšèšã«ããŸããã¢ãã¯åäœããããã©ããã¯èšå®å€ã§åãæ¿ããããããã«ããŸãã
- ã¢ãã¯åäœãå¯èœãšããããšã§ãéçºããã¹ãå¹çãåäžã§ããŸããããã®ãããªèšå®ãéçšç°å¢ã«ç§»è¡ãããšé倧ãªã€ã³ã·ãã³ãã«ç¹ããå ŽåããããŸãã
- ãã®ãããªäºæ ã«æ©æ¥ã«æ°ã¥ãããããªå·¥å€«ãå¿ èŠã§ããéçšç°å¢ã§ã¯èŠå以äžã®ãã°ã¯å³å¯ã«ãã§ãã¯ãããå Žåãå€ãã®ã§ããã®ãããªèšå®ãæå¹ã«ãªã£ãŠããå Žåã¯èŠåãã°ã®åºåããèŠãããŸãã
- éçºæã®ã€ã³ã·ãã³ãã«ç¹ããèšå®ã¯ç¡å¹ã«ããŠããã
- ã¯ã©ãŠãäžã®ããŒã¿ããŒã¹ãã¹ãã¬ãŒãžçã®ææãªãœãŒã¹ã®äœæã»å€æŽãè¡ãæ©èœã§ã¯ãæå³ããªã課éãé²ãããã«ãéçºè ã«ã¯ã¢ãã¯åäœãæå¹ã«ããèšå®ã®é åžããèŠãããŸããæåã«æ°åäžåã®è«æ±ãæ¥ãŠåããŠæ°ã¥ãå Žåãããã®ã§ãã¯ã©ãŠãåŽã®ã³ã¹ãç£èŠïŒã¢ã©ãŒãæ©èœã®äœ¿çšããèŠãããŸãã
- éçºç°å¢ããå€éšã«ã¡ãŒã«ãéä¿¡ãããã€ã³ã·ãã³ãïŒæ å ±æŒæŽ©ïŒã«ãªãå ŽåããããŸãããã®ãããªã€ã³ã·ãã³ãã鲿¢ããããã«ãã¡ãŒã«éä¿¡æ©èœã§ã¯ã¢ãã¯åäœãå®è£ ããéçºè ã«ã¯ã¢ãã¯åäœãæå¹ã«ããèšå®ã®é åžããèŠãããŸãããŸãã䜿çšããã¡ãŒã«ã¢ãã¬ã¹ïŒãã¡ã€ã³ïŒãšããŠãèªãã¡ã€ã³ãå°éäžå¯èœãªexample.comçã®ãµã³ãã«ãã¡ã€ã³ã®äœ¿çšããèŠãããŸãã
ãªã³ã¯