ð Base64URL ãšã³ã³ãŒã/ãã³ãŒã
JWTã®ããããŒéšåãªã©ã¯ãã®åœ¢åŒã§ãšã³ã³ãŒããããŠããŸãã
JWTãURLãã©ã¡ãŒã¿ãªã©ã§äœ¿ãããBase64URL(RFC 4648 Section 5æºæ )圢åŒãžã®å€æããŒã«ã§ããéåžžã®Base64ãšç°ãªãã+ãã/ãã®ä»£ããã«ã-ãã_ãã䜿ããããã£ã³ã°ã®ã=ããçç¥ãããããURLããã¡ã€ã«åã«ãã®ãŸãŸäœ¿çšã§ããŸãã
äœ¿ãæ¹
- ãšã³ã³ãŒã/ãã³ãŒãã®ã¢ãŒããéžæããŸãã
- 倿ãããããã¹ããå ¥åããŸãã
- å€æçµæãèªåçã«è¡šç€ºãããŸãã
èšç®ã®ä»çµã¿
Base64URLã¯ãRFC 4648ã®ç¬¬5ç¯ã§å®ãããããURLããã¡ã€ã«åã«å®å šã«å ¥ããããBase64ã®å€çš®ã§ããJWTïŒJSON Web TokenïŒãOAuthã®PKCEãWebAuthnãªã©ã§äœ¿ãããŠããŸãã éåžžã®Base64ãšã®éãã¯æ¬¡ã®3ç¹ã§ãã ã»ã+ããã-ãïŒãã€ãã³ïŒã«çœ®ãæãã ã»ã/ããã_ãïŒã¢ã³ããŒã¹ã³ã¢ïŒã«çœ®ãæãã ã»æ«å°Ÿã®ã=ãïŒããã£ã³ã°ïŒãä»ããªã ã+ãã/ãã=ãã¯URLã®äžã§ç¹å¥ãªæå³ãæã€ããããã®ãŸãŸã§ã¯ãšã³ã³ãŒããçŽãå¿ èŠããããŸãããBase64URLãªããã®å¿ èŠããããŸããããã®ããŒã«ã¯ãããã¹ããUTF-8ã®ãã€ãåã«ããŠãããšã³ã³ãŒããããã³ãŒãã§ã¯è¶³ããªãããã£ã³ã°ãè£ã£ãŠããå ã«æ»ããŸãã
èšç®äŸ
ãšã³ã³ãŒã å ¥å: Hello, World? éåžžã®Base64: SGVsbG8sIFdvcmxkPw== Base64URL: SGVsbG8sIFdvcmxkPwïŒããã£ã³ã°ãªãïŒ éåžžã®Base64ã§ã/ãã+ããå«ãäŸ ãã€ãå C3 BF C3 BE 3E 3F â w7/Dvj4/ â Base64URL: w7_Dvj4_ ãã³ãŒã å ¥å: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 åºå: {"alg":"HS256","typ":"JWT"}ïŒJWTã®ããããŒéšåïŒ
䜿çšäžã®æ³šæ
- JWTã¯ãããããŒ.ãã€ããŒã.眲åãã®3ã€ã®éšåãããããBase64URLã«ãªã£ãŠããŸããäžèº«ãèŠãã«ã¯ããããã§åºåã£ãåéšåãåå¥ã«ãã³ãŒãããŠãã ããã
- Base64URLã¯æå·åã§ã¯ãããŸãããJWTã®ãã€ããŒãã¯èª°ã§ãèªãããããç§å¯ã®æ å ±ãå ¥ããŠã¯ãããŸããã
- ãã³ãŒãçµæãUTF-8ãšããŠæ£ãããªãå ŽåïŒç»åãªã©ã®ãã€ããªããŒã¿ïŒã¯ãããã¹ããšããŠè¡šç€ºã§ããŸããã
ãããã質å
Base64URLãšéåžžã®Base64ã®éãã¯äœã§ãã?
éåžžã®Base64ã§äœ¿ãããã+ãã/ããããããã-ãã_ãã«çœ®ãæããæ«å°Ÿã®ããã£ã³ã°æåã=ããçç¥ããŸããããã«ããURLããã¡ã€ã«åã§ãšã¹ã±ãŒãåŠçãªãã«äœ¿ããŸãã
JWTã§ã¯ã©ãã§äœ¿ãããŠããŸãã?
JWT(JSON Web Token)ã®ããããŒã»ãã€ããŒãã»çœ²åã®åéšåã¯ãããããBase64URLã§ãšã³ã³ãŒããããããŒã¿ã§ãã
æ¥æ¬èªãªã©ãã«ããã€ãæåã倿ã§ããŸãã?
ã¯ããå ¥åã¯UTF-8ãšããŠãã€ãåã«å€æããŠããBase64URLãšã³ã³ãŒããããããæ¥æ¬èªãå«ãä»»æã®ããã¹ããæ±ããŸãã