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
CognitoでWebアプリケーション(not SPA)に ログインさせたい時、何を作らなくて...
Search
Kitano Yuichi
July 14, 2023
Technology
3.9k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
CognitoでWebアプリケーション(not SPA)に ログインさせたい時、何を作らなくてはならないのか? / What do I create when I want to log in to a web application with Amazon Cognito?
Kitano Yuichi
July 14, 2023
More Decks by Kitano Yuichi
See All by Kitano Yuichi
Webアプリ認証の全体像 / The Big Picture of Web App Authentication
kitano_yuichi
1
790
SPAとWebアプリケーションでCognitoの使い方はどう変わるのか? / How do we use cognito with SPA and web applications?
kitano_yuichi
0
7.1k
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
10分で知る最近のOmarchy
komagata
0
270
プロダクト思考 × 基盤思考を AIで実現する Compound Engineering
tkc66buzz
1
330
omasushiというライブラリを作った
polidog
PRO
0
210
Where Is JetBrains AI Heading- — Central CLI, Air Alpha, and the Agentic Development Stack
x5gtrn
PRO
0
160
アプリをもっと"iOSアプリっぽく"する小さな工夫 / Small Touches That Make Your App Feel More Like an iOS App
matsuji
1
630
Snowflakeのコスト最適化を支えるアーキテクチャ設計
ktatsuya
1
1.5k
山手線を徒歩で一周してわかった、 位置情報アプリは「足」が最強のデバッガー
hinakko
0
110
作品が生態系になった ─ Mini Tokyo 3D から世界へ
nagix
0
170
Gitは怖い?共有ワークスペースから始めるSnowflakeチーム開発
coco_se
0
180
例外の正しい扱い方 そのエラー try-catchして大丈夫?
jinwatanabe
3
470
多層防御と最⼩権限で実現する、安全なAIエージェント設計パターン
lycorptech_jp
PRO
1
270
リージョンの壁を越える、 ちょっと変わったAWSサービスの話
falken
PRO
1
310
Featured
See All Featured
Leo the Paperboy
mayatellez
9
2.3k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.3k
Building Applications with DynamoDB
mza
96
7.2k
Are puppies a ranking factor?
jonoalderson
2
3.9k
How Software Deployment tools have changed in the past 20 years
geshan
1
34k
A Modern Web Designer's Workflow
chriscoyier
699
190k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
450
Crafting Experiences
bethany
1
320
My Coaching Mixtape
mlcsv
0
310
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
Building Flexible Design Systems
yeseniaperezcruz
330
41k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
1
400
Transcript
$PHOJUPͰ8FCΞϓϦέʔγϣϯʢOPU41"ʣʹ ϩάΠϯ͍ͤͨ࣌͞ɺԿΛ࡞Βͳͯ͘ͳΒͳ͍ͷ͔ʁ "84ࣄۀຊ෦ϞμϯΞϓϦέʔγϣϯίϯαϧςΟϯά෦ ༎Ұ
ࣗݾհ 2 w ༎Ұʢ,*5"/0:VJDIJʣ w Ϋϥεϝιουגࣜձࣾ w "84ࣄۀຊ෦ ϞμϯΞϓϦέʔγϣϯίϯαϧςΟϯά෦
w +BQBO"84"MM$FSUJGJDBUJPOT&OHJOFFST w ͖ͳ"84αʔϏε w "84$%, w $PHOJUP
ೝূαʔϏεͰ͋Δ$PHOJUPΛ ͬͯΈΑ͏😁 3
41"ͰBNQMJGZͬͨϒϩά ͔ͬΓͰͯ͘Δͳ🤔 4
%KBOHPͱ͔3BJMTΈ͍ͨͳ 8FCϑϨʔϜϫʔΫͰ $PHOJUP͏ʹͲ͏ͨ͠Β͍͍Μͩ😇 5
ࠓճͷత $PHOJUPͰ8FCΞϓϦέʔγϣϯʢOPU41"ʣ ʹϩάΠϯ͍ͨ࣌͠ɺ ࣗͰ࡞Δඞཁ͕͋ΔͷΛཧղ͢Δɻ 6
ຊ͓͢Δ͜ͱ w 8FCΞϓϦέʔγϣϯͰ$PHOJUPϩάΠϯ͢Δछྨͷํ๏ w छྨͷϩάΠϯํ๏ͷೝূϑϩʔͱ࣮ʹ͍ͭͯ ʲ͞ͳ͍͜ͱʳ w ೝՄʢTDPQFʣʹ͍ͭͯ w αΠϯΞοϓɺϩάΠϯޙͷ࣮ʹ͍ͭͯ
7
Virtual private cloud (VPC) 8FCΞϓϦέʔγϣϯͷ"84ߏྫ 8 64&3 "VSPSB &MBTUJ$BDIF &$
"-# $PHOJUP Ϣʔβʔϓʔϧ ೝূτʔΫϯ Public subnet Private subnet Private subnet ηογϣϯ%# ηογϣϯͰ ϢʔβʔΛࣝผ
$PHOJUPʹ͓͍ͯϩάΠϯͱʁ *%τʔΫϯΛൃߦͯ͢͜͠ͱͰ͢ɻ 9 $PHOJUP Ϣʔβʔϓʔϧ Ϣʔβʔ ʢΫϥϝιଠʣ ࢲΫϥϝιଠͰ͢ʂ ͦͷূڌͷ*%ͱύεϫʔυ͜ΕͰ͢ʂ *%
ύεϫʔυ *%τʔΫϯ ͔֬ʹ͋ͳͨΫϥϝιଠͰ͢Ͷɻ ͋ͳͨͷͨΊʹൃߦͨ͠*%τʔΫϯΛ͠·͢ɻ
+85ͱݺΕΔܗࣜͰϢʔβʔใΛ͍࣋ͬͯ·͢ɻ { *%τʔΫϯͷಛ 10 $PHOJUP Ϣʔβʔϓʔϧ *%τʔΫϯ ɹൿີݤ *%τʔΫϯൃߦ࣌ʹ ൿີ伴Ͱॺ໊
ɹެ։ݤ w Ϣʔβʔ*%ʢTVCʣ w &NBJMʢFNBJMʣ w Ϣʔβʔϓʔϧ*%ʢJTTʣ w Ϣʔβʔ໊ ʢDPHOJUPVTFSOBNFʣ w ༗ޮظݶʢFYQʣFUD *%τʔΫϯͷվ͟Μ͕ແ͍͔ ެ։伴ͰݕূՄೳ
छྨͷೝূํ๏ αʔόʔ*%τʔΫϯΛ̎ͭ͢ͷํ๏͕͋Γ·͢ w "844%,Λར༻͢Δ w )PTUFE6*ͱ6TFSQPPMΤϯυϙΠϯτΛར༻͢Δ 11 $PHOJUP Ϣʔβʔϓʔϧ &$
*%τʔΫϯ ʁ Ͳ͏ͬͯ͢ʁ
"844%,Λར༻ͨ͠ೝূͷσϞ 12
"844%,ͷϝϦοτɾσϝϦοτ ϝϦοτ w ϩάΠϯը໘Λࣗ༝ʹ࡞ΕΔ σϝϦοτ w ϩάΠϯը໘ࣗͰ༻ҙ͠ͳ͚ΕͳΒͳ͍ w ֎෦*E1͑ͳ͍ 13
"844%,Λར༻ͨ͠ೝূͷྲྀΕᶃ 14 αʔόʔଆͰϩάΠϯը໘ͷੜ ϩάΠϯը໘ͷදࣔ
"844%,Λར༻ͨ͠ೝূͷྲྀΕᶄ 15 Ϣʔβʔ*%ύεϫʔυͷೖྗ 'PSNͰαʔόʔ1PTU
"844%,Λར༻ͨ͠ೝূͷྲྀΕᶅ 16 Ϣʔβʔ*%ύεϫʔυʹ ج͍ͮͨೝূϑϩʔͷ࣮ߦ ֤छτʔΫϯΛऔಘ
"844%,Λར༻ͨ͠ೝূͷྲྀΕᶆ 17 औಘ֤ͨ͠छτʔΫϯΛ ηογϣϯใͱඥ͚ͯ ηογϣϯ%#อଘ
"844%,Λར༻ͨ͠ೝূͷྲྀΕᶇ 18 ϩάΠϯޙը໘ͷදࣔ ηογϣϯ*%Λ$PPLJFʹอଘ
"844%,Λར༻ͨ͠ೝূͷྲྀΕᶈ 19 ηογϣϯ*%ͰϢʔβʔΛࣝผ ηογϣϯ%#͔ΒτʔΫϯΛऔಘͯ͠ Ϣʔβʔݻ༗ͷใΛදࣔ
ʲ࠶ܝʳ"844%,Λར༻ͨ͠ೝূͷྲྀΕᶅ 20 Ϣʔβʔ*%ύεϫʔυʹ ج͍ͮͨೝূϑϩʔͷ࣮ߦ ֤छτʔΫϯΛऔಘ ʮೝূϑϩʔͷ࣮ߦʯ ͱԿͳͷ͔ʁ
$PHOJUPͷೝূϑϩʔ 21 ೝূϑϩʔ໊ આ໌ "%.*/@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ϑΝϯΫγϣϯ͕τϦΨʔ͞ΕɺࣗͰೝূϑϩʔΛࣗ༝ʹ ઃఆͰ͖Δೝূϑϩʔɻ 3&'3&4)@50,&/@"65) ϦϑϨογϡτʔΫϯ͔Β৽͍͠τʔΫϯΛऔಘ͢Δೝূϑϩʔɻ
$PHOJUPͷೝূϑϩʔͱઃఆ 22 લड़ͷೝূϑϩʔΛ͏߹ɺ$PHOJUPͷઃఆͰ ༻ΛڐՄ͢Δඞཁ͕͋Γ·͢ɻ
ΞϓϦέʔγϣϯΫϥΠΞϯτͷγʔΫϨοτΩʔ 23 ΫϥΠΞϯτγʔΫϨοτ࡞࣌ͷΈੜͰ͖·͢ɻ
"%.*/@64&3@1"44803%@"65)ϑϩʔ 24 &$ $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 25 import hmac, hashlib, base64 def create_secret_hash(user_name, app_client_id,
secret_key): message = bytes(user_name + app_client_id, ‘utf-8’) key = bytes(secret_key, ‘utf-8’) digest = hmac.new(key, message, digestmod=hashlib.sha256).digest() secret_hash = base64.b64encode(digest).decode() return secret_hash user_name = <<ϩάΠϯϢʔβʔ໊>> app_client_id = <<CgonitoϢʔβʔϓʔϧͷΫϥΠΞϯτID>> secret_key = <<CognitoϢʔβʔϓʔϧͷΫϥΠΞϯτγʔΫϨοτ>> print('SECRET HASH:’,create_secret_hash(user_name, app_client_id, secret_key)) ʲࢀߟʳϢʔβʔΞΧϯτͷαΠϯΞοϓͱ֬ೝγʔΫϨοτϋογϡͷܭࢉ"NB[PO$PHOJUP IUUQTEPDTBXTBNB[PODPNKB@KQDPHOJUPMBUFTUEFWFMPQFSHVJEFTJHOJOHVQVTFSTJOZPVSBQQIUNM
)PTUFE6*Λར༻ͨ͠ೝূͷσϞ 26
)PTUFE6*ͷϝϦοτɾσϝϦοτ ϝϦοτ w ϩάΠϯը໘Λ࡞Βͳͯ͘ྑ͍ w αΠϯΞοϓը໘ɺύεϫʔυΛ͓ΕͰ͔͢ʁը໘͋Δ w ֎෦*E1͕͑Δ σϝϦοτ w
ϩάΠϯը໘ͷຊޠԽσβΠϯͷΧελϚΠζʹ੍ݶ͕͋Δ w ࣗલͰ࡞Δʹೝূϑϩʔ͕ෳࡶͰେม 27
)PTUFE6*Λར༻͢ΔͨΊͷઃఆ ϩάΠϯը໘Λ$PHOJUP͕ఏڙ͢ΔͨΊɺ $PHOJUPυϝΠϯͷ࡞͕ඞཁͰ͢ɻ ͜Ε͕)PTUFE6*ͷυϝΠϯʹͳΓ·͢ɻ 28
$PHOJUPͷ0"VUIϑϩʔ )PTUFE6*Λར༻͢Δ߹ɺ0"VUIϑϩʔͰτʔΫϯΛ औಘ͢Δ͜ͱʹͳΓ·͢ɻ 29 0"VUIϑϩʔ໊ આ໌ "VUIPSJ[BUJPODPEFHSBOU ʢೝূίʔυͷ༩ʣ جຊతʹ༻͕ਪ͞ΕΔϑϩʔɻ $PHOJUPͰαʔόʔΛհͯ͠τʔΫϯΛऔಘ͢Δ߹ɺ௨ৗΫϥΠΞϯ
τγʔΫϨοτΛઃఆͯ͠ར༻͢Δɻ 41"ͷΑ͏ʹϢʔβʔ͕τʔΫϯΛऔಘ͢Δ߹1,$&Λซ༻͢Δ͜ ͱ͕ਪ͞ΕΔɻ *NQMJDJUHSBOU ʢ҉ͷ༩ʣ "VUIPSJ[BUJPODPEFHSBOUͷ༻͕ෆՄೳͳ߹બ͢Δɻ "VUIPSJ[BUJPODPEFHSBOUͷ༻͕ਪ͞ΕΔɻ $MJFOUDSFEFOUJBMHSBOU ʢΫϥΠΞϯτೝূใʣ ϚγϯؒͷτʔΫϯަ͢Δࡍʹ༻͢Δೝূϑϩʔɻ ࠓճͷΑ͏ͳΤϯυϢʔβʔ͕ೝূʹ͏ϑϩʔͰͳ͍ɻ
$PHOJUPͷ0"VUIೝূϑϩʔͱઃఆ લड़ͷ0"VUIϑϩʔΛ͏߹ɺ $PHOJUPͷઃఆͰ༻ΛڐՄ͢Δඞཁ͕͋Γ·͢ɻ 30 ʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙ w ೝূίʔυ༩ "VUIPSJ[BUJPODPEFHSBOU
w ҉తͳ༩ *NQMJDJUHSBOU
)PTUFE6*Λར༻ͨ͠ೝূͷྲྀΕᶃ 31 αʔόʔଆͰϩάΠϯը໘ͷੜ ϩάΠϯը໘ͷϦϯΫΛදࣔ
)PTUFE6*Λར༻ͨ͠ೝূͷྲྀΕᶄ 32 0"VUIϑϩʔͷ։࢝ ೝՄΤϯυϙΠϯτϦμΠϨΫτ͔Βͷ )PTUFE6*ϦμΠϨΫτ
)PTUFE6*Λར༻ͨ͠ೝূͷྲྀΕᶅ 33 Ϣʔβʔ*%ύεϫʔυʹΑΔϩάΠϯޙ $BMMCBDL63-ͷϦμΠϨΫτʹΑΓ &$ೝՄίʔυΛ͢
)PTUFE6*Λར༻ͨ͠ೝূͷྲྀΕᶆ 34 ೝՄίʔυΛͱʹτʔΫϯΛऔಘ͢Δ
)PTUFE6*Λར༻ͨ͠ೝূͷྲྀΕᶇ 35 औಘ֤ͨ͠छτʔΫϯΛ ηογϣϯใͱඥ͚ͯ ηογϣϯ%#อଘ
)PTUFE6*Λར༻ͨ͠ೝূͷྲྀΕᶈ 36 ϩάΠϯޙը໘ͷදࣔ ηογϣϯ*%Λ$PPLJFʹอଘ
)PTUFE6*Λར༻ͨ͠ೝূͷྲྀΕᶉ 37 ηογϣϯ*%ͰϢʔβʔΛࣝผ ηογϣϯ%#͔ΒτʔΫϯΛऔಘͯ͠ Ϣʔβʔݻ༗ͷใΛදࣔ
)PTUFE6*Λར༻ͨ͠ೝূͰΘ͔Γʹ͍͘෦ 38 ೝূϦΫΤετΛͲ͏͢Ε͍͍ͷ͔ʁ ೝՄίʔυΛͲ͏ͬͯड͚औΕ͍͍ͷ͔ʁ τʔΫϯϦΫΤετΛͲ͏͢Ε͍͍ͷ͔ʁ
ೝূϦΫΤετ 39 PBVUIBVUIPSJ[FʢೝՄΤϯυϙΠϯτʣʹରͯ͠ ࣍ͷύϥϝʔλʔΛ(&5ϝιουͰૹ৴͠·͢ɻ ύϥϝʔλʔ໊ ࢦఆ͢Δ SFTQPOTF@UZQF "VUIPSJ[BUJPODPEFHSBOUͷ߹ɿDPEFʢೝՄίʔυΛฦ͢ʣ *NQMJDJUHSBOUͷ߹ɿUPLFOʢτʔΫϯΛฦ͢ʣ
DMJFOU@JE $PHOJUPϢʔβʔϓʔϧͷΞϓϦέʔγϣϯΫϥΠΞϯτ*% SFEJSFDU@VSJ ೝՄίʔυΛड͚औΔͨΊͷɺ 8FCΞϓϦͷϦμΠϨΫτઌ63-ʢྫɿIUUQTFYBNQMFDPNDBMMCBDLʣ TDPQF ೝূͰ*%τʔΫϯΛར༻͍ͨ͠߹ʮPQFOJEʯΛࢦఆ ͦͷଞ߲ʹ͍ͭͯຊࢿྉͰׂѪ͠·͢ ʲࢀߟʳೝՄΤϯυϙΠϯτ"NB[PO$PHOJUP IUUQTEPDTBXTBNB[PODPNKB@KQDPHOJUPMBUFTUEFWFMPQFSHVJEFBVUIPSJ[BUJPOFOEQPJOUIUNM
ೝূϦΫΤετͷͨΊͷ$PHOJUPͷઃఆ 40 ೝূϦΫΤετΛૹΔલʹɺ $PHOJUPͷΫϥΠΞϯτΛઃఆ͢Δඞཁ͕͋Γ·͢ɻ SFEJSFDU@VSJͱҰகͤ͞Δ ʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙ TDPQFͱҰகͤ͞Δ
DBMMCBDLʹΑΔೝՄίʔυͷड͚औΓ 41 8FCΞϓϦέʔγϣϯଆͷίʔϧόοΫ63-ʹɺ ΫΤϦύϥϝʔλʔͱͯ͠ɺೝՄίʔυ͕͞Ε·͢ɻ ࣍ͷ༷ͳܗͰίʔϧόοΫ63-ʹϦμΠϨΫτ͞Εɺ 8FCΞϓϦέʔγϣϯೝՄίʔυΛड͚औΓ·͢ɻ ྫɿhttps://example.com/callback?code=<<ೝՄίʔυ>>
τʔΫϯϦΫΤετ 42 PBVUIUPLFOʢτʔΫϯΤϯυϙΠϯτʣʹରͯ͠ 1045ϝιουͰૹ৴ͯ͠*%τʔΫϯΛऔಘ͠·͢ɻ ύϥϝʔλʔ໊ ࢦఆ͢Δ HSBOU@UZQF "VUIPSJ[BUJPODPEFHSBOUͷ߹ɿBVUIPSJ[BUJPO@DPEF ϦϑϨογϡτʔΫϯͰͷ࠶औಘͷ߹ɿSFGSFTI@UPLFO
$MJFOUDSFEFOUJBMHSBOUͷ߹ɿDMJFOU@DSFEFOUJBMT DMJFOU@JE $PHOJUPϢʔβʔϓʔϧͷΞϓϦέʔγϣϯΫϥΠΞϯτ*% DMJFOU@TFDSFU $PHOJUPϢʔβʔϓʔϧͷΞϓϦέʔγϣϯΫϥΠΞϯτγʔΫϨοτ SFEJSFDU@VSJ ೝՄΤϯυϙΠϯτͰ༻ͨ͠ͷͱಉ͡SFEJSFDU@VSJΛࢦఆ ʢྫɿIUUQTFYBNQMFDPNDBMMCBDLʣ DPEF ΫΤϦύϥϝʔλʔͰड͚औͬͨೝՄίʔυ ʲࢀߟʳτʔΫϯΤϯυϙΠϯτ"NB[PO$PHOJUP IUUQTEPDTBXTBNB[PODPNKB@KQDPHOJUPMBUFTUEFWFMPQFSHVJEFUPLFOFOEQPJOUIUNM
ຊͳΒTUBUF͍͍͚ͨͲׂѪ͠·͢ 43 ཁೝূϦΫΤετΛ࣮ߦͨ͠ਓͱ τʔΫϯϦΫΤετΛ࣮ߦ͍ͯ͠Δਓ͕ ಉҰਓ͔ʁͱ͍͏͜ͱΛνΣοΫͯ͠ɺ ηΩϡϦςΟΛߴΊ͍ͯΔɻ
֎෦*E1Λ͍͍ͨ߹ʁ 44 w ͍ΘΏΔ(PPHMFͰϩάΠϯΛ͍͍ͨ߹ Ͳ͏͢ΕΑ͍ʁ w )PTUFE6*Λར༻͢Ε͑·͢ʂ
(PPHMFͰϩάΠϯͷσϞ 45
(PPHMFͰϩάΠϯ͍ͨ࣌͠ͷઃఆ 46 w ৄ͘͠ฐࣾϒϩάΛݟ͍ͯͩ͘͞ w IUUQTEFWDMBTTNFUIPEKQBSUJDMFTBNB[PODPHOJUPHPPHMFTPDJBMTJHOJO
(PPHMFͰϩάΠϯͷೝূϑϩʔ 47 (PPHMFͰϩάΠϯ͢Δ෦͕ҧ͏͚ͩ ॏཁͳͷϒϥβͷϦμΠϨΫτΛ௨ͯ͠ (PPHMFͱ$PHOJUP͕ύϥϝʔλʔΛ ΓͱΓ͍ͯ͠Δͱ͍͏͜ͱ ʲࢀߟʳ)PTUFE6*Λར༻ͨ͠ೝূͷϑϩʔ
ϩάΠϯը໘ࣗ࡞ͭͭ͠(PPHMFϩάΠϯͰ͖Δʁ 48 w ϩάΠϯը໘Λຊޠʹͭͭ͠ (PPHMFͰϩάΠϯͰ͖ͳ͍ͷʁ w Ͱ͖·͢ʂ "844%,ͱ)PTUFE6*Λ྆ํ͏
ϋΠϒϦουߏʹ͍ͯͩ͘͠͞ɻ
ࣗ࡞ϩάΠϯը໘Ͱ(PPHMFϩάΠϯ͢ΔσϞ 49
)PTUFE6*Λܦ༝͠ͳ͚ΕͳΒͳ͍ʁ 50 w )PTUFE6*Λܦ༝ͤͣɺ(PPHMFϩάΠϯը໘ϦμΠ ϨΫτ͢ΔͨΊͷΦϓγϣϯ͕͋Γ·͢ɻ w ೝՄΤϯυϙΠϯτͷύϥϝʔλʔʹ JEFOUJUZ@QSPWJEFS(PPHMFΛ͚͍ͭͯͩ͘͞ɻ ʲࢀߟʳೝՄΤϯυϙΠϯτ"NB[PO$PHOJUP IUUQTEPDTBXTBNB[PODPNKB@KQDPHOJUPMBUFTUEFWFMPQFSHVJEFBVUIPSJ[BUJPOFOEQPJOUIUNM
)PTUFE6*Λলུͯ͠(PPHMFϩάΠϯ͢ΔσϞ 51
ೝূϑϩʔͷ࣮ɺͬͱ؆୯ʹͳΒͳ͍ʁ 52 w "84ͱͯ͠ެࣜϥΠϒϥϦ͋Γ·ͤΜɻ w 41"ͳΒBNQMJGZKT͕͋Γ·͢ɻ w αʔυύʔςΟͷϥΠϒϥϦΛ୳͍ͯͩ͘͠͞ɻ w ͍Ζ͍Ζ͋Γ·͕͢ɺͦͷϥΠϒϥϦΛධՁͰ͖Δ
ఔʹ$PHOJUPͷೝূϑϩʔͷཧղඞཁͩͱ ࢥͬͯ·͢ɻ
·ͱΊ 53 w $PHOJUPΛ8FCΞϓϦέʔγϣϯͷೝূͰ͏ʹ w "844%,ɼ)PTUFE6*ͱ̎छྨͷϩάΠϯํ๏͕͋Γ·͢ w ϩάΠϯํ๏ʹ͋ΘͤͨೝূϑϩʔΛཧղ্ͨ͠Ͱͷ࣮͕ඞ ཁͰ͢ w
(PPHMFϩάΠϯɺ֎෦*E1Λ͍͍ͨ߹ɺ )PTUFE6*Λར༻͢Δೝূϑϩʔͷ࣮͕ඞཁͰ͢ɻ ͬͯͳ͍Α͏ʹݟ͍͑ͯͬͯ·͢ɻ