Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
JWTとは
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Yuki Shibata
September 15, 2021
Programming
26
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
JWTとは
社内勉強会資料
Yuki Shibata
September 15, 2021
More Decks by Yuki Shibata
See All by Yuki Shibata
Don't be afraid to $git rebase
yukiyohure
0
42
Pronunciation exercise
yukiyohure
0
19
開発に関する英単語
yukiyohure
0
41
Other Decks in Programming
See All in Programming
AWS CDKのカスタムリソースでContinuum(旧Security Agent)を実装した話 | Implementing Continuum (formerly Security Agent) via AWS CDK Custom Resource
akihisaikeda
2
150
sbt 2.0: takeoff
eed3si9n
0
160
Rでドレミ/Do-Re-Mi_with_R
florets1
0
130
Long Living Tokens, Die, Die, Die! (or: The One Ring is Banned in Modern)
sylph01
0
300
R8 の設定見直しでアプリサイズ削減
andpad
0
220
残高管理から台帳サービスへの進化
artoy
1
200
FactoryBotをやめればRSpecは速くなるのか?
yuta_onishi_97
0
290
AI時代のコードレビューは人に向けるな、仕組みに向けろ
texmeijin
5
3.7k
re:Inventに行く前に知っておきたい現地参加のノウハウ
nokomoro3
0
430
Starting & Sustaining Code-Based E2E Testing for Non-Coding QA Teams( #jasstniigata )
teyamagu
PRO
1
1k
AIに “答え“を書かせるのを やめてみた
___akari11
0
120
Findy - エンジニア向け会社紹介/Findy Company Deck
findyinc
6
400k
Featured
See All Featured
How to build a perfect <img>
jonoalderson
1
6.1k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
630
Discover your Explorer Soul
emna__ayadi
2
1.3k
Everyday Curiosity
cassininazir
0
350
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
730
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
Mind Mapping
helmedeiros
1
400
Art, The Web, and Tiny UX
lynnandtonic
304
22k
Designing for humans not robots
tammielis
254
26k
Into the Great Unknown - MozCon
thekraken
41
2.8k
The Curious Case for Waylosing
cassininazir
1
570
Between Models and Reality
mayunak
4
500
Transcript
JWTʹ͍ͭͯ
1. JWTͱ 2. JWTͷத 3. JWTΛ͏ͱԿ͕خ͍͔͠ 4. JWTͷҙ ࣍
1. JWTͱ Json Web Token ͷུɻ RFC7519 Ͱఆٛ͞Ε͍ͯΔٕज़Ͱɺ RFC7515 JWS
(Json Web Signature) ͷ༷ʹԊͬͯɺpayload෦ΛJSONܗࣜʹͯ͠ +α ͨ͠ͷɻ eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9. eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6Ikpva G4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ. S f lKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQs sw5c ϔομʔ ϖΠϩʔυ ॺ໊ { "alg": "HS256", "typ": "JWT" } { "sub": "1234567890", "name": "John Doe", "iat": 1516239022 } HMACSHA256( base64UrlEncode(header) + "." + base64UrlEncode(payload), your-256-bit-secret ) JSON BASE JWT
1. JWTͱ POST /user/login {email, password} Ϣʔβʔೝূޙʹ ηογϣϯใΛอଘ ηογϣϯIDΛCookieͱͯ͠ฦ͢ ϦΫΤετΛηογϣϯIDͱͱʹૹΔ
ૹΒΕ͖ͯͨηογϣϯIDͱ อଘͨ͠ηογϣϯIDͰݕূ Ϩεϙϯε Sessionํࣜ
1. JWTͱ POST /user/login {email, password} ൿີ伴Λͬͯ JWTΛੜ JWTΛϨεϙϯεͱͯ͠ฦ͢ ϦΫΤετΛJWTͱͱʹૹΔ
JWTͷதΛݕূ JWT͔ΒϢʔβʔใΛऔಘ Ϩεϙϯε JWTํࣜ
1. JWTͱ POST /user/login {email, password} Secret keyΛͬͯ JWTΛੜ JWTΛϨεϙϯεͱͯ͠ฦ͢
ϦΫΤετΛJWTͱͱʹૹΔ JWTͷதΛݕূ JWT͔ΒϢʔβʔใΛऔಘ Ϩεϙϯε JWTํࣜ POST /user/login {email, password} Ϣʔβʔೝূޙʹ ηογϣϯใΛอଘ ηογϣϯIDΛCookieͱͯ͠ฦ͢ ϦΫΤετΛηογϣϯIDͱͱʹૹΔ ૹΒΕ͖ͯͨ ηογϣϯIDͱอଘͨ͠ ηογϣϯIDͰݕূ Ϩεϙϯε Sessionํࣜ ೋͭͷେ͖ͳҧ͍ɺτʔΫϯΛอଘ͢Δॴɻ ηογϣϯํࣜαʔόʔʹɺ JWTํࣜϒϥβʹอଘ͢Δɻ
2. JWTͷத
3. JWTΛ͏ͱԿ͕خ͍͔͠ ServerA ServerC ServerB
4. JWTͷҙ ϢʔβʔͷೳಈతͳϩάΞτʹΑΔτʔΫϯͷཧ A UserAHeader. UserAPayload. UserASignature UserAHeader. UserAPayload. UserASignature
࿙Ӯ OK OK ʻϩάΞτϘλϯԡԼʼ B
4. JWTͷҙ
ऴΘΓ