Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
Cognitoを利用してAWSサービスへのアクセス権限をコントロールする
kawaji
May 28, 2019
0
11
Cognitoを利用してAWSサービスへのアクセス権限をコントロールする
kawaji
May 28, 2019
Tweet
Share
More Decks by kawaji
See All by kawaji
JP_Stripes名古屋の紹介
kawaji_scratch
0
100
[email protected]
で複数オリジンに振り分けてみた
kawaji_scratch
0
170
Hyperledger Fabric AWSインフラ構成についてふりかえる
kawaji_scratch
0
9
AppSyncでチャットアプリ作ってみた
kawaji_scratch
0
14
2021/2/21 コードの共同所有
kawaji_scratch
0
450
NGK2021S LT大会 CloudShellに期待すること
kawaji_scratch
0
120
2020/12/28 CloudShellに期待すること
kawaji_scratch
0
22
2020/04/20 JAWS-UG名古屋 アジェンダ
kawaji_scratch
0
24
Aamazonを支えるクラウドとは?
kawaji_scratch
0
60
Featured
See All Featured
Rebuilding a faster, lazier Slack
samanthasiow
69
7.5k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
29
7.9k
We Have a Design System, Now What?
morganepeng
37
5.9k
Why You Should Never Use an ORM
jnunemaker
PRO
49
7.9k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
318
19k
Writing Fast Ruby
sferik
613
58k
Fontdeck: Realign not Redesign
paulrobertlloyd
74
4.3k
Facilitating Awesome Meetings
lara
33
4.6k
Rails Girls Zürich Keynote
gr2m
87
12k
How GitHub Uses GitHub to Build GitHub
holman
465
280k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
351
21k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
13
5.4k
Transcript
CognitoΛར༻ͯ͠ AWSαʔϏεͷΞΫηεݖݶΛί ϯτϩʔϧ͢Δ 2019/5/28 JAWS-UG ໊ݹ ࿏ ོٛ
w ॴଐ ༗ݶձࣾεΫϥονιϑτ w ໊લ ࿏ོٛʢ͔Θ͡Α͔ͨ͠ʣ w "84ྺ
̔ w ͖ͳ"84αʔϏε 3PVUFɺ&$4QPU'MFFU"1* w ظ͍ͯ͠ΔαʔϏε .BOBHFE#MPDLDIBJO ࣗݾհ
[email protected]
Cognitoͱ ͳΜ͔ॻ͘ "84#MBDL#FMU0OMJOF4FNJOBS"84$PHOJUPΑΓҾ༻
Ϣʔεέʔε • ։ൃҊ݅ͰϢʔβʔϩάΠϯػೳ͕ඞཁɻ • ೝূج൫ΛࣗલͰ։ൃ͠ͳ͍ํ๏ͳ͍͔ʁ
HTMLϕʔεͷ߹
ߏ
ͬ͘͟Γखॱ • Cognito UserPoolΛ༻ҙ͢Δ • ΫϥΠΞϯτΞϓϦΛઃఆ͢Δ • ALBΛ༻ҙ͢Δ • ϦεφʔΛઃఆ͢Δ
ΞϓϦΫϥΠΞϯτ
ΞϓϦΫϥΠΞϯτ $PHOJUPΛ*%ϓϩόΠμͱͯ͠ࢦఆ αΠϯΠϯޙʹϦμΠϨΫτ͞ΕΔ63- αΠϯΞτޙʹϦμΠϨΫτ͞ΕΔ63-
Ϧεφʔͷઃఆ σϑΥϧτΞΫγϣϯͰʮೝূʯΛબ
Ϧεφʔͷઃఆ $PHOJUPΛબ ࡞ࡁΈͷϢʔβʔϓʔϧ ࡞ࡁΈͷΞϓϦΫϥΠΞϯτ Ҏ্Ͱɺ&-#ϦΫΤετ͕དྷͨ߹ʹ$PHOJUPͱ࿈ܞ͢Δ
Ϧεφʔͷઃఆ ೝূࡁΈͷϦΫΤετΛసૹ͢Δઃఆ
Ϧεφʔͷઃఆ "-#ʹઃఆͨ͠"VUP4DBMJOH(SPVQΛࢦఆ
Πϝʔδ ϦΫΤετ ϩάΠϯը໘ ϦμΠϨΫτࢦࣔ ೝূϦΫΤετ ೝূޙ63-ϦμΠϨΫτ 5PLFOݕূ
Cognito͕༻ҙ͢ΔUI αΠϯΠϯը໘ αΠϯΞοϓը໘
ิ ALB͕ϦΫΤετΛͲ͏Validation͢Δ͔ • CookieΛར༻͍ͯ͠Δ AWSELBAuthSessionCookie-0 AWSELBAuthSessionCookie-1 • λΠϜΞτͳͲࣗͰมߋՄೳ
SPA ʢγϯάϧϖʔδΞϓϦέʔγϣϯʣ ͷ߹
ߏ
ͬ͘͟Γखॱ • Cognito UserPoolΛ༻ҙ͢Δ • ΫϥΠΞϯτΞϓϦΛઃఆ͢Δ • APIGatewayΛ༻ҙ͢Δ • ΦʔιϥΠβʔΛઃఆ͢Δ
ͬ͘͟Γखॱ • Cognito UserPoolΛ༻ҙ͢Δ • ΫϥΠΞϯτΞϓϦΛઃఆ͢Δ • APIGatewayΛ༻ҙ͢Δ • ΦʔιϥΠβʔΛઃఆ͢Δ
• API୯ҐͰೝՄ݅Λઃఆ͢Δ આ໌ࡁΈ
ΦʔιϥΠβʔͷઃఆ $PHOJUPΛબ ࡞ͨ͠ϢʔβʔϓʔϧΛબ )551ϔομʹ༩͢Δ τʔΫϯͷ໊শ
APIʹ࡞ͨ͠ΦʔιϥΠβʔΛઃఆ͢Δ "1*୯ҐͰ੍ޚ͕Մೳɻ (&50, 1045/(ͳͲͰ͖Δ
Πϝʔδ αΠϯΠϯ 5PLFOฦ٫ "1*ݺͼग़͠ 5PLFO༩ "1*Ϩεϙϯε 5PLFOݕূ
ิ "1*(BUFXBZΦʔιϥΠβʔҎ֎ʹ*".ʹΑΔೝ ՄΛαϙʔτ͍ͯ͠Δ
LambdaΛར༻ͯ͠ΧελϚΠζՄೳ
͜͜·ͰCognito UserPoolͷ͓
Amazon Cognito ID ϓʔϧ (ϑΣσϨʔςΟουΞΠσϯςΟςΟ) Λར༻ͯ͠ग़དྷΔ͜ͱ
• AWSϦιʔεΞΫηε༻ͷTemporary CredentialsΛ ͍ग़͢ɻ • ೝূ֎෦Identity ProviderʹҠৡՄೳɻ • Ұਓͷਓ͕ؒ࣋ͭෳͷIdentity ProviderͷΞΧϯ
τใΛIdentityͱͯ͠·ͱΊΔɻ
• AWSϦιʔεΞΫηε༻ͷTemporary CredentialsΛ͍ग़͢ɻ • ೝূ֎෦Identity ProviderʹҠৡՄೳɻ • Ұਓͷਓ͕ؒ࣋ͭෳͷIdentity ProviderͷΞΧϯτใΛ Identityͱͯ͠·ͱΊΔɻ
Ұ࣌తͳݖݶΛ͍ग़͢͜ͱʹΑΓΞϓϦ͔Β"84αʔϏε ΞΫηεՄೳʹ
• AWSϦιʔεΞΫηε༻ͷTemporary CredentialsΛ͍ग़͢ɻ • ೝূ֎෦Identity ProviderʹҠৡՄೳɻ • Ұਓͷਓ͕ؒ࣋ͭෳͷIdentity ProviderͷΞΧϯτใΛ Identityͱͯ͠·ͱΊΔɻ
Ұ࣌తͳݖݶΛ͍ग़͢͜ͱʹΑΓΞϓϦ͔Β"84αʔϏε ΞΫηεՄೳʹ 'BDFCPPL (PPHMFͳͲ$PHOJUPҎ֎ͷ*E1Λར༻Մೳɻ "VUIͱ͔ݴͬͱ͚ࠓਖ਼ղʁ
• AWSϦιʔεΞΫηε༻ͷTemporary CredentialsΛ͍ग़͢ɻ • ೝূ֎෦Identity ProviderʹҠৡՄೳɻ • Ұਓͷਓ͕ؒ࣋ͭෳͷIdentity ProviderͷΞΧϯτใΛ Identityͱͯ͠·ͱΊΔɻ
Ұ࣌తͳݖݶΛ͍ग़͢͜ͱʹΑΓΞϓϦ͔Β"84αʔϏε ΞΫηεՄೳʹ 'BDFCPPL (PPHMFͳͲ$PHOJUPҎ֎ͷ*E1Λར༻Մೳɻ "VUIͱ͔ݴͬͱ͚ࠓਖ਼ղʁ J1IPOFΞϓϦͱBOESPJEΞϓϦͷΞΧϯτΛ ෦Ͱಉ͡ਓͱͯ͠ೝࣝͰ͖Δ
Πϝʔδ
Πϝʔδ
۩ମྫ • ೝূࡁΈϢʔβʔࣗઐ༻ͷόέοτྖҬ ϑΝΠϧΛΞοϓϩʔυͰ͖Δɻ • ೝূ͞Ε͍ͯͳ͍Ϣʔβʔɺࢀরݖݶ͚ͩ༩͑Β Ε͓ͯΓσʔλΛӾཡ͚ͩͰ͖Δɻ ͳͲ੍͕ޚՄೳɻ
AWS Amplify 8&#ͰΞϓϦ࡞ΓࠐΉͱ͖"84"NQMJGZ͓͢͢Ίɻ $PHOJUPपลΛطଘϥΠϒϥϦ͕͍Ζ͍ΖରԠͯ͘͠Ε·͢ɻ
ଓ͖࠙ձͰʂʂ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠