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
SPAとWebアプリケーションでCognitoの使い方はどう変わるのか? / How do w...
Search
Kitano Yuichi
July 29, 2022
Technology
7.2k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
SPAとWebアプリケーションでCognitoの使い方はどう変わるのか? / How do we use cognito with SPA and web applications?
Kitano Yuichi
July 29, 2022
More Decks by Kitano Yuichi
See All by Kitano Yuichi
Webアプリ認証の全体像 / The Big Picture of Web App Authentication
kitano_yuichi
1
830
CognitoでWebアプリケーション(not SPA)に ログインさせたい時、何を作らなくてはならないのか? / What do I create when I want to log in to a web application with Amazon Cognito?
kitano_yuichi
1
3.9k
AWS Glueを使ってRDSからS3+Athena環境を作ってみよう / Let's create Athena from RDS using AWS Glue
kitano_yuichi
1
9.1k
オンプレとVPCをつなぐ環境のUpdate/re:Cap connecting on-premises and vpc
kitano_yuichi
0
1.7k
Other Decks in Technology
See All in Technology
Goodbye ShellScript, Hello File-based App
shunsock
0
150
SREは、MCPとAutopilotをこう使え!
kazumax55
3
870
アクセスキーこわい やめかたと漏らさない工夫
sassssan68
1
370
AIを活用するために決めた "やらないこと" - 価値に注目する / Not betting on AI
soudai
PRO
2
550
DEFCON_CHV_CTF_Write-up.pdf
bata_24
0
150
HRC_Frontend_Conference_Fukuoka_2026.pdf
ts020
0
740
AIで社員の自主発信に広報目線を組み込む
_mossann_t
0
120
HHKBエバンジェリストになる方法
941
0
110
Claude Code本って、 読む必要あるの?
oikon48
2
470
安心して変更できるWebフロントエンドの作り方
pirosikick
5
2.7k
リアーキテクチャ後の障害ゼロを目指したShadow Testingの取り組み
nihonbuson
PRO
1
140
あるけみー式LTスライド作成術
alchemy1115
2
220
Featured
See All Featured
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
The Curse of the Amulet
leimatthew05
3
15k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.7k
4 Signs Your Business is Dying
shpigford
187
23k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.3k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.6k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
500
The Spectacular Lies of Maps
axbom
PRO
1
990
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
203
76k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.2k
Typedesign – Prime Four
hannesfritz
42
3.2k
Transcript
"84ࣄۀຊ෦ίϯαϧςΟϯά෦༎Ұ 41"ͱ8FCΞϓϦέʔγϣϯͰ $PHOJUPͷ͍ํͲ͏มΘΔͷ͔ʁ
ࣗݾհ • ༎Ұʢ,*5"/0:VJDIJʣ • Ϋϥεϝιουגࣜձࣾ • "84ࣄۀຊ෦ίϯαϧςΟϯά෦ • "1/"--"84$FSUJGJDBUJPOT&OHJOFFST
• ͖ͳ"84αʔϏε • "84$-* • $PHOJUP
CognitoͬͯͲ͏͍͏ ΠϝʔδͰ͔͢ʁ🤔
$PHOJUPͰΑ͘ฉ͘ w Կ͔ೝূʹ͏αʔϏε w ೝূʹ͏ͷΘ͔Δ͚Ͳɺ࣮ࡍͲ͏ͬͯࣗୡͷ ΞϓϦέʔγϣϯʹΈࠐΜͩΒྑ͍ͷ͔Θ͔Βͳ͍ w (PPHMFϩάΠϯͱ͔Ͱ͖ΔΒ͍͚͠Ͳɺ
Ͳ͏ͬͯͬͨΒ͍͍ͷ͔Θ͔Βͳ͍
ࠓճͷత CognitoΛ WebαʔϏεͷೝূͱͯ͠͏ʹ Ͳ͏͍͏ߏ͕ඞཁ͔ཧղ͢Δ
ຊ͓͢Δ͜ͱ w 8FCΞϓϦέʔγϣϯͰ$PHOJUPΛ༻͢Δํ๏ w 41"Ͱ$PHOJUPར༻࣌ͷೝূͷྲྀΕ w ैདྷܕ8FCαΠτͰ$PHOJUPར༻࣌ͷೝূͷྲྀΕ ʲ͞ͳ͍͜ͱʳ w
$PHOJUPΛ͏ͨΊͷ۩ମతͳઃఆ
$PHOJUPͷར༻ํ๏ w େ͖͘Θ͚ͯ̎௨Γͷ͍ํ͕͋Γ·͢ w 41"ʢ4JOHMF1BHF"QQMJDBUJPOʣʴόοΫΤϯυ"1* w ैདྷܕ8FCαΠτ
41"ͱ w ୯ҰͷϖʔδͰ8FCΞϓϦέʔγϣϯΛ ߏ͢ΔγεςϜ w ௨ৗKBWBTDSJQUʢ3FBDU 7VFʣΛར༻ͯ͠ಈతʹ
දࣔɺϖʔδભҠΛ੍ޚ͢ΔɻϩάΠϯϢʔβʔͷ ݸผσʔλόοΫΤϯυ"1*͔Βಈతʹऔಘ͢Δɻ
41"ͷ"84ߏྫ $MPVE'SPOU 4 $PHOJUP Ϣʔβʔϓʔϧ "1*(BUFXBZ BNQMJGZKT 64&3 -BNCEB
41"༻ͷ ੩తϖʔδऔಘ ೝূτʔΫϯ όοΫΤϯυ"1* ಈతΞΫηε ʢ*".ೝՄʣ $PHOJUP *%ϓʔϧ "84Ұ࣌ ΫϨσϯγϟϧΩʔऔಘ
41"ͷ$PHOJUPͰͷೝূσϞ
41"ͷೝূͷྲྀΕᶃ $MPVE'SPOU 4 $PHOJUP Ϣʔβʔϓʔϧ "1*(BUFXBZ BNQMJGZKT 64&3 -BNCEB
$PHOJUP *%ϓʔϧ 41"༻ͷ ੩తϖʔδऔಘ ϩάΠϯը໘ͷදࣔ
41"ͷೝূͷྲྀΕᶄ $MPVE'SPOU 4 $PHOJUP Ϣʔβʔϓʔϧ "1*(BUFXBZ BNQMJGZKT 64&3 -BNCEB
$PHOJUP *%ϓʔϧ KBWBTDSJQUͰಈతʹ Ϣʔβʔ*%ύεϫʔυʹ ج͍ͮͨೝূϑϩʔͷ࣮ߦ ֤छτʔΫϯΛऔಘͯ͠อଘ
41"ͷೝূͷྲྀΕᶅ $MPVE'SPOU 4 $PHOJUP Ϣʔβʔϓʔϧ "1*(BUFXBZ BNQMJGZKT 64&3 -BNCEB
$PHOJUP *%ϓʔϧ KBWBTDSJQUͰಈతʹ *%τʔΫϯ͔Β"84Ұ࣌ ΫϨσϯγϟϧΩʔͷऔಘ
41"ͷೝূͷྲྀΕᶆ $MPVE'SPOU 4 $PHOJUP Ϣʔβʔϓʔϧ "1*(BUFXBZ BNQMJGZKT 64&3 -BNCEB
$PHOJUP *%ϓʔϧ KBWBTDSJQUͰಈతʹ "84Ұ࣌ΫϨσϯγϟϧΩʔ͔Β 4JH7ॺ໊Λ࡞ όοΫΤϯυ"1*ϦΫΤετ
41"ͷ$PHOJUPͷ)PTUFE6*ͰͷೝূσϞ
RVJ w 0"VUIΛͬͨαʔυύʔςΟΞϓϦʢ(PPHMF 'BDFCPPLʣͰϩάΠϯͰ͖ΔΑ͏ʹͳΔ ͍ΘΏΔ(PPHMFͰϩάΠϯ͕ ͑ΔΑ͏ʹͳΔ )PTUFE6*ͷ(PPHMFϩάΠϯϘλϯΛ ΫϦοΫͨ࣌͠ͱಉ༷ͷಈ࡞Λ͢Δ
)PTUFE6*Λར༻͢Δͱ͖ͱಉ༷ͷઃఆ͕ඞཁ
41"ͷ)PTUFE6*ͷೝূͷྲྀΕᶃ $MPVE'SPOU 4 $PHOJUP Ϣʔβʔϓʔϧ "1*(BUFXBZ BNQMJGZKT 64&3 -BNCEB
$PHOJUP *%ϓʔϧ 41"༻ͷ ੩తϖʔδऔಘ ϩάΠϯը໘ϦμΠϨΫτ Ϙλϯͷදࣔ
41"ͷ)PTUFE6*ͷೝূͷྲྀΕᶄ $MPVE'SPOU 4 $PHOJUP Ϣʔβʔϓʔϧ ʢ)PTUFE6*ʣ "1*(BUFXBZ BNQMJGZKT 64&3
-BNCEB $PHOJUP *%ϓʔϧ 0"VUIೝূϑϩʔͷ։࢝ )PTUFE6*ϦμΠϨΫτ Ϣʔβʔ*%ύεϫʔυΑΔϩάΠϯޙ ೝՄίʔυͱ͋Θͤͯݩͷը໘ϦμΠϨΫτ
41"ͷ)PTUFE6*ͷೝূͷྲྀΕᶅ $MPVE'SPOU 4 "1*(BUFXBZ BNQMJGZKT 64&3 -BNCEB $PHOJUP *%ϓʔϧ
KBWBTDSJQUͰಈతʹ ϦμΠϨΫτʹΑΓड͚औͬͨೝՄίʔυΛݩʹ ֤छτʔΫϯΛ$PHOJUP͔Βऔಘͯ͠อଘ $PHOJUP Ϣʔβʔϓʔϧ
41"ͷ)PTUFE6*ͷೝূͷྲྀΕᶆ $MPVE'SPOU 4 $PHOJUP Ϣʔβʔϓʔϧ "1*(BUFXBZ BNQMJGZKT 64&3 -BNCEB
$PHOJUP *%ϓʔϧ KBWBTDSJQUͰಈతʹ *%τʔΫϯ͔Β"84Ұ࣌ ΫϨσϯγϟϧΩʔͷऔಘ
41"ͷ)PTUFE6*ͷೝূͷྲྀΕᶇ $MPVE'SPOU 4 $PHOJUP Ϣʔβʔϓʔϧ "1*(BUFXBZ BNQMJGZKT 64&3 -BNCEB
$PHOJUP *%ϓʔϧ KBWBTDSJQUͰಈతʹ "84Ұ࣌ΫϨσϯγϟϧΩʔ͔Β 4JH7ॺ໊Λ࡞ όοΫΤϯυ"1*ϦΫΤετ
41"Ͱ$PHOJUPͷೝূ·ͱΊ w BNQMJGZKTͰ6*࡞Δɺ·ͨ)PTUFE6*Λར༻͢Δ w (PPHMFϩάΠϯΛ͍ͨ͠߹ɺ )PTUFE6*Λར༻͢ΔͨΊͷઃఆ͕ඞਢ w ͦΕͧΕೝূϑϩʔҟͳΔ͕BNQMJGZKTΛ͑
ͦͷೝূϑϩʔΛ͍͍ײ͡ʹղܾͯ͘͠ΕΔ
ʲ༨ஊᶃʳ)PTUFE6*Λར༻ͨ͠ೝূϑϩʔͷৄࡉ w IUUQTEFWDMBTTNFUIPEKQBSUJDMFTMFBSOBVUIFOUJDBUJPOVTJOH DPHOJUPTIPTUFEVJXJUIBNQMJGZ ͪ͜Βͷϒϩά ղઆ͍ͯ͠·͢
ैདྷܕ8FCαΠτͱ w ΞΫηε͢ΔͱαʔόʔଆͰಈతʹ8FCαΠτͷද ࣔ)5.-Λੜ͠ɺϒϥβʹϨεϙϯε͢Δैདྷܕ ͷ8FCαΠτɻ w ௨ৗ8FCϑϨʔϜϫʔΫʢ3VCZPO3BJMT %KBOHP
ʜFUDʣΛ༻͍ͯ։ൃ͢Δ
Public subnet ैདྷܕ8FCαΠτͷ"84ߏྫ 64&3 VPC Private subnet Private subnet
"VSPSB &MBTUJ$BDIF &$ "-# $PHOJUP Ϣʔβʔϓʔϧ ηογϣϯͰ ϢʔβʔΛࣝผ ೝূτʔΫϯ ηογϣϯ%#
ैདྷܕ8FCαΠτͷ$PHOJUPͰͷೝূσϞ
Public subnet ैདྷܕ8FCαΠτͷೝূͷྲྀΕᶃ 64&3 VPC Private subnet Private subnet
"VSPSB &MBTUJ$BDIF &$ "-# $PHOJUP Ϣʔβʔϓʔϧ αʔόʔଆͰϩάΠϯը໘ͷੜ ϩάΠϯը໘ͷදࣔ
Public subnet ैདྷܕ8FCαΠτͷೝূͷྲྀΕᶄ 64&3 VPC Private subnet Private subnet
"VSPSB &MBTUJ$BDIF &$ "-# $PHOJUP Ϣʔβʔϓʔϧ Ϣʔβʔ*%ύεϫʔυͷೖྗ 'PSNͰαʔόʔ1PTU
Public subnet ैདྷܕ8FCαΠτͷೝূͷྲྀΕᶅ 64&3 VPC Private subnet Private subnet
"VSPSB &MBTUJ$BDIF &$ "-# $PHOJUP Ϣʔβʔϓʔϧ Ϣʔβʔ*%ύεϫʔυʹ ج͍ͮͨೝূϑϩʔͷ࣮ߦ ֤छτʔΫϯΛऔಘ
Public subnet ैདྷܕ8FCαΠτͷೝূͷྲྀΕᶆ 64&3 VPC Private subnet Private subnet
"VSPSB &MBTUJ$BDIF &$ "-# $PHOJUP Ϣʔβʔϓʔϧ औಘ֤ͨ͠छτʔΫϯΛ ηογϣϯใͱඥ͚ͯ ηογϣϯ%#อଘ
Public subnet ैདྷܕ8FCαΠτͷೝূͷྲྀΕᶇ 64&3 VPC Private subnet Private subnet
"VSPSB &MBTUJ$BDIF &$ "-# $PHOJUP Ϣʔβʔϓʔϧ ϩάΠϯޙը໘ͷදࣔ ηογϣϯͰϢʔβʔࣝผ
Public subnet ʲ࠶ܝʳैདྷܕ8FCαΠτͷೝূͷྲྀΕᶅ 64&3 VPC Private subnet Private subnet
"VSPSB &MBTUJ$BDIF &$ "-# $PHOJUP Ϣʔβʔϓʔϧ Ϣʔβʔ*%ύεϫʔυʹ ج͍ͮͨೝূϑϩʔͷ࣮ߦ ֤छτʔΫϯΛऔಘ 41"ͰBNQMJGZKT͕ೝূϑϩʔΛ ͏·͍͜ͱ࣮ߦͯ͘͠Ε·ͨ͠ɻ ैདྷܕ8FCαΠτͰೝূϑϩʔΛཧղ͠ɺ ೝূϑϩʔʹԊͬͯࣗͰ࣮͢Δ ඞཁ͕͋Γ·͢ɻ
$PHOJUPͷೝূϑϩʔൈਮ ೝূϑϩʔ໊ આ໌ "%.*/@64&3@1"44803%@"65) ʢچশɿ"%.*/@/0@431@"65)ʣ αʔόʔ͔Β࣮ߦ͢Δ͜ͱΛఆͨ͠ύεϫʔυΛૹͬͯೝূ͢Δೝূϑϩʔɻ ௨ৗΫϥΠΞϯτγʔΫϨοτΛ༻͢Δɻ 64&3@431@"65) ΫϥΠΞϯτʢ41"ʣ͔Β࣮ߦ͢Δ͜ͱΛఆͨ͠431ϓϩτίϧͰύεϫ
ʔυΛجʹͨ͠νϟϨϯδϨεϙϯεΛૹΓ͍͋ೝূ͢Δೝূϑϩʔɻ BNQMJGZKT͕σϑΥϧτͰ༻͢Δɻ 64&3@1"44803%@"65) ΫϥΠΞϯτʢ41"ʣ͔Β࣮ߦ͢Δ͜ͱΛఆͨ͠ύεϫʔυΛૹͬͯೝূ͢ Δೝূϑϩʔɻ ΫϥΠΞϯτʢ41"ʣ͔Βͷ࣮ߦ643@431@"65)ͷར༻͕ਪ͞ΕΔɻ $6450.@"65) ೝূ࣌ʹ-BNCEBϑΝϯΫγϣϯ͕τϦΨʔ͞ΕɺࣗͰೝূϑϩʔΛࣗ༝ʹ ઃఆͰ͖Δೝূϑϩʔɻ
$PHOJUPͷೝূϑϩʔͱઃఆ w લड़ͷೝূϑϩʔΛ͏߹ɺ$PHOJUPͷઃఆͰ ༻ΛڐՄ͢Δඞཁ͕͋Δɻ
"%.*/@64&3@1"44803%@"65)ϑϩʔ &$ $PHOJUP Ϣʔβʔϓʔϧ "ENJO*OJUJBUF"VUI TFDSFU@IBTI#BTF )."$@4)" $PHOJUP ϢʔβʔϓʔϧͷγʔΫϨοτΩʔ
ϩάΠϯϢʔβʔ໊ $PHOJUPϢʔβʔϓʔϧͷΫϥΠΞϯτ*% DPHOJUPBENJO*OJUJBUF"VUI \ "VUI'MPXb"%.*/@64&3@1"44803%@"65)` 6TFS1PPM*E$PHOJUPϢʔβʔϓʔϧͷϢʔβʔϓʔϧ*% $MJFOU*E$PHOJUPϢʔβʔϓʔϧͷΫϥΠΞϯτ*% "VUI1BSBNFUFST\ 64&3/".&ϩάΠϯϢʔβʔ໊ 1"44803%ύεϫʔυ 4&$3&5@)"4)TFDSFU@IBTI ^ ^ \ "VUIFOUJDBUJPO3FTVMU\ "DDFTT5PLFOʜ &YQJSFT*Oʜ 5PLFO5ZQFb#FBSFS` 3FGSFTI5PLFOʜ *E5PLFOʜ ^ ʜ ^ ֤छτʔΫϯ
۩ମతͳ4&$3&5@)"4)ͷܭࢉํ๏ʢQZUIPOʣ ʲҾ༻ʳ"NB[PO$PHOJUPͷʮΫϥΠΞϯτͷγʔΫϨοτͷϋογϡΛݕূͰ͖·ͤΜʯͱ͍͏ΤϥʔΛղܾ͢Δ IUUQTBXTBNB[PODPNKQQSFNJVNTVQQPSULOPXMFEHFDFOUFSDPHOJUPVOBCMFUPWFSJGZTFDSFUIBTI import sys import hmac, hashlib, base64
username = sys.argv[1] app_client_id = sys.argv[2] key = sys.argv[3] message = bytes(sys.argv[1]+sys.argv[2],'utf-8') key = bytes(sys.argv[3],'utf-8') secret_hash = base64.b64encode(hmac.new(key, message, digestmod=hashlib.sha256).digest()).decode() print("SECRET HASH:",secret_hash) python3 secret_hash.py <<ϩάΠϯϢʔβʔ໊>> <<CognitoϢʔβʔϓʔϧͷΫϥΠΞϯτ ID>> <<CognitoϢʔβʔϓʔϧͷΫϥΠΞϯτγʔΫϨοτ>> secret_hash.py
ʲ༨ஊᶄʳ"ENJO"1*ͱඇ"ENJO"1* w $PHOJUPͷ"1*ಛघ w "ENJO"1*ଞͷαʔϏεͱಉ༷*".3PMFͷΫϨσϯγϟϧͰ࣮ߦ w ྫɿ"ENJO*OJUJBUF"VUI "ENJO(FU6FTS w
ඇ"ENJO"1*$PHOJUPϢʔβʔͷΞΫηετʔΫϯͰ࣮ߦͯ͠ɺ ͦͷϢʔβʔͷΈૢ࡞Ͱ͖Δ w ৽نϢʔβʔΛ࡞͢Δ4JHO6Qɺ ೝূͯ͠τʔΫϯΛऔಘ͢Δ*OJUJBUF"VUIྫ֎ͰΞΫηετʔΫϯෆཁ w ྫɿ(FU6TFS
ैདྷܕ8FCαΠτͷ$PHOJUPͷ)PTUFE6*ͰͷೝূσϞ
Public subnet ैདྷܕ8FCαΠτͷ)PTUFE6*ͷೝূͷྲྀΕᶃ 64&3 VPC Private subnet Private subnet
"VSPSB &MBTUJ$BDIF &$ "-# $PHOJUP Ϣʔβʔϓʔϧ αʔόʔଆͰϩάΠϯը໘ͷੜ ϩάΠϯը໘ϦμΠϨΫτϘλϯͷදࣔ
Public subnet ैདྷܕ8FCαΠτͷ)PTUFE6*ͷೝূͷྲྀΕᶄ 64&3 VPC Private subnet Private subnet
"VSPSB &MBTUJ$BDIF &$ "-# $PHOJUPϢʔβʔϓʔϧ ʢ)PTUFE6*ʣ 0"VUIೝূϑϩʔͷ։࢝ )PTUFE6*ϦμΠϨΫτ Ϣʔβʔ*%ύεϫʔυΑΔϩάΠϯޙ ೝՄίʔυͱ͋Θͤͯ$BMMCBDL63-ϦμΠϨΫτ
Public subnet ैདྷܕ8FCαΠτͷ)PTUFE6*ͷೝূͷྲྀΕᶅ 64&3 VPC Private subnet Private subnet
"VSPSB &MBTUJ$BDIF &$ "-# $PHOJUP Ϣʔβʔϓʔϧ $BMMCBDL63-ͷϦμΠϨΫτʹΑΓ ೝՄίʔυΛαʔόʔ͢ DBMMCBDL
Public subnet ैདྷܕ8FCαΠτͷ)PTUFE6*ͷೝূͷྲྀΕᶆ 64&3 VPC Private subnet Private subnet
"VSPSB &MBTUJ$BDIF &$ "-# $PHOJUP Ϣʔβʔϓʔϧ ೝՄίʔυΛݩʹ ֤छτʔΫϯΛऔಘ
Public subnet ैདྷܕ8FCαΠτͷ)PTUFE6*ͷೝূͷྲྀΕᶇ 64&3 VPC Private subnet Private subnet
"VSPSB &MBTUJ$BDIF &$ "-# $PHOJUP Ϣʔβʔϓʔϧ औಘ֤ͨ͠छτʔΫϯΛ ηογϣϯใͱඥ͚ͯ ηογϣϯ%#อଘ
Public subnet ैདྷܕ8FCαΠτͷ)PTUFE6*ͷೝূͷྲྀΕᶈ 64&3 VPC Private subnet Private subnet
"VSPSB &MBTUJ$BDIF &$ "-# $PHOJUP Ϣʔβʔϓʔϧ ϩάΠϯޙը໘ϦμΠϨΫτͯ͠දࣔ ηογϣϯͰϢʔβʔࣝผ IFMMP
Public subnet ʲ࠶ܝʳैདྷܕ8FCαΠτͷ)PTUFE6*ͷೝূͷྲྀΕᶄ 64&3 VPC Private subnet Private subnet
"VSPSB &MBTUJ$BDIF &$ "-# $PHOJUPϢʔβʔϓʔϧ ʢ)PTUFE6*ʣ 0"VUIೝূϑϩʔͷ։࢝ )PTUFE6*ϦμΠϨΫτ Ϣʔβʔ*%ύεϫʔυΑΔϩάΠϯޙ ೝՄίʔυͱ͋Θͤͯ$BMMCBDL63-ϦμΠϨΫτ 41"ͰBNQMJGZKT͕0"VUIೝূϑϩʔΛ ͍͍ײ͡ʹ࣮ߦͯ͘͠Ε·ͨ͠ɻ ैདྷܕ8FCαΠτͰ0"VUIೝূϑϩʔΛཧղ͠ɺ 0"VUIೝূϑϩʔʹԊͬͯࣗͰ࣮͢Δ ඞཁ͕͋Γ·͢ɻ
$PHOJUPͷ0"VUIೝূϑϩʔ 0"VUIೝূϑϩʔ໊ આ໌ "VUIPSJ[BUJPODPEFHSBOU ʢೝՄίʔυͷڐՄʣ جຊతʹ༻͕ਪ͞ΕΔϑϩʔɻ ैདྷܕ8FCαΠτͷΑ͏ʹαʔόʔΛհͯ͠τʔΫϯΛऔಘ͢Δ߹ɺ ௨ৗΫϥΠΞϯτγʔΫϨοτΛઃఆͯ͠ར༻͢Δɻ 41"ͷΑ͏ʹϢʔβʔ͕τʔΫϯΛऔಘ͢Δ߹1,$&Λซ༻͢Δ͜
ͱ͕ਪ͞ΕΔɻ *NQMJDJUHSBOU ʢ҉తͳڐՄʣ "VUIPSJ[BUJPODPEFHSBOUͷ༻͕ෆՄೳͳ߹બ͢Δɻ 1,$&Λซ༻ͨ͠"VUIPSJ[BUJPODPEFHSBOUͷ༻͕ਪ͞ΕΔɻ $MJFOUDSFEFOUJBMHSBOU ʢΫϥΠΞϯτೝূใͷڐՄʣ ϚγϯؒͷτʔΫϯަ͢Δࡍʹ༻͢Δೝূϑϩʔɻ ࠓճͷΑ͏ͳΤϯυϢʔβʔ͕ೝূʹ͏ϑϩʔͰͳ͍ɻ
$PHOJUPͷ0"VUIೝূϑϩʔͱઃఆ w લड़ͷ0"VUIೝূϑϩʔΛ͏߹ɺ$PHOJUPͷ ઃఆͰ༻ΛڐՄ͢Δඞཁ͕͋Δɻ ʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙ • ೝূίʔυ༩ =
Authorization code grant • ҉తͳ༩ =Implicit grant
ैདྷܕ8FCαΠτͰ$PHOJUPͷೝূ·ͱΊ w ϩάΠϯ6*ΛࣗͰ࡞Δɺ·ͨ)PTUFE6*Λར༻ ͢Δ w (PPHMFϩάΠϯΛ͍ͨ͠߹ɺ )PTUFE6*Λར༻͢ΔͨΊͷઃఆ͕ඞਢ w
$PHOJUPͷೝূϑϩʔΛཧղͯ͠ɺࣗͰ࣮͢Δඞ ཁ͕͋ΓɺBNQMJGZKT͕͑Δ41"ΑΓқ͕ߴ ͍
Public subnet ʲ൪֎ʳ"-# $PHOJUPೝূͷ"84ߏྫ 64&3 VPC Private subnet Private
subnet "VSPSB &MBTUJ$BDIF &$ "-# $PHOJUP Ϣʔβʔϓʔϧ ೝূ࿈ܞ ηογϣϯ%#
"-# $PHOJUPೝূͰͷೝূσϞ
Public subnet "-# $PHOJUPೝূͷೝূͷྲྀΕᶃ 64&3 VPC Private subnet Private
subnet "VSPSB &MBTUJ$BDIF &$ "-# $PHOJUP Ϣʔβʔϓʔϧ "-#ΞΫηε 0"VUIೝূϑϩʔͷ։࢝ )PTUFE6*ϦμΠϨΫτ
Public subnet "-# $PHOJUPೝূͷೝূͷྲྀΕᶄ 64&3 VPC Private subnet Private
subnet "VSPSB &MBTUJ$BDIF &$ "-# $PHOJUP Ϣʔβʔϓʔϧ Ϣʔβʔ*%ύεϫʔυΑΔϩάΠϯޙ ೝՄίʔυͱ͋Θͤͯ "-#ͷ$BMMCBDL63-ϦμΠϨΫτ
Public subnet "-# $PHOJUPೝূͷೝূͷྲྀΕᶅ 64&3 VPC Private subnet Private
subnet "VSPSB &MBTUJ$BDIF &$ "-# $PHOJUP Ϣʔβʔϓʔϧ $BMMCBDL63-ͷϦμΠϨΫτʹΑΓ ೝՄίʔυΛ"-#͢
Public subnet "-# $PHOJUPೝূͷೝূͷྲྀΕᶆ 64&3 VPC Private subnet Private
subnet "VSPSB &MBTUJ$BDIF &$ "-# $PHOJUP Ϣʔβʔϓʔϧ ೝՄίʔυΛݩʹ֤छτʔΫϯΛऔಘ
Public subnet "-# $PHOJUPೝূͷೝূͷྲྀΕᶇ 64&3 VPC Private subnet Private
subnet "VSPSB &MBTUJ$BDIF &$ "-# $PHOJUP Ϣʔβʔϓʔϧ औಘ֤ͨ͠छτʔΫϯΛ ηογϣϯใͱඥ͚ͯอଘ "-#ͷηογϣϯ%# ͷ༷ͳͷ
Public subnet "-# $PHOJUPೝূͷೝূͷྲྀΕᶈ 64&3 VPC Private subnet Private
subnet "VSPSB &MBTUJ$BDIF &$ "-# $PHOJUP Ϣʔβʔϓʔϧ ΞΫηετʔΫϯɺϢʔβʔใʢTVCΫϨʔϜʣΛ )551ϔομʔʹՃͯ͠&$ΞΫηε "-#ͷηογϣϯ%# ͷ༷ͳͷ
Public subnet "-# $PHOJUPೝূͷೝূͷྲྀΕᶉ 64&3 VPC Private subnet Private
subnet "VSPSB &MBTUJ$BDIF &$ "-# $PHOJUP Ϣʔβʔϓʔϧ αʔόʔ͕ը໘Λੜ ϩάΠϯޙը໘Λදࣔ "-#ͷηογϣϯ%# ͷ༷ͳͷ
w "-#ͱ$PHOJUPͷઃఆ͓͚͑ͯ͞͠ɺ "-#͕0"VUIೝূϑϩʔΛ͍͍ײ͡ʹͬͯ͘Ε·͢ "-# $PHOJUPೝূͷ0"VUIೝূϑϩʔ w IUUQTEFWDMBTTNFUIPEKQBSUJDMFTBMCDPHOJUPVTFSQPPM ઃఆͷํ
ͪ͜ΒͷϒϩάΛ ͝ࢀর͍ͩ͘͞
"-# $PHOJUPೝূͰ&$ଆ͢ใ w IUUQTEFWDMBTTNFUIPEKQBSUJDMFTIUUQIFBEFSTBEEFECZBMC BOEDPHOJUPBSFFYQMBJOFE ͪ͜Βͷϒϩά ղઆ͍ͯ͠·͢ w Ϣʔβʔใ"-#͕)551ϔομʔՃͯ͠
͍ͯ͠·͢
·ͱΊ w $PHOJUPΛ8FCΞϓϦͷೝূͰ͏ʹʜ w 41"ͷ߹ɺBNQMJGZKTΛར༻͢Δ w ैདྷܕ8FCαΠτͷ߹ɺೝূϑϩʔΛཧղࣗ͠Ͱ࣮ w (PPHMFϩάΠϯ͍͍ͨ߹ɺ)PTUFE6*Λར༻