Upgrade to Pro — share decks privately, control downloads, hide ads and more …

CognitoでWebアプリケーション(not SPA)に ログインさせたい時、何を作らなくてはならないのか? / What do I create when I want to log in to a web application with Amazon Cognito?

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
Tweet

More Decks by Kitano Yuichi

Other Decks in Technology

Transcript

  1. $PHOJUPͰ8FCΞϓϦέʔγϣϯʢOPU41"ʣʹ
    ϩάΠϯ͍ͤͨ࣌͞ɺԿΛ࡞Βͳͯ͘͸ͳΒͳ͍ͷ͔ʁ

    "84ࣄۀຊ෦ϞμϯΞϓϦέʔγϣϯίϯαϧςΟϯά෦
    ๺໺༎Ұ

    View Slide

  2. ࣗݾ঺հ 2
    w ๺໺༎Ұʢ,*5"/0:VJDIJʣ
    w Ϋϥεϝιουגࣜձࣾ
    w "84ࣄۀຊ෦

    ϞμϯΞϓϦέʔγϣϯίϯαϧςΟϯά෦
    w +BQBO"84"MM$FSUJGJDBUJPOT&OHJOFFST
    w ޷͖ͳ"84αʔϏε
    w "84$%,
    w $PHOJUP

    View Slide

  3. ೝূαʔϏεͰ͋Δ$PHOJUPΛ
    ࢖ͬͯΈΑ͏😁
    3

    View Slide

  4. 41"ͰBNQMJGZ࢖ͬͨϒϩά
    ͹͔ͬΓͰͯ͘Δͳ🤔
    4

    View Slide

  5. %KBOHPͱ͔3BJMTΈ͍ͨͳ
    8FCϑϨʔϜϫʔΫͰ
    $PHOJUP࢖͏ʹ͸Ͳ͏ͨ͠Β͍͍Μͩ😇
    5

    View Slide

  6. ࠓճͷ໨త
    $PHOJUPͰ8FCΞϓϦέʔγϣϯʢOPU41"ʣ
    ʹϩάΠϯ͍ͨ࣌͠ɺ

    ࣗ෼Ͱ࡞Δඞཁ͕͋Δ΋ͷΛཧղ͢Δɻ
    6

    View Slide

  7. ຊ೔͓࿩͢Δ͜ͱ
    w 8FCΞϓϦέʔγϣϯͰ$PHOJUPϩάΠϯ͢Δछྨͷํ๏
    w छྨͷϩάΠϯํ๏ͷೝূϑϩʔͱ࣮૷ʹ͍ͭͯ
    ʲ࿩͞ͳ͍͜ͱʳ
    w ೝՄʢTDPQFʣʹ͍ͭͯ
    w αΠϯΞοϓɺϩάΠϯޙͷ࣮૷ʹ͍ͭͯ
    7

    View Slide

  8. Virtual private cloud (VPC)
    8FCΞϓϦέʔγϣϯͷ"84ߏ੒ྫ 8
    64&3
    "VSPSB &MBTUJ$BDIF
    &$
    "-#
    $PHOJUP
    Ϣʔβʔϓʔϧ
    ೝূτʔΫϯ
    Public subnet
    Private subnet
    Private subnet
    ηογϣϯ%#
    ηογϣϯͰ
    ϢʔβʔΛࣝผ

    View Slide

  9. $PHOJUPʹ͓͍ͯϩάΠϯͱ͸ʁ
    *%τʔΫϯΛൃߦͯ͠౉͢͜ͱͰ͢ɻ
    9
    $PHOJUP
    Ϣʔβʔϓʔϧ
    Ϣʔβʔ
    ʢΫϥϝιଠ࿠ʣ
    ࢲ͸Ϋϥϝιଠ࿠Ͱ͢ʂ
    ͦͷূڌͷ*%ͱύεϫʔυ͸͜ΕͰ͢ʂ
    *% ύεϫʔυ
    *%τʔΫϯ
    ͔֬ʹ͋ͳͨ͸Ϋϥϝιଠ࿠Ͱ͢Ͷɻ
    ͋ͳͨͷͨΊʹൃߦͨ͠*%τʔΫϯΛ౉͠·͢ɻ

    View Slide

  10. +85ͱݺ͹ΕΔܗࣜͰϢʔβʔ৘ใΛ͍࣋ͬͯ·͢ɻ

    *%τʔΫϯͷಛ௃ 10
    $PHOJUP
    Ϣʔβʔϓʔϧ
    *%τʔΫϯ
    ɹൿີݤ
    *%τʔΫϯൃߦ࣌ʹ
    ൿີ伴Ͱॺ໊
    ɹެ։ݤ
    w Ϣʔβʔ*%ʢTVCʣ
    w &NBJMʢFNBJMʣ
    w Ϣʔβʔϓʔϧ*%ʢJTTʣ
    w Ϣʔβʔ໊

    ʢDPHOJUPVTFSOBNFʣ
    w ༗ޮظݶʢFYQʣFUD
    *%τʔΫϯͷվ͟Μ͕ແ͍͔
    ެ։伴ͰݕূՄೳ

    View Slide

  11. छྨͷೝূํ๏
    αʔόʔ΁*%τʔΫϯΛ౉̎ͭ͢ͷํ๏͕͋Γ·͢
    w "844%,Λར༻͢Δ
    w )PTUFE6*ͱ6TFSQPPMΤϯυϙΠϯτΛར༻͢Δ
    11
    $PHOJUP
    Ϣʔβʔϓʔϧ
    &$ *%τʔΫϯ
    ʁ
    Ͳ͏΍ͬͯ౉͢ʁ

    View Slide

  12. "844%,Λར༻ͨ͠ೝূͷσϞ 12

    View Slide

  13. "844%,ͷϝϦοτɾσϝϦοτ
    ϝϦοτ
    w ϩάΠϯը໘Λࣗ༝ʹ࡞ΕΔ
    σϝϦοτ
    w ϩάΠϯը໘͸ࣗ෼Ͱ༻ҙ͠ͳ͚Ε͹ͳΒͳ͍
    w ֎෦*E1͸࢖͑ͳ͍
    13

    View Slide

  14. "844%,Λར༻ͨ͠ೝূͷྲྀΕᶃ 14
    αʔόʔଆͰϩάΠϯը໘ͷੜ੒
    ϩάΠϯը໘ͷදࣔ

    View Slide

  15. "844%,Λར༻ͨ͠ೝূͷྲྀΕᶄ 15
    Ϣʔβʔ*%ύεϫʔυͷೖྗ
    'PSNͰαʔόʔ΁1PTU

    View Slide

  16. "844%,Λར༻ͨ͠ೝূͷྲྀΕᶅ 16
    Ϣʔβʔ*%ύεϫʔυʹ
    ج͍ͮͨೝূϑϩʔͷ࣮ߦ
    ֤छτʔΫϯΛऔಘ

    View Slide

  17. "844%,Λར༻ͨ͠ೝূͷྲྀΕᶆ 17
    औಘ֤ͨ͠छτʔΫϯΛ
    ηογϣϯ৘ใͱඥ෇͚ͯ
    ηογϣϯ%#΁อଘ

    View Slide

  18. "844%,Λར༻ͨ͠ೝূͷྲྀΕᶇ 18
    ϩάΠϯޙը໘ͷදࣔ
    ηογϣϯ*%Λ$PPLJFʹอଘ

    View Slide

  19. "844%,Λར༻ͨ͠ೝূͷྲྀΕᶈ 19
    ηογϣϯ*%ͰϢʔβʔΛࣝผ

    ηογϣϯ%#͔ΒτʔΫϯΛऔಘͯ͠

    Ϣʔβʔݻ༗ͷ৘ใΛදࣔ

    View Slide

  20. ʲ࠶ܝʳ"844%,Λར༻ͨ͠ೝূͷྲྀΕᶅ 20
    Ϣʔβʔ*%ύεϫʔυʹ
    ج͍ͮͨೝূϑϩʔͷ࣮ߦ
    ֤छτʔΫϯΛऔಘ
    ʮೝূϑϩʔͷ࣮ߦʯ
    ͱ͸Կͳͷ͔ʁ

    View Slide

  21. $PHOJUPͷೝূϑϩʔ 21
    ೝূϑϩʔ໊ આ໌
    "%.*/@64&[email protected]"44803%@"65)
    ʢچশɿ"%.*/@/[email protected]@"65)ʣ
    αʔόʔ͔Β࣮ߦ͢Δ͜ͱΛ૝ఆͨ͠ύεϫʔυΛૹͬͯೝূ͢Δೝূϑϩʔɻ
    ௨ৗΫϥΠΞϯτγʔΫϨοτΛ࢖༻͢Δɻ
    64&[email protected]@"65)
    ΫϥΠΞϯτʢ41"౳ʣ͔Β࣮ߦ͢Δ͜ͱΛ૝ఆͨ͠431ϓϩτίϧͰύεϫ
    ʔυΛجʹͨ͠νϟϨϯδϨεϙϯεΛૹΓ͍͋ೝূ͢Δೝূϑϩʔɻ
    BNQMJGZKT͕σϑΥϧτͰ࢖༻͢Δɻ
    64&[email protected]"44803%@"65)
    ΫϥΠΞϯτʢ41"౳ʣ͔Β࣮ߦ͢Δ͜ͱΛ૝ఆͨ͠ύεϫʔυΛૹͬͯೝূ͢
    Δೝূϑϩʔɻ
    ΫϥΠΞϯτʢ41"౳ʣ͔Βͷ࣮ߦ͸[email protected]@"65)ͷར༻͕ਪ঑͞ΕΔɻ
    [email protected]"65)
    ೝূ࣌ʹ-BNCEBϑΝϯΫγϣϯ͕τϦΨʔ͞Εɺࣗ෼ͰೝূϑϩʔΛࣗ༝ʹ
    ઃఆͰ͖Δೝূϑϩʔɻ
    3&'3&4)@50,&/@"65) ϦϑϨογϡτʔΫϯ͔Β৽͍͠τʔΫϯΛऔಘ͢Δೝূϑϩʔɻ

    View Slide

  22. $PHOJUPͷೝূϑϩʔͱઃఆ 22
    લड़ͷೝূϑϩʔΛ࢖͏৔߹͸ɺ$PHOJUPͷઃఆͰ࢖
    ༻ΛڐՄ͢Δඞཁ͕͋Γ·͢ɻ

    View Slide

  23. ΞϓϦέʔγϣϯΫϥΠΞϯτͷγʔΫϨοτΩʔ 23
    ΫϥΠΞϯτγʔΫϨοτ͸࡞੒࣌ͷΈੜ੒Ͱ͖·͢ɻ

    View Slide

  24. "%.*/@64&[email protected]"44803%@"65)ϑϩʔ 24
    &$ $PHOJUP
    Ϣʔβʔϓʔϧ
    "ENJO*OJUJBUF"VUI
    [email protected]#BTF )."[email protected])" $PHOJUP
    ϢʔβʔϓʔϧͷγʔΫϨοτΩʔ ϩάΠϯϢʔβʔ໊
    $PHOJUPϢʔβʔϓʔϧͷΫϥΠΞϯτ*%


    DPHOJUPBENJO*OJUJBUF"VUI \
    "VUI'MPXb"%.*/@64&[email protected]"44803%@"65)`
    6TFS1PPM*E$PHOJUPϢʔβʔϓʔϧͷϢʔβʔϓʔϧ*%
    $MJFOU*E$PHOJUPϢʔβʔϓʔϧͷΫϥΠΞϯτ*%
    "VUI1BSBNFUFST\
    64&3/".&ϩάΠϯϢʔβʔ໊
    1"44803%ύεϫʔυ
    4&$3&[email protected])"4)[email protected]
    ^
    ^

    \
    "VUIFOUJDBUJPO3FTVMU\
    "DDFTT5PLFOʜ
    &YQJSFT*Oʜ
    5PLFO5ZQFb#FBSFS`
    3FGSFTI5PLFOʜ
    *E5PLFOʜ
    ^
    ʜ
    ^
    ֤छτʔΫϯ

    View Slide

  25. ۩ମతͳ4&$3&[email protected])"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 = <>


    secret_key = <>


    print('SECRET HASH:’,create_secret_hash(user_name, app_client_id, secret_key))
    ʲࢀߟʳϢʔβʔΞΧ΢ϯτͷαΠϯΞοϓͱ֬ೝγʔΫϨοτϋογϡ஋ͷܭࢉ"NB[PO$PHOJUP
    IUUQTEPDTBXTBNB[[email protected]

    View Slide

  26. )PTUFE6*Λར༻ͨ͠ೝূͷσϞ 26

    View Slide

  27. )PTUFE6*ͷϝϦοτɾσϝϦοτ
    ϝϦοτ
    w ϩάΠϯը໘Λ࡞Βͳͯ͘ྑ͍
    w αΠϯΞοϓը໘ɺύεϫʔυΛ͓๨ΕͰ͔͢ʁը໘΋͋Δ
    w ֎෦*E1͕࢖͑Δ
    σϝϦοτ
    w ϩάΠϯը໘ͷ೔ຊޠԽ΍σβΠϯͷΧελϚΠζʹ੍ݶ͕͋Δ
    w ࣗલͰ࡞Δʹ͸ೝূϑϩʔ͕ෳࡶͰେม
    27

    View Slide

  28. )PTUFE6*Λར༻͢ΔͨΊͷઃఆ
    ϩάΠϯը໘Λ$PHOJUP͕ఏڙ͢ΔͨΊɺ

    $PHOJUPυϝΠϯͷ࡞੒͕ඞཁͰ͢ɻ
    ͜Ε͕)PTUFE6*ͷυϝΠϯʹͳΓ·͢ɻ
    28

    View Slide

  29. $PHOJUPͷ0"VUIϑϩʔ
    )PTUFE6*Λར༻͢Δ৔߹ɺ0"VUIϑϩʔͰτʔΫϯΛ
    औಘ͢Δ͜ͱʹͳΓ·͢ɻ
    29
    0"VUIϑϩʔ໊ આ໌
    "VUIPSJ[BUJPODPEFHSBOU
    ʢೝূίʔυͷ෇༩ʣ
    جຊతʹ࢖༻͕ਪ঑͞ΕΔϑϩʔɻ
    $PHOJUPͰαʔόʔΛ஥հͯ͠τʔΫϯΛऔಘ͢Δ৔߹͸ɺ௨ৗΫϥΠΞϯ
    τγʔΫϨοτΛઃఆͯ͠ར༻͢Δɻ
    41"ͷΑ͏ʹϢʔβʔ͕τʔΫϯΛ௚઀औಘ͢Δ৔߹͸1,$&Λซ༻͢Δ͜
    ͱ͕ਪ঑͞ΕΔɻ
    *NQMJDJUHSBOU
    ʢ҉໧ͷ෇༩ʣ
    "VUIPSJ[BUJPODPEFHSBOUͷ࢖༻͕ෆՄೳͳ৔߹બ୒͢Δɻ

    "VUIPSJ[BUJPODPEFHSBOUͷ࢖༻͕ਪ঑͞ΕΔɻ
    $MJFOUDSFEFOUJBMHSBOU
    ʢΫϥΠΞϯτೝূ৘ใʣ
    ϚγϯؒͷτʔΫϯަ׵͢Δࡍʹ࢖༻͢Δೝূϑϩʔɻ

    ࠓճͷΑ͏ͳΤϯυϢʔβʔ͕ೝূʹ࢖͏ϑϩʔͰ͸ͳ͍ɻ

    View Slide

  30. $PHOJUPͷ0"VUIೝূϑϩʔͱઃఆ
    લड़ͷ0"VUIϑϩʔΛ࢖͏৔߹ɺ

    $PHOJUPͷઃఆͰ࢖༻ΛڐՄ͢Δඞཁ͕͋Γ·͢ɻ
    30
    ʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙ
    w ೝূίʔυ෇༩

    "VUIPSJ[BUJPODPEFHSBOU
    w ҉໧తͳ෇༩

    *NQMJDJUHSBOU

    View Slide

  31. )PTUFE6*Λར༻ͨ͠ೝূͷྲྀΕᶃ 31
    αʔόʔଆͰϩάΠϯը໘ͷੜ੒
    ϩάΠϯը໘΁ͷϦϯΫΛදࣔ

    View Slide

  32. )PTUFE6*Λར༻ͨ͠ೝূͷྲྀΕᶄ 32
    0"VUIϑϩʔͷ։࢝
    ೝՄΤϯυϙΠϯτ΁ϦμΠϨΫτ͔Βͷ
    )PTUFE6*΁ϦμΠϨΫτ

    View Slide

  33. )PTUFE6*Λར༻ͨ͠ೝূͷྲྀΕᶅ 33
    Ϣʔβʔ*%ύεϫʔυʹΑΔϩάΠϯޙ
    $BMMCBDL63-΁ͷϦμΠϨΫτʹΑΓ

    &$΁ೝՄίʔυΛ౉͢

    View Slide

  34. )PTUFE6*Λར༻ͨ͠ೝূͷྲྀΕᶆ 34
    ೝՄίʔυΛ΋ͱʹτʔΫϯΛऔಘ͢Δ

    View Slide

  35. )PTUFE6*Λར༻ͨ͠ೝূͷྲྀΕᶇ 35
    औಘ֤ͨ͠छτʔΫϯΛ
    ηογϣϯ৘ใͱඥ෇͚ͯ
    ηογϣϯ%#΁อଘ

    View Slide

  36. )PTUFE6*Λར༻ͨ͠ೝূͷྲྀΕᶈ 36
    ϩάΠϯޙը໘ͷදࣔ
    ηογϣϯ*%Λ$PPLJFʹอଘ

    View Slide

  37. )PTUFE6*Λར༻ͨ͠ೝূͷྲྀΕᶉ 37
    ηογϣϯ*%ͰϢʔβʔΛࣝผ

    ηογϣϯ%#͔ΒτʔΫϯΛऔಘͯ͠

    Ϣʔβʔݻ༗ͷ৘ใΛදࣔ

    View Slide

  38. )PTUFE6*Λར༻ͨ͠ೝূͰΘ͔Γʹ͍͘෦෼ 38
    ೝূϦΫΤετΛͲ͏͢Ε͹͍͍ͷ͔ʁ
    ೝՄίʔυΛͲ͏΍ͬͯड͚औΕ͹͍͍ͷ͔ʁ
    τʔΫϯϦΫΤετΛͲ͏͢Ε͹͍͍ͷ͔ʁ

    View Slide

  39. ೝূϦΫΤετ 39
    PBVUIBVUIPSJ[FʢೝՄΤϯυϙΠϯτʣʹରͯ͠

    ࣍ͷύϥϝʔλʔΛ(&5ϝιουͰૹ৴͠·͢ɻ
    ύϥϝʔλʔ໊ ࢦఆ͢Δ஋
    [email protected]
    "VUIPSJ[BUJPODPEFHSBOUͷ৔߹ɿDPEFʢೝՄίʔυΛฦ͢ʣ
    *NQMJDJUHSBOUͷ৔߹ɿUPLFOʢτʔΫϯΛ௚઀ฦ͢ʣ
    [email protected] $PHOJUPϢʔβʔϓʔϧͷΞϓϦέʔγϣϯΫϥΠΞϯτ*%
    [email protected]
    ೝՄίʔυΛड͚औΔͨΊͷɺ

    8FCΞϓϦͷϦμΠϨΫτઌ63-ʢྫɿIUUQTFYBNQMFDPNDBMMCBDLʣ
    TDPQF
    ೝূͰ*%τʔΫϯΛར༻͍ͨ͠৔߹ʮPQFOJEʯΛࢦఆ

    ͦͷଞ߲໨ʹ͍ͭͯ͸ຊࢿྉͰ͸ׂѪ͠·͢
    ʲࢀߟʳೝՄΤϯυϙΠϯτ"NB[PO$PHOJUP
    IUUQTEPDTBXTBNB[[email protected][BUJPOFOEQPJOUIUNM

    View Slide

  40. ೝূϦΫΤετͷͨΊͷ$PHOJUPͷઃఆ 40
    ೝূϦΫΤετΛૹΔલʹɺ

    $PHOJUPͷΫϥΠΞϯτΛઃఆ͢Δඞཁ͕͋Γ·͢ɻ
    [email protected]ͱҰகͤ͞Δ
    ʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙʙ
    TDPQFͱҰகͤ͞Δ

    View Slide

  41. DBMMCBDLʹΑΔೝՄίʔυͷड͚औΓ 41
    8FCΞϓϦέʔγϣϯଆͷίʔϧόοΫ63-ʹɺ

    ΫΤϦύϥϝʔλʔͱͯ͠ɺೝՄίʔυ͕౉͞Ε·͢ɻ
    ࣍ͷ༷ͳܗͰίʔϧόοΫ63-ʹϦμΠϨΫτ͞Εɺ

    8FCΞϓϦέʔγϣϯ͸ೝՄίʔυΛड͚औΓ·͢ɻ
    ྫɿhttps://example.com/callback?code=<<ೝՄίʔυ>>

    View Slide

  42. τʔΫϯϦΫΤετ 42
    PBVUIUPLFOʢτʔΫϯΤϯυϙΠϯτʣʹରͯ͠

    1045ϝιουͰૹ৴ͯ͠*%τʔΫϯΛऔಘ͠·͢ɻ
    ύϥϝʔλʔ໊ ࢦఆ͢Δ஋
    [email protected]
    "VUIPSJ[BUJPODPEFHSBOUͷ৔߹ɿBVUIPSJ[[email protected]
    ϦϑϨογϡτʔΫϯͰͷ࠶औಘͷ৔߹ɿ[email protected]
    $MJFOUDSFEFOUJBMHSBOUͷ৔߹ɿ[email protected]
    [email protected] $PHOJUPϢʔβʔϓʔϧͷΞϓϦέʔγϣϯΫϥΠΞϯτ*%
    [email protected] $PHOJUPϢʔβʔϓʔϧͷΞϓϦέʔγϣϯΫϥΠΞϯτγʔΫϨοτ
    [email protected]
    ೝՄΤϯυϙΠϯτͰ࢖༻ͨ͠΋ͷͱಉ͡[email protected]Λࢦఆ
    ʢྫɿIUUQTFYBNQMFDPNDBMMCBDLʣ
    DPEF ΫΤϦύϥϝʔλʔͰड͚औͬͨೝՄίʔυ
    ʲࢀߟʳτʔΫϯΤϯυϙΠϯτ"NB[PO$PHOJUP
    IUUQTEPDTBXTBNB[[email protected]

    View Slide

  43. ຊ౰ͳΒTUBUF΋࢖͍͍͚ͨͲׂѪ͠·͢ 43
    ཁ͸ೝূϦΫΤετΛ࣮ߦͨ͠ਓͱ
    τʔΫϯϦΫΤετΛ࣮ߦ͍ͯ͠Δਓ͕
    ಉҰਓ෺͔ʁͱ͍͏͜ͱΛνΣοΫͯ͠ɺ
    ηΩϡϦςΟΛߴΊ͍ͯΔɻ

    View Slide

  44. ֎෦*E1Λ࢖͍͍ͨ৔߹͸ʁ 44
    w ͍ΘΏΔ(PPHMFͰϩάΠϯΛ࢖͍͍ͨ৔߹͸

    Ͳ͏͢Ε͹Α͍ʁ
    w )PTUFE6*Λར༻͢Ε͹࢖͑·͢ʂ

    View Slide

  45. (PPHMFͰϩάΠϯͷσϞ 45

    View Slide

  46. (PPHMFͰϩάΠϯ͍ͨ࣌͠ͷઃఆ 46
    w ৄ͘͠͸ฐࣾϒϩάΛݟ͍ͯͩ͘͞
    w IUUQTEFWDMBTTNFUIPEKQBSUJDMFTBNB[PODPHOJUPHPPHMFTPDJBMTJHOJO

    View Slide

  47. (PPHMFͰϩάΠϯͷೝূϑϩʔ 47
    (PPHMFͰϩάΠϯ͢Δ෦෼͕ҧ͏͚ͩ
    ॏཁͳͷ͸ϒϥ΢βͷϦμΠϨΫτΛ௨ͯ͠
    (PPHMFͱ$PHOJUP͕ύϥϝʔλʔ஋Λ

    ΍ΓͱΓ͍ͯ͠Δͱ͍͏͜ͱ
    ʲࢀߟʳ)PTUFE6*Λར༻ͨ͠ೝূͷϑϩʔ

    View Slide

  48. ϩάΠϯը໘ࣗ࡞ͭͭ͠(PPHMFϩάΠϯ͸Ͱ͖Δʁ 48
    w ϩάΠϯը໘Λ೔ຊޠʹͭͭ͠

    (PPHMFͰϩάΠϯ͸Ͱ͖ͳ͍ͷʁ
    w Ͱ͖·͢ʂ

    "844%,ͱ)PTUFE6*Λ྆ํ࢖͏

    ϋΠϒϦουߏ੒ʹ͍ͯͩ͘͠͞ɻ

    View Slide

  49. ࣗ࡞ϩάΠϯը໘Ͱ(PPHMFϩάΠϯ͢ΔσϞ 49

    View Slide

  50. )PTUFE6*Λܦ༝͠ͳ͚Ε͹ͳΒͳ͍ʁ 50
    w )PTUFE6*Λܦ༝ͤͣɺ(PPHMFϩάΠϯը໘΁ϦμΠ
    ϨΫτ͢ΔͨΊͷΦϓγϣϯ͕͋Γ·͢ɻ
    w ೝՄΤϯυϙΠϯτͷύϥϝʔλʔʹ
    [email protected](PPHMFΛ͚͍ͭͯͩ͘͞ɻ
    ʲࢀߟʳೝՄΤϯυϙΠϯτ"NB[PO$PHOJUP
    IUUQTEPDTBXTBNB[[email protected][BUJPOFOEQPJOUIUNM

    View Slide

  51. )PTUFE6*Λলུͯ͠(PPHMFϩάΠϯ͢ΔσϞ 51

    View Slide

  52. ೝূϑϩʔͷ࣮૷ɺ΋ͬͱ؆୯ʹͳΒͳ͍ʁ 52
    w "84ͱͯ͠ެࣜϥΠϒϥϦ͸͋Γ·ͤΜɻ
    w 41"ͳΒBNQMJGZKT͕͋Γ·͢ɻ
    w αʔυύʔςΟ੡ͷϥΠϒϥϦΛ୳͍ͯͩ͘͠͞ɻ
    w ͍Ζ͍Ζ͋Γ·͕͢ɺͦͷϥΠϒϥϦΛධՁͰ͖Δ
    ఔ౓ʹ͸$PHOJUPͷೝূϑϩʔͷཧղ͸ඞཁͩͱ
    ࢥͬͯ·͢ɻ

    View Slide

  53. ·ͱΊ 53
    w $PHOJUPΛ8FCΞϓϦέʔγϣϯͷೝূͰ࢖͏ʹ͸
    w "844%,ɼ)PTUFE6*ͱ̎छྨͷϩάΠϯํ๏͕͋Γ·͢
    w ϩάΠϯํ๏ʹ͋ΘͤͨೝূϑϩʔΛཧղ্ͨ͠Ͱͷ࣮૷͕ඞ
    ཁͰ͢
    w (PPHMFϩάΠϯ౳ɺ֎෦*E1Λ࢖͍͍ͨ৔߹͸ɺ

    )PTUFE6*Λར༻͢Δೝূϑϩʔͷ࣮૷͕ඞཁͰ͢ɻ

    ࢖ͬͯͳ͍Α͏ʹݟ͑ͯ΋࢖͍ͬͯ·͢ɻ

    View Slide