ã¢ããªã±ãŒã·ã§ã³ã®æšæºãŠãŒã¶ãŒèªèšŒã«ã€ããŠã¯èª°ããç¥ã£ãŠããŸãã ããã¯æãªããã®ç»é²æé ã§ãããŠãŒã¶ãŒã¯ã¡ãŒã«ã¢ãã¬ã¹ããã¹ã¯ãŒããªã©ãå ¥åããå ¥ãå£ã§ã¡ãŒã«ããã¹ã¯ãŒããä¿åãããããŒã¿ãšæ¯èŒããŸãã äžèŽããå Žåãã¢ã¯ã»ã¹ãèš±å¯ããŸãã ããããæ代ã¯å€ãããä»ã®å€ãã®èªèšŒæ¹æ³ãä»æ¥ç»å ŽããŸããã äžè¯é¡ã®ãããªãœãããŠã§ã¢éçºã®äžçã®ããã«ããã®å€åã«ãããŠäººæ°ã®ããã°ã©ããŒ/éçºè ã§ããç¶ãããå Žåã¯ãããããã¹ãŠã®æ°ããæ¹æ³ã«ã€ããŠç¥ã£ãŠããå¿ èŠããããŸãã
ã©ã®ã¢ããªã±ãŒã·ã§ã³ããã³OSã§ãããèªèšŒãããŠãŒã¶ãŒããŒã¿ã®å®å šæ§ã確ä¿ããæ å ±ãžã®ã¢ã¯ã»ã¹ãèŠå¶ããäžã§éåžžã«éèŠãªèŠçŽ ã§ããããšã¯åŠå®ã§ããŸããã ã©ã®èªèšŒæ¹æ³ãæé©ã§ããããç解ããã«ã¯ããã¹ãŠã®æ¹æ³ã®é·æãšçæãç解ããããããã©ã®ããã«æ©èœããããããç解ããå¿ èŠããããŸãã
ããã§ã¯ãä»æ¥æãäžè¬çãªèªèšŒæ¹æ³ã«ã€ããŠã話ããŸãã ããã¯è©³çŽ°ãªæè¡ã¬ã€ãã§ã¯ãªãããããã玹ä»ããæ¹æ³ã«ãããŸããã ã¡ãœããã¯Webäžã®ã¢ããªã±ãŒã·ã§ã³ãèæ ®ããŠèª¬æãããŠããŸããããããã®ã¢ã€ãã¢ã¯ä»ã®æ¡ä»¶ã§ãå®è£ ã§ããŸãã
Web /ã€ã³ã¿ãŒãããã®ã»ãšãã©ãHTTPãããã³ã«ã§æ§ç¯ãããŠããããšãæ¢ã«ç¥ã£ãŠãããšä»®å®ããŸãã ãŸããWebã¢ããªã±ãŒã·ã§ã³ãã©ã®ããã«æ©èœããããã¢ããªã±ãŒã·ã§ã³ã§ã®ãŠãŒã¶ãŒèªèšŒã®æå³ãããã³ã¯ã©ã€ã¢ã³ã/ãµãŒããŒã¢ãŒããã¯ãã£ãšã¯äœããç¥ãå¿ èŠããããŸãã
æºåã¯ããïŒ è¡ãã
ã»ãã·ã§ã³ããŒã¹ã®èªèšŒ
HTTPãããã³ã«ã¯ç¶æ ãç£èŠãã ããŠãŒã¶ãŒåãšãã¹ã¯ãŒãã§ãŠãŒã¶ãŒãèªèšŒããå Žåãã¢ããªã±ãŒã·ã§ã³ã¯ãããåã®ãªã¯ãšã¹ãã®ããã«æ¬äººãã©ãããç¥ããŸããã å床èªèšŒããå¿ èŠããããŸãã HTTPã¯ãã¹ãŠã®ãªã¯ãšã¹ãã§ã以åã«äœãèµ·ãã£ããã«ã€ããŠäœãç¥ããŸããããªã¯ãšã¹ããéä¿¡ããã ãã§ãã ãããã£ãŠãå人ããŒã¿ãå¿ èŠãªå Žåã¯ãã¢ããªã±ãŒã·ã§ã³ãèªåã§ããããšãèªèã§ããããã«ãå床ãã°ã€ã³ããå¿ èŠããããŸãã éåžžã«è¿·æãããããŸããã
ãã®äžäŸ¿ããåãé€ãããã«ãã¹ããŒããã«ãã©ããã³ã°ãå®è£ ããã»ãã·ã§ã³/ Cookieã«åºã¥ãèªèšŒãèãåºããŸããã ã€ãŸããèªèšŒã¬ã³ãŒããŸãã¯ã»ãã·ã§ã³ã¯ãµãŒããŒãšã¯ã©ã€ã¢ã³ãã®äž¡æ¹ã«ä¿åããå¿ èŠããããŸãã ãµãŒããŒã¯ããŒã¿ããŒã¹ãŸãã¯ã¡ã¢ãªå ã®ã¢ã¯ãã£ããªã»ãã·ã§ã³ã远跡ããå¿ èŠããããã»ãã·ã§ã³IDãä¿åãããŠããããã³ããšã³ãã§CookieãäœæãããŸãã ããã¯CookieããŒã¹ã®èªèšŒã§ãããæãäžè¬çã§åºãç¥ãããŠããæ¹æ³ã§ãé·ãé䜿çšãããŠããŸãã
ã»ãã·ã§ã³ããŒã¹ã®èªèšŒæé ïŒ
- ãŠãŒã¶ãŒããã©ãŠã¶ã«ååãšãã¹ã¯ãŒããå ¥åãããšãã¯ã©ã€ã¢ã³ãã¢ããªã±ãŒã·ã§ã³ããµãŒããŒã«ãªã¯ãšã¹ããéä¿¡ããŸãã
- ãµãŒããŒã¯ãŠãŒã¶ãŒã確èªããèªèšŒããäžæã®ãŠãŒã¶ãŒããŒã¯ã³ãã¢ããªã±ãŒã·ã§ã³ã«éä¿¡ããŸãïŒã¡ã¢ãªãŸãã¯ããŒã¿ããŒã¹ã«ä¿åããŸãïŒã
- ã¯ã©ã€ã¢ã³ãã¢ããªã±ãŒã·ã§ã³ã¯ãããŒã¯ã³ãCookieã«ä¿åãã以éã®åãªã¯ãšã¹ãã§ããŒã¯ã³ãéä¿¡ããŸãã
- ãµãŒããŒã¯ãèªèšŒãå¿ èŠãšããåèŠæ±ãåãåããããŒã¯ã³ã§ãŠãŒã¶ãŒãèªèšŒããèŠæ±ãããããŒã¿ãã¯ã©ã€ã¢ã³ãã¢ããªã±ãŒã·ã§ã³ã«è¿ããŸãã
- ãŠãŒã¶ãŒãçµäºãããšãã¯ã©ã€ã¢ã³ãã¢ããªã±ãŒã·ã§ã³ã¯ããŒã¯ã³ãåé€ããããããã®ã¯ã©ã€ã¢ã³ãããã®ä»¥éã®ãã¹ãŠã®èŠæ±ã¯èªèšŒãããªããªããŸãã
ãã®æ¹æ³ã«ã¯ããã€ãã®æ¬ ç¹ããããŸãã
- ãŠãŒã¶ãŒèªèšŒããšã«ããµãŒããŒã¯èªèº«ã®ã¬ã³ãŒããäœæããå¿ èŠããããŸãã éåžžãããã¯ã¡ã¢ãªã«ä¿åãããå€æ°ã®ãŠãŒã¶ãŒããããšããµãŒããŒã®è² è·ãé«ãããå¯èœæ§ããããŸãã
- ã»ãã·ã§ã³ã¯ã¡ã¢ãªã«ä¿åããããããã¹ã±ãŒãªã³ã°ã¯ããã»ã©ç°¡åã§ã¯ãããŸããã ãµãŒããŒãç¹°ãè¿ãè€è£œããå Žåããã¹ãŠã®ãŠãŒã¶ãŒã»ãã·ã§ã³ããã¹ãŠã®æ°ãããµãŒããŒã«è€è£œããå¿ èŠããããŸãã ããã¯ã¹ã±ãŒãªã³ã°ãè€éã«ããŸãã ïŒã»ãã·ã§ã³ã管çããå°çšãµãŒããŒãããã°ããã¯åé¿ã§ãããšæããŸããããããã¯å®è£ ãé£ãããåžžã«å¯èœã§ãããšã¯éããŸãããïŒ
ããŒã¯ã³ããŒã¹ã®èªèšŒ
ããŒã¯ã³ããŒã¹ã®èªèšŒã¯ãã·ã³ã°ã«ããŒãžã¢ããªã±ãŒã·ã§ã³ãWeb APIãã¢ãã®ã€ã³ã¿ãŒãããã®æ¥å¢ã«ãããè¿å¹Žéåžžã«äººæ°ãé«ãŸã£ãŠããŸãã ã»ãšãã©ã®å Žåã Json Web TokenïŒJWTïŒã¯ããŒã¯ã³ãšããŠäœ¿çšãããŸãã å®è£ ã¯ç°ãªããŸãããJWTããŒã¯ã³ã¯äºå®äžã®æšæºã«ãªããŸããã
ããŒã¯ã³ã«åºã¥ãèªèšŒã®å Žåã ç¶æ ã¯ç£èŠãããŸãã ã ãµãŒããŒãã»ãã·ã§ã³ã«ã¯ãŠãŒã¶ãŒæ å ±ãä¿åããŸããããŸããã¯ã©ã€ã¢ã³ãã«äœ¿çšãããJWTãä¿åããŸããã
ããŒã¯ã³ããŒã¹ã®èªèšŒæé ïŒ
- ãŠãŒã¶ãŒã¯ãŠãŒã¶ãŒåãšãã¹ã¯ãŒããå ¥åããŸãã
- ãµãŒããŒã¯ãããããã§ãã¯ããuser_idãããŒããã·ã§ã³ãªã©ã®ã¡ã¿ããŒã¿ãå«ãå¯èœæ§ã®ããããŒã¯ã³ïŒJWTïŒãè¿ããŸãã
- ããŒã¯ã³ã¯ã¯ã©ã€ã¢ã³ãåŽã«ä¿åãããŸããã»ãšãã©ã®å ŽåãããŒã«ã«ã¹ãã¬ãŒãžã«ä¿åãããŸãããã»ãã·ã§ã³ã¹ãã¬ãŒãžãŸãã¯Cookieã«ä¿åããããšãã§ããŸãã
- éåžžãåŸç¶ã®ãµãŒããŒãªã¯ãšã¹ãã«ã¯ããã®ããŒã¯ã³ãBearer {JWT}ã®åœ¢åŒã§è¿œå ã®èªèšŒããããŒãšããŠå«ãŸããŸãã å¥ã®ããŒã¯ã³ã¯ãPOSTèŠæ±ã®æ¬æã§ãããã«èŠæ±ãã©ã¡ãŒã¿ãŒãšããŠéä¿¡ã§ããŸãã
- ãµãŒããŒã¯JWTã埩å·åããããŒã¯ã³ãæ£ããå ŽåããµãŒããŒã¯èŠæ±ãåŠçããŸãã
- ãŠãŒã¶ãŒããã°ã¢ãŠããããšãã¯ã©ã€ã¢ã³ãåŽã®ããŒã¯ã³ã¯ç Žæ£ããããµãŒããŒãšå¯Ÿè©±ããå¿ èŠã¯ãããŸããã
ãã®æ¹æ³ã«ã¯ããã€ãã®å©ç¹ããããŸãã
- äž»ãªå©ç¹ïŒã¡ãœããã¯ç¶æ ã䜿çšããŠåäœããªãããããµãŒããŒã¯ãŠãŒã¶ãŒããŒã¯ã³ãŸãã¯ã»ãã·ã§ã³ãå«ãã¬ã³ãŒããä¿åããå¿ èŠããããŸããã åããŒã¯ã³ã¯èªå·±å®çµåã§ãããæ€èšŒã«å¿ èŠãªãã¹ãŠã®ããŒã¿ãå«ã¿ãèŠæ±ããããŠãŒã¶ãŒæ å ±ã転éããŸãã ãããã£ãŠãããŒã¯ã³ã«ãã£ãŠã¹ã±ãŒãªã³ã°ãè€éã«ãªãããšã¯ãããŸããã
- Cookieã«ã¯ããŠãŒã¶ãŒã»ãã·ã§ã³IDãä¿åããã ãã§ãJWTã§ã¯ãæå¹ãªJSONã§ããã°ä»»æã®ã¿ã€ãã®ã¡ã¿ããŒã¿ãä¿åã§ããŸãã
- Cookieã䜿çšããå Žåãããã¯ãšã³ãã¯åŸæ¥ã®SQLããŒã¿ããŒã¹ãŸãã¯ä»£æ¿ã®NoSQLã䜿çšããŠæ€çŽ¢ãå®è¡ããå¿
èŠããããããŒã¿äº€æã¯ããããããŒã¯ã³ã®è§£èªãããé·ãç¶ããŸãã ããã«ããŠãŒã¶ãŒæš©éãªã©ã®è¿œå ããŒã¿ãJWTå
ã«ä¿åã§ãããããããŒã¿ãåä¿¡ããã³åŠçããããã®è¿œå ã®åŒã³åºããšæ€çŽ¢ã¯ãšãªãä¿åã§ããŸãã
ã¢ããªã±ãŒã·ã§ã³ã«ãã£ãŠäœæãããæåŸã®æ³šæãè¿ãAPIãªãœãŒã¹/ api /泚æããããããããã衚瀺ã§ããã®ã¯ç®¡çã«ããŽãªã®ãŠãŒã¶ãŒã®ã¿ã ãšããŸãã Cookieã䜿çšããŠãããªã¯ãšã¹ããè¡ãå Žåãã»ãã·ã§ã³ãæ€èšŒããããã®ããŒã¿ããŒã¹ãžã®1åã®åŒã³åºãããŠãŒã¶ãŒããŒã¿ãååŸããŠãŠãŒã¶ãŒã管çè ã®ã¡ã³ããŒã§ãããã©ããã確èªããããã®å¥ã®åŒã³åºããããã³ããŒã¿ãååŸããããã®3åç®ã®åŒã³åºããçæããŸãã
ãŸããJWTã䜿çšããå Žåãã«ã¹ã¿ã ã«ããŽãªãæ¢ã«ããŒã¯ã³ã«ä¿åã§ããŸãã ãµãŒããŒãèŠæ±ããŠåŸ©å·åãããšãããŒã¿ããŒã¹ã1ååŒã³åºããŠå¿ èŠãªæ³šæãååŸã§ããŸãã - ã¢ãã€ã«ãã©ãããã©ãŒã ã§Cookieã䜿çšããã«ã¯ãå€ãã®å¶éãšæ©èœããããŸãã ãŸããããŒã¯ã³ã¯iOSããã³Androidã§ã®å®è£ ãã¯ããã«ç°¡åã§ãã ããã«ãCookieã¯ãCookieã®ã¹ãã¬ãŒãžãæäŸãããŠããªãã¢ãã®ã€ã³ã¿ãŒãããã®ã¢ããªã±ãŒã·ã§ã³ããã³ãµãŒãã¹ã«å®è£ ããã®ãç°¡åã§ãã
ããããã¹ãŠã®ãããã§ãããŒã¯ã³ããŒã¹ã®èªèšŒãä»æ¥äººæ°ãéããŠããŸãã
ãã¹ã¯ãŒãã¬ã¹èªèšŒ
ããã¹ã¯ãŒããªãã®èªèšŒããšããçšèªã«å¯Ÿããæåã®åå¿ã¯ãããã¹ã¯ãŒããªãã§èª°ããèªèšŒããã«ã¯ã©ãããã°ããã§ããïŒã ããã¯å¯èœã§ããïŒã
ãã¹ã¯ãŒãã¯ç§ãã¡ã®ã¢ã«ãŠã³ãã®çµ¶å¯Ÿçãªä¿è·æºã§ãããšãã信念ã¯ãç§ãã¡ã®é ã®äžã«åã蟌ãŸããŠããŸãã ããããåé¡ãããæ·±ãç 究ãããšããã¹ã¯ãŒãã¬ã¹èªèšŒã¯å®å šã§ããã ãã§ãªããååãšãã¹ã¯ãŒãã«ããåŸæ¥ã®ãã°ã€ã³ãããå®å šã§ããããšãããããŸãã ãã¹ã¯ãŒããå€ããªã£ãŠãããšèããããšããããããããŸããã
ãã¹ã¯ãŒãã¬ã¹èªèšŒã¯ããã°ã€ã³æé ãæ§æãããã¹ã¯ãŒããå ¥åããã«ãŠãŒã¶ãŒãèªèšŒããæ¹æ³ã§ãã ã¢ã€ãã¢ã¯ããã§ãïŒ
ã¡ãŒã«/ãŠãŒã¶ãŒåãšãã¹ã¯ãŒããå ¥åãã代ããã«ããŠãŒã¶ãŒã¯èªåã®ã¡ãŒã«ã®ã¿ãå ¥åããŸãã ã¢ããªã±ãŒã·ã§ã³ã¯ãã®ã¢ãã¬ã¹ãžã®ã¯ã³ã¿ã€ã ãªã³ã¯ãéä¿¡ãããŠãŒã¶ãŒã¯ãããã¯ãªãã¯ããŠããµã€ã/ã¢ããªã±ãŒã·ã§ã³ãèªåçã«å ¥åããŸãã ãã¹ã¯ãŒããªãã®èªèšŒã§ã¯ãã¢ããªã±ãŒã·ã§ã³ã¯ãä»äººã®ã¢ãã¬ã¹ã§ã¯ãªãèªåã§æžããå Žåããªã³ã¯ä»ãã®æçŽãã¡ãŒã«ããã¯ã¹ã«å±ãããšèŠãªããŸãã
SMSã«ãã1åéãã®ãªã³ã¯ã®ä»£ããã«ãã³ãŒããŸãã¯1åéãã®ãã¹ã¯ãŒããéä¿¡ãããåæ§ã®æ¹æ³ããããŸãã ãã ããã¢ããªã±ãŒã·ã§ã³ãtwilioãªã©ã®SMSãµãŒãã¹ãšçµã¿åãããå¿ èŠããããŸãïŒãã®ãµãŒãã¹ã¯ç¡æã§ã¯ãããŸããïŒã ã³ãŒããŸãã¯ã¯ã³ã¿ã€ã ãã¹ã¯ãŒããã¡ãŒã«ã§éä¿¡ã§ããŸãã
ãããŠãããå°ãïŒãããŸã§ã®ãšããïŒäººæ°ã®ãªãïŒãããŠAppleããã€ã¹ã§ã®ã¿å©çšå¯èœãªïŒãã¹ã¯ãŒãã¬ã¹èªèšŒæ¹æ³ïŒæçŽèªèšŒã«Touch IDã䜿çšããŸãã ãã¯ãããžãŒã®è©³çŽ° ã
Slackã䜿çšããå Žåã¯ããã¹ã¯ãŒããªãã®èªèšŒããã§ã«çºçããŠããå¯èœæ§ããããŸãã
Mediumã¯ãã¡ãŒã«ã§ã®ã¿ãµã€ããžã®ã¢ã¯ã»ã¹ãæäŸããŸã ã æè¿ã Auth0ãŸãã¯Facebook AccountKitã ãã¢ããªã±ãŒã·ã§ã³ã«ãã¹ã¯ãŒãã¬ã¹ã·ã¹ãã ãå®è£ ããããã®åªãããªãã·ã§ã³ã§ããããšãçºèŠããŸãã ã
äœãããããã®ã§ããããïŒ
誰ãããŠãŒã¶ãŒã®ã¡ãŒã«ã«ã¢ã¯ã»ã¹ã§ããã°ãã¢ããªã±ãŒã·ã§ã³ããµã€ãã«ã¢ã¯ã»ã¹ã§ããŸãã ãã ãããŠãŒã¶ãŒã®ã¡ãŒã«ã¢ã«ãŠã³ãã®ã»ãã¥ãªãã£ã«ã€ããŠå¿é ããã®ã¯é çã§ã¯ãããŸããã ããã«ã誰ããä»ã®èª°ãã®ã¡ãŒã«ã«ã¢ã¯ã»ã¹ãããšããã¹ã¯ãŒãå埩æ©èœã䜿çšããŠããã¹ã¯ãŒãã¬ã¹èªèšŒã§ã¢ããªã±ãŒã·ã§ã³ã®ã¢ã«ãŠã³ããååããããšãã§ããŸãã ãããããŠãŒã¶ãŒã®ã¡ãŒã«ã«å¯ŸããŠã¯äœãã§ããŸããã ç¶ããŸãããã
å©ç¹ã¯äœã§ããïŒ
ããã¹ã¯ãŒããå¿ããããªã³ã¯ã䜿çšããŠããµã€ã/ã¢ããªã±ãŒã·ã§ã³ãžã®å ¥åã«äœåºŠã倱æããåŸã«æãåºããªãããŸããŸãããã¹ã¯ãŒãããªã»ããããé »åºŠã¯ã©ããããã§ããïŒ ç§ãã¡ã¯çãã®ç¶æ³ã«ããŸãã ç¹ã«ã»ãã¥ãªãã£ãæ°ã«ããŠåãµã€ãã«åå¥ã®ãã¹ã¯ãŒããäœæããå Žåã¯ããã¹ãŠã®ãã¹ã¯ãŒããèŠããŠããŸããïŒããããã¹ãŠããå°ãªããšã8æåã§æ§æããå°ãªããšã1ã€ã®æ°åãå°æåãç¹æ®æåãå«ããå¿ èŠããããŸãïŒã ãã¹ã¯ãŒãã¬ã¹èªèšŒã¯ãããããã¹ãŠããããªããæããŸãã ããªãã¯ä»ããç§ã¯ãã¹ã¯ãŒããããŒãžã£ãŒã䜿ã£ãŠããŸããã°ãããšèããŠããŸãã å°æ¬ãã ãããã倧å€æ°ã®ãŠãŒã¶ãŒã¯ããªãã®ãããªæè¡è ã§ã¯ãªãããšãå¿ããªãã§ãã ããã ãããèæ ®ããå¿ èŠããããŸãã
ãã¹ã¯ãŒãã¬ã¹èªèšŒã¯ããŠãŒã¶ãŒã ãã§ãªããéçºè ãšããŠã®ããªãã«ãé©ããŠããŸãã ãã¹ã¯ãŒãå埩ã¡ã«ããºã ãå®è£ ããå¿ èŠã¯ãããŸããã ã¿ããªãåã¡ãŸãã
äžéšã®ãŠãŒã¶ãŒãæãªããã®ãŠãŒã¶ãŒå/ãã¹ã¯ãŒãã奜ããšæãããå Žåã¯ãäž¡æ¹ã®ãªãã·ã§ã³ãæå®ããŠéžæã§ããããã«ããŸãã
ãã¹ã¯ãŒãã¬ã¹èªèšŒã¯ãä»æ¥æ¥éã«äººæ°ãéããŠããŸãã
ã·ã³ã°ã«ãµã€ã³ãªã³ïŒSSOïŒ
Gmailãªã©ã®äžéšã®GoogleãµãŒãã¹ã§ãã©ãŠã¶ã«ãã°ã€ã³ããYoutubeãå¥ã®GoogleãµãŒãã¹ã«ã¢ã¯ã»ã¹ãããšãã«ãããã«ãã°ã€ã³ããå¿ èŠãããããšã«æ°ã¥ããŸãããïŒ äŒç€Ÿã®ãã¹ãŠã®ãµãŒãã¹ã«èªåçã«ã¢ã¯ã»ã¹ã§ããŸãã å°è±¡çã§ããïŒ çµå±ã®ãšãããGmailãšYoutubeã¯Googleã®ãµãŒãã¹ã§ããããŸã å¥ã ã®è£œåã§ãã 1åã®ãã°ã€ã³åŸããã¹ãŠã®è£œåã§ãŠãŒã¶ãŒãã©ã®ããã«èªèšŒããŸããïŒ
ãã®æ¹æ³ã¯ãã·ã³ã°ã«ãµã€ã³ãªã³ïŒSSOïŒãšåŒã°ããŸãã
ããŸããŸãªæ¹æ³ã§å®è£ ã§ããŸãã ããšãã°ãäžå€®ãµãŒãã¹ã䜿çšããŠãè€æ°ã®ã¯ã©ã€ã¢ã³ãéã§ã·ã³ã°ã«ãµã€ã³ãªã³ã調æŽããŸãã Googleã®å Žåããã®ãµãŒãã¹ã¯Googleã¢ã«ãŠã³ããšåŒã°ããŸã ã ãŠãŒã¶ãŒããã°ã€ã³ãããšãGoogleã¢ã«ãŠã³ãã¯CookieãäœæããŸããCookieã¯ããŠãŒã¶ãŒãäŒç€ŸãææãããµãŒãã¹ã«ã¢ã¯ã»ã¹ãããšãã«ä¿åãããŸãã ä»çµã¿ïŒ
- ãŠãŒã¶ãŒã¯ãGoogleãµãŒãã¹ã®ããããã®ã¡ã³ããŒã§ãã
- ãŠãŒã¶ãŒã¯ãGoogleã¢ã«ãŠã³ãã§çæãããCookieãåãåããŸãã
- ãŠãŒã¶ãŒã¯å¥ã®GoogleãµãŒãã¹ã«ã¢ã¯ã»ã¹ããŸãã
- ãŠãŒã¶ãŒã¯åã³Googleã¢ã«ãŠã³ãã«ãªãã€ã¬ã¯ããããŸãã
- Googleã¢ã«ãŠã³ãã¯ããŠãŒã¶ãŒã«æ¢ã«Cookieãå²ãåœãŠãããŠããããšã確èªãããŠãŒã¶ãŒãèŠæ±ããã補åã«ãªãã€ã¬ã¯ãããŸãã
åäžã®ãšã³ããªãã€ã³ãã®éåžžã«ç°¡åãªèª¬æïŒãŠãŒã¶ãŒã¯1åãã°ã€ã³ãããšãåã·ã¹ãã ã«ãã°ã€ã³ããããšãªããã¹ãŠã®ã·ã¹ãã ã«ã¢ã¯ã»ã¹ã§ããŸãã ãã®æé ã§ã¯ãå人ãçŽæ¥çããã³éæ¥çã«ä¿¡é Œãã3ã€ã®ãšã³ãã£ãã£ã䜿çšããŸãã ãŠãŒã¶ãŒã¯ãIDãããã€ããŒïŒIDPïŒãããã¹ã¯ãŒããå ¥åïŒãŸãã¯å¥ã®æ¹æ³ã§èªèšŒïŒããŠããµãŒãã¹ãããã€ããŒïŒSPïŒã«ã¢ã¯ã»ã¹ããŸãããŠãŒã¶ãŒã¯IDPãä¿¡é ŒããSPã¯IDPãä¿¡é ŒããŸãã
éåžžã«åçŽã«èŠããŸãããç¹å®ã®å®è£ ã¯éåžžã«è€éã«ãªãå¯èœæ§ããããŸãã ãã®èªèšŒæ¹æ³ã®è©³çŽ°ãã芧ãã ããã
ãœãŒã·ã£ã«èªèšŒ
ãã®åçã¯èª°ããç¥ã£ãŠãããšç¢ºä¿¡ããŠããŸãã
ããã¯ããã°ãã°ãœãŒã·ã£ã«ãµã€ã³ã€ã³ãŸãã¯ãœãŒã·ã£ã«ãã°ã€ã³ãšåŒã°ããŸãã ãœãŒã·ã£ã«ãããã¯ãŒã¯äžã®ã¢ã«ãŠã³ãã§ãŠãŒã¶ãŒãèªèšŒã§ããŸãã ããããã°ããŠãŒã¶ãŒã¯ã¢ããªã±ãŒã·ã§ã³ã«åå¥ã«ç»é²ããå¿ èŠã¯ãããŸããã
æ£åŒã«ã¯ããœãŒã·ã£ã«ãã°ã€ã³ã¯åå¥ã®èªèšŒæ¹æ³ã§ã¯ãããŸããã ããã¯ãã¢ããªã±ãŒã·ã§ã³ãžã®ãŠãŒã¶ãŒã®ç»é²/å ¥åããã»ã¹ãç°¡çŽ åããåäžã®ãšã³ããªãã€ã³ãã®ããªãšãŒã·ã§ã³ã§ãã
2ã€ã®äžçã®ãã¹ã
ãŠãŒã¶ãŒã¯ããœãŒã·ã£ã«ãããã¯ãŒã¯ã®ããããã«ã¢ã«ãŠã³ããæã£ãŠããå Žåãã¯ã³ã¯ãªãã¯ã§ã¢ããªã±ãŒã·ã§ã³ãå ¥åã§ããŸãã ãŠãŒã¶ãŒåãšãã¹ã¯ãŒããèŠããå¿ èŠã¯ãããŸããã ããã«ãããã¢ããªã±ãŒã·ã§ã³ã®äœ¿çšäœéšãå€§å¹ ã«åäžããŸãã éçºè ãšããŠã®ããªãã¯ããŠãŒã¶ãŒããŒã¿ã®ã»ãã¥ãªãã£ã«ã€ããŠå¿é ããå¿ èŠã¯ãªããã¡ãŒã«ã¢ãã¬ã¹ã®ãã§ãã¯ã«ã€ããŠèããå¿ èŠããããŸãã-ãããã¯ãã§ã«ãœãŒã·ã£ã«ãããã¯ãŒã¯ã«ãã£ãŠãã§ãã¯ãããŠããŸãã ããã«ããœãŒã·ã£ã«ãããã¯ãŒã¯ã«ã¯æ¢ã«ãã¹ã¯ãŒãå埩ã¡ã«ããºã ããããŸãã
䜿ãæ¹
éçºè ã¯ããã®èªèšŒæ¹æ³ã®ä»çµã¿ãç解ããå¿ èŠããããŸãã ã»ãšãã©ã®ãœãŒã·ã£ã«ãããã¯ãŒã¯ã¯ãèªèšŒã¡ã«ããºã ãšããŠOAuth2ãä»ããèªèšŒã䜿çšããŸãïŒTwitterãªã©ã®OAuth1ã䜿çšãããã®ããããŸãïŒã OAuthãšã¯äœããèŠãŠã¿ãŸãããã ãœãŒã·ã£ã«ãããã¯ãŒã¯ã¯ãªãœãŒã¹ãµãŒããŒã§ãããã¢ããªã±ãŒã·ã§ã³ã¯ã¯ã©ã€ã¢ã³ãã§ãããã¢ããªã±ãŒã·ã§ã³ãå ¥åããããšãããŠãŒã¶ãŒã¯ãªãœãŒã¹ã®ææè ã§ã ã ãªãœãŒã¹ã¯ããŠãŒã¶ãŒãããã¡ã€ã«/èªèšŒæ å ±ã§ãã ãŠãŒã¶ãŒãã¢ããªã±ãŒã·ã§ã³ã«ãã°ã€ã³ãããå ŽåããŠãŒã¶ãŒãèªèšŒã®ããã«ãœãŒã·ã£ã«ãããã¯ãŒã¯ã«ãªãã€ã¬ã¯ãããŸãïŒéåžžãããã¯ãœãŒã·ã£ã«ãããã¯ãŒã¯URLãå«ããããã¢ãããŠã£ã³ããŠã§ãïŒã èªèšŒã«æåãããããŠãŒã¶ãŒã¯ãœãŒã·ã£ã«ãããã¯ãŒã¯ããèªåã®ãããã¡ã€ã«ã«ã¢ã¯ã»ã¹ããããã®èš±å¯ãã¢ããªã±ãŒã·ã§ã³ã«äžããå¿ èŠããããŸãã ãã®åŸããœãŒã·ã£ã«ãããã¯ãŒã¯ã¯ãŠãŒã¶ãŒãã¢ããªã±ãŒã·ã§ã³ã«æ»ããŸãããã¢ã¯ã»ã¹ããŒã¯ã³ã䜿çšããŸãã 次åãã¢ããªã±ãŒã·ã§ã³ã¯ãã®ããŒã¯ã³ãååŸãããœãŒã·ã£ã«ãããã¯ãŒã¯ã®ãŠãŒã¶ãŒãããã¡ã€ã«ããæ å ±ãèŠæ±ããŸãã ãããOAuthã®ä»çµã¿ã§ãïŒç°¡åã«ãããããæè¡çãªè©³çŽ°ã¯çç¥ããŸããïŒã
ãã®ãããªã¡ã«ããºã ãå®è£ ããã«ã¯ãã¢ããªã±ãŒã·ã§ã³ãããŸããŸãªãœãŒã·ã£ã«ãããã¯ãŒã¯ã«ç»é²ããå¿ èŠããããŸãã ãœãŒã·ã£ã«ãããã¯ãŒã¯ãžã®æ¥ç¶ãæ§æããããã®app_idããã³ãã®ä»ã®ããŒãæäŸãããŸãã ãŸããæé ãç°¡çŽ åããäžå¿ èŠãªæéãçãã®ã«åœ¹ç«ã€ããã€ãã®äžè¬çãªã©ã€ãã©ãª/ããã±ãŒãžïŒ Passport ã Laravel Socialiteãªã©ïŒããããŸãã
äºèŠçŽ èªèšŒïŒ2FAïŒ
2èŠçŽ èªèšŒïŒ2FAïŒã¯ããŠãŒã¶ãŒã®IDãæ€èšŒããããã«2ã€ã®æ¹æ³ïŒèŠçŽ ãšãåŒã°ããŸãïŒã䜿çšããããšã«ãããã¢ã¯ã»ã¹ã®ã»ãã¥ãªãã£ãåäžãããŸãã ããã¯ã å€èŠçŽ èªèšŒã®åœ¢åŒã§ãã ããããçºçããªãã£ããããããŸããããATMã§ã¯2èŠçŽ èªèšŒãè¡ãããŸããæ£ããæ å ±ãéè¡ã«ãŒãã«èšå ¥ããããã«PINãå ¥åããå¿ èŠããããŸãã 誰ããããªãã®ã«ãŒããçãã å Žåãã³ãŒãããªããã°åœŒã¯ããã䜿çšã§ããŸããã ïŒäºå®ã§ã¯ãããŸããïŒ-泚ãPerãïŒã€ãŸãã2èŠçŽ èªèšŒã·ã¹ãã ã§ã¯ããŠãŒã¶ãŒã¯ããã€ãã®åå¥ã®æ å ±ãæäŸããåŸã«ã®ã¿ã¢ã¯ã»ã¹ãååŸããŸãã
ãã1ã€ã®ããç¥ãããäŸã¯ãMail.RuãGoogleãFacebookãªã©ã®2èŠçŽ èªèšŒã§ãããã®ãã°ã€ã³æ¹æ³ãæå¹ã«ãªã£ãŠããå Žåãæåã«ãŠãŒã¶ãŒåãšãã¹ã¯ãŒããå ¥åãã次ã«SMSçµç±ã§éä¿¡ãããã¯ã³ã¿ã€ã ãã¹ã¯ãŒãïŒæ€èšŒã³ãŒãïŒãå ¥åããå¿ èŠããããŸãã éåžžã®ãã¹ã¯ãŒãã䟵害ãããå Žåãã¢ã«ãŠã³ãã¯ä¿è·ããããŸãŸã«ãªããŸããããã¯ããã°ã€ã³ã®2çªç®ã®ã¹ãããã§ãæ»æè ãå¿ èŠãªç¢ºèªã³ãŒããå ¥åã§ããªãããã§ãã
ã¯ã³ã¿ã€ã ãã¹ã¯ãŒãã®ä»£ããã«ãæçŽãŸãã¯ç¶²èç»åã2çªç®ã®èŠçŽ ãšããŠäœ¿çšã§ããŸãã
2èŠçŽ èªèšŒã§ã¯ããŠãŒã¶ãŒã¯3ã€ã®ãã¡2ã€ãæäŸããå¿ èŠããããŸãã
- ç¥ã£ãŠããããšïŒãã¹ã¯ãŒããŸãã¯PINã
- æã£ãŠãããã®ïŒç©çããã€ã¹ïŒã¹ããŒããã©ã³ïŒãŸãã¯ã¯ã³ã¿ã€ã ãã¹ã¯ãŒããçæããã¢ããªã±ãŒã·ã§ã³ã
- ããªãã®äžéšïŒæçŽã声ã網èç»åãªã©ã®çç©åŠçã«ãŠããŒã¯ãªç¹æ§ã
ã»ãšãã©ã®ããã«ãŒã¯ããã¹ã¯ãŒããšPINã³ãŒããæ¢ããŸãã ããŒã¯ã³ãžã§ãã¬ãŒã¿ãŒãŸãã¯çç©åŠçç¹æ§ã«ã¢ã¯ã»ã¹ããã®ã¯ã¯ããã«é£ãããããä»æ¥ã§ã¯2èŠçŽ ãé«ãã»ãã¥ãªãã£ã¢ã«ãŠã³ããä¿èšŒããŸãã
ã€ãŸããããã¯æ®éçãªè§£æ±ºçã§ããïŒ ãããã ãªã ã
ããã§ãã2èŠçŽ ã¯ã¢ããªã±ãŒã·ã§ã³ã®èªèšŒã»ãã¥ãªãã£ã匷åããã®ã«åœ¹ç«ã¡ãŸãã å®è£ æ¹æ³ ãã¶ãããªãã¯èªè»¢è»ã«ä¹ãã¹ãã§ã¯ãããŸãããã Auth0ãDuoãªã©ã®æ¢åã®ãœãªã¥ãŒã·ã§ã³ã䜿çšããŠãã ããã
èªèšŒãŸãã¯æ¿èªïŒ
äžéšã®äººã ã¯ãèªèšŒãšæ¿èªãšããçšèªãæ··åããŠããŸãã ãããã¯ç°ãªããã®ã§ãã
- èªèšŒã¯ã身å ã®ç¢ºèªã§ãã ååãšãã¹ã¯ãŒãã䜿çšããŠã¢ããªã±ãŒã·ã§ã³ãå ¥åãããšãèªèšŒãããŸãã
- æ¿èªã¯ãäœãã«ã¢ã¯ã»ã¹ã§ãããã©ããã®ãã§ãã¯ã§ãã ããã¯ãäžéšã®ã¢ã¯ã·ã§ã³ã«å¯Ÿããäžé£ã®æš©éã§ããå ŽåããããŸãã ããšãã°ãã¢ããªã±ãŒã·ã§ã³ã§ãªãœãŒã¹ãäœæããå Žåããã®ãªãœãŒã¹ãåé€ã§ããã®ã¯ããªãã ãã§ããïŒææè ã§ããããïŒãä»ã®ãŠãŒã¶ãŒã¯ãã®ããã«ãèš±å¯ããããŸããã
ãã£ãšããã«ïŒ
ããã§ãšãããããŸããããªãã¯é·ãéå±ã§éå±ãªèšäºãéŠå°Ÿããèªã¿ãŸããã