JWT ãã³ãŒã㌠â JSON Web ããŒã¯ã³ããªã³ã©ã€ã³ã§ãã³ãŒããã
JWT ããããŒãšãã€ããŒãããã³ãŒããããã®æå¹æéãæ€æ»ããŠããã³ãŒããããããŒã¿ãããŒã«ã«ã«ã³ããŒããŸããã¢ã«ãŠã³ãã¯å¿ èŠãããŸããã
JWTãã³ãŒã㌠ã§ã§ããããš
å§ããåã«ãäž»ãªæ©èœã確èªããŠãã ããã
- JWTããããŒãšãã€ããŒããå³åº§ã«ãã³ãŒãããŸã
- èªã¿åãå¯èœãª JSON ã§ããŒã¯ã³ ã¯ã¬ãŒã ãæ€æ»ãã
- ããŒã¯ã³ã®æå¹æéãåããŠãããã©ããã確èªãã
- ã·ãŒã¯ã¬ãããŸãã¯ããŒã䜿çšããŠçœ²åãæ€èšŒããŸã
- éçºäžã«èªèšŒã®åé¡ããããã°ãã
- ãµã³ãã« ããŒã¯ã³ã詊ããŠåœ¢åŒã確èªããŠãã ãã
èšå®ãªãã¡ã¬ã³ã¹
3 èšå®
JWTãã³ãŒã㌠ã§äœ¿çšå¯èœãªã³ã³ãããŒã«ã
èšå®
- ãµã³ãã«ã®JWTã詊ãã¯ã³ã¯ãªãã¯
- subãiatãexpãšãã£ãæšæºã¯ã¬ãŒã ãå«ããã¢ããŒã¯ã³ãèªã¿èŸŒã¿ãŸããèªåã®JWTã貌ãä»ããåã«ããã³ãŒããšæå¹æéãã§ãã¯ã®åãã確èªã§ããŸãã
眲åãæ€èšŒãã
- 眲åãæ€èšŒããããã¹ãå ¥å
- ããŒã¯ã³ã®çœ²åãæ€èšŒããããã®ãHMACå ±æã·ãŒã¯ã¬ããïŒHS256ïŒãŸãã¯çºè¡è ã®RSA/ECå ¬ééµããPEMãŸãã¯JWK圢åŒã§è²Œãä»ããŠãã ããã
- æ€èšŒããã¯ã³ã¯ãªãã¯
- å ¥åããç§å¯éµãŸãã¯å ¬ééµã§çœ²åãæ€èšŒãã眲åãæå¹ã»ç¡å¹ã»é察å¿ã®ã¢ã«ãŽãªãºã ã®ããããããããžã§è¡šç€ºããŸãã
JWTãã³ãŒã㌠ã®é¢é£ããŒã«
JWTãã³ãŒã㌠ã®åŸã®äžè¬çãªæ¬¡ã®ã¹ãããã®ããã®ããŒã«ã
éçºè ããŒã«
Base64 ãšã³ã³ãŒã㌠/ ãã³ãŒããŒ
ãã©ãŠã¶ã® URL ã»ãŒãããã³ UTF-8 ãªãã·ã§ã³ã䜿çšããŠãããã¹ããŸãã¯ãã¡ã€ã«ã Base64 ãšããŠãšã³ã³ãŒãããããBase64 ããµããŒããããŠããããã¹ãã«ãã³ãŒãããŸãã
ä»ãã詊ãéçºè ããŒã«
ããã·ã¥ãžã§ãã¬ãŒã¿ãŒ
Generate MD5, SHA-1, SHA-256, SHA-384 and SHA-512 digests from text or a file in your browser; no account is required.
ä»ãã詊ãéçºè ããŒã«
JSONæŽåœ¢
JSON ãæ€èšŒãã2ã4ããŸã㯠8 åã®ã¹ããŒã¹ã§ãã©ãŒããããããããã©ãŠã¶ã§çž®å°ããŸãã
ä»ãã詊ããããã質å
JWTãã³ãŒããŒã§ã§ããããš
ããžãã¹ãã¯ãªãšã€ã¿ãŒãæ¥åžžæ¥åãªã©ãå®éã®åé¡ãæ¯æ¥è§£æ±ºããŸããèªåã«åã£ããŠãŒã¹ã±ãŒã¹ãèŠã€ããŠå§ããŸãããã
OAuthã»OpenID ConnectãããŒã®ãããã°
Auth0ãOktaãCognitoãAzure ADãè¿ãã¢ã¯ã»ã¹ããŒã¯ã³ãIDããŒã¯ã³ããã³ãŒãããããŒã«ã«ã§ã®OAuth飿ºäœæ¥äžã«ã¹ã³ãŒãããªãŒãã£ãšã³ã¹ãçºè¡è ãæ€èšŒã§ããŸã
APIåŒã³åºãã®èªèšŒããããŒãæ€æ»
倱æããŠãã API ãªã¯ãšã¹ãã®ãã¢ã©ãŒããŒã¯ã³ã貌ãä»ããŠãããã¯ãšã³ãããŒã ã«ãã±ããã起祚ããåã«ãåå ã誀ã£ãããã³ããããŒã«ãæå¹æéã®ãããã«ããã®ãã確èªã§ããŸã
éçºäžã«ããŒã¯ã³ã®æå¹æéã確èª
exp ã¯ã¬ãŒã ãèªãã ãã§ãã¹ããŒãžã³ã°ç°å¢ãå¯ãã«å£ããŠããæéåãã®ããŒã¯ã³ãçºèŠã§ããŸããããŒã¯ã³ãã¿ãŒããã«ã«ã³ããŒããããç°¡åãªã¹ã¯ãªãããæžãããããå¿ èŠã¯ãããŸãã
ããŒã¯ã³ã®ã¯ã¬ãŒã ã«ãšã³ã³ãŒããããæš©éãç£æ»
ããŒã«ãããã³ããæ©èœãã©ã°ãªã©ã®ã«ã¹ã¿ã ã¯ã¬ãŒã ãæ€èšŒã§ããããã管çè ã¯é¡§å®¢ã®ããŒã¯ã³ãã©ã€ã»ã³ã¹ããŒã ã®æå³ãããšããã®ã¢ã¯ã»ã¹æš©ãä»äžããŠãããã確èªã§ããŸã
ã·ã³ã°ã«ãµã€ã³ãªã³é£æºãæ€èšŒ
äŒæ¥ã®SSO飿ºãçæããSAMLãOIDCããŒã¯ã³ãæ€æ»ããå šåŸæ¥å¡ãžã®å±éåã«ã°ã«ãŒãã®æå±ã屿§ã®ãããã³ã°ã確èªã§ããŸã
ããŒã¯ã³ããŒã¹èªèšŒãæãã
ãã³ãŒããããããããŒããã€ããŒãã眲åã®ããã«ã䜿ã£ãŠãJWTãã©ã®ããã«æ§æãããŠãããããããŒããã£ã³ãã®åè¬çããžã¥ãã¢ãšã³ãžãã¢ãã»ãã¥ãªãã£ã¯ãŒã¯ã·ã§ããã®åå è ã«èª¬æãã
ããŒãããŒã® Webhook 眲åèšå®ã確èª
ããŒãããŒã®RS256ãŸãã¯ES256å ¬ééµãã眲åãæ€èšŒãã«è²Œãä»ããã°ã飿ºãæ¬çªã«åãæ¿ããåã«ããã®webhookãã€ããŒããå®éã«æ£ãã眲åãããŠããã確èªã§ããŸãã
æŒæŽ©ããããŸãã¯çãããããŒã¯ã³ã調æ»
ãã°ããã°ã¬ããŒãã§èŠã€ããããŒã¯ã³ããã³ãŒããã眲åéµãªãã§audienceãã¹ã³ãŒããæå¹æéã確èªã§ããŸããã€ã³ã·ãã³ãçºçæã«åœ±é¿ç¯å²ãçŽ æ©ãè©äŸ¡ã§ããŸãã
ã¢ãã€ã«ã¢ããªã®ãµã€ã³ã€ã³å€±æããããã°
ãã°ã€ã³åŸã«ã¢ãã€ã«ã¢ããªãåãåãã¢ã¯ã»ã¹ããŒã¯ã³ã貌ãä»ããã°ãWebã§ã¯ãµã€ã³ã€ã³ã§ããã®ã«iOSãAndroidã§å€±æããå Žåã«ãæå¹æéã»çºè¡è ã»ã«ã¹ã¿ã ã¯ã¬ãŒã ãããã¯ãšã³ãã®æ³å®ãšäžèŽããŠããã確èªã§ããŸãã
FirebaseãSupabaseãClerk ã®ããŒã¯ã³ãæ€èšŒ
FirebaseãSupabaseãClerkãªã©ææ°ã®èªèšŒãããã€ããŒãçºè¡ããããŒã¯ã³ããã³ãŒãããŠæ€æ»ããèªå¯ããžãã¯ãçµãåã«ã¢ããªãèªã¿åãã¯ã¬ãŒã ïŒuidãroleãtenantïŒãå®éã«å«ãŸããŠããã確èªã§ããŸãã
å€æçµæãäžã€ãã€ç¢ºèª
ãã¹ãŠã®åçã¯ã¹ã©ãã·ã¥ããã®ãŸãŸééããå察åŽã宿ããŠåºãŠããŸãã


























