Slide 1

Slide 1 text

αʔόʔϨεͳ ϢʔβʔೝূೝՄͷߟྀࣄ߲ͱ ࣮ફతϓϥΫςΟε঺հ 4FSWFSMFTT0QFSBUJPOT 4POV,JN

Slide 2

Slide 2 text

ࣗݾ঺հ ۚɹઋ༏4POV,JN $00BU4FSWFSMFTT0QFSBUJPOT *OD "84$PNNVOJUZ#VJMEFSTd 4FSWFSMFTT 4FSWFSMFTT+1͓Αͼ άϩʔόϧ"84ίϛϡχςΟͰ׆ಈத

Slide 3

Slide 3 text

,FZUBLFBXBZT αʔόʔϨεͳ΢ΣϒΞϓϦέʔγϣϯߏ੒ͷಛੑͱߟྀ͢΂͖ࣄ߲ αʔόʔϨεͷಛੑΛ౿·͑ͨΞϓϩʔνͱରԠํ๏ جຊͱͳΔ΢Σϒඪ४ͷٕज़ཁૉʢ$PPLJF $034ʣ

Slide 4

Slide 4 text

ࣄલʹ͓఻͓͖͍͑ͯͨ͜͠ͱ 0"VUI͓Αͼ0QFO*%$POOFDUͷجຊతͳഎܠ஌͕ࣝ͋Δͱྑ͍Ͱ͕͢ɺඞਢͰ͸͋ Γ·ͤΜ ೝূɾೝՄͷ֓೦ͦͷ΋ͷͷઆ໌ΑΓ΋ɺݱ৔ʹ͓͍ͯٞ࿦ʹͳΓ΍͍͢ τʔΫϯϥΠϑαΠΫϧʹϑΥʔΧεΛ౰ͯΒΕ͍ͯ·͢ɻ ΞʔΩςΫνϟͷઆ໌͸جຊతʹ"84ϝΠϯʹͳͬͯ͠·͍·͢ɻओཁΫϥ΢υϕϯ μʔͷαʔϏεʹஔ͖׵͑ͯΠϝʔδ͍͚ͯͨͩ͠Ε͹ͱࢥ͍·͢ɻ

Slide 5

Slide 5 text

αʔόʔϨεͳ΢ΣϒΞϓϦέʔγϣϯͷجຊߏ੒ #SPXTFS $MPVE'SPOU 4 "1*(BUFXBZ -BNCEB %ZOBNP%# 41" 8FC"1* 8FC$MJFOU IUUQTXFCFYBNQMFDPN IUUQTBQJFYBNQMFDPN

Slide 6

Slide 6 text

ϩάΠϯػೳΛ௥Ճ͍ͨ͠ɾɾʁ ϢʔβʔϩάΠϯը໘ $MPVE'SPOU 4 "1*(BUFXBZ -BNCEB %ZOBNP%# 41" 8FC"1* #SPXTFS 8FC$MJFOU

Slide 7

Slide 7 text

*%1SPWJFSબఆ $MPVE'SPOU 4 "1*(BUFXBZ -BNCEB %ZOBNP%# 41" 8FC"1* #SPXTFS 8FC$MJFOU "NB[PO$PHOJUP "VUI .JDSPTPGU&OUSB*% چ"[VSF"% (PPHMF ଞʹ΋ɺ,FZDMPBL "VUIMFUF "LBNBJ&""*%1ͳͲɾɾɾ

Slide 8

Slide 8 text

*%1SPWJEFS౷߹ͷྫ #SPXTFS 8FC$MJFOU $MPVE'SPOU 4 "1*(BUFXBZ -BNCEB %ZOBNP%# 41" 8FC"1* *%1SPWJEFS "NB[PO$PHOJUP "VUIPSJ[BUJPO4FSWFS ʢೝՄαʔόʔʣ IUUQTBQJFYBNQMFDPN IUUQTXFCFYBNQMFDPN IUUQTDPHOJUPJEQBQ OPSUIFBTUBNB[POBXTDPN

Slide 9

Slide 9 text

*%1SPWJEFS౷߹ͷྲྀΕʢ0*%$"VUIPSJ[BUJPO$PEFGMPXʣ #SPXTFS 8FC$MJFOU $MPVE'SPOU 4 41" *%1SPWJEFS "NB[PO$PHOJUP Ϣʔβʔೝূʢ*%1"44 FUDʣ 0, -PDBUJPODBMMCBDL DPEFTUBUF (&5DBMMCBDL DPEFTUBUF 0, 1045UPLFO XDPEF "VUIPSJ[BUJPO4FSWFS *%1SPWJEFS "NB[PO$PHOJUP 0, X"DDFTT5PLFO 3FGSFTI5PLFO *%5PLFO ˞*%1SPWJEFS͕ΞϓϦೝՄαʔόʔͷ ػೳ΋݉Ͷͯఏڙ͍ͯ͠Δ͜ͱ͕ଟ͍

Slide 10

Slide 10 text

*%1SPWJEFS౷߹ͷྲྀΕʢ0*%$"VUIPSJ[BUJPO$PEFGMPXʣ #SPXTFS 8FC$MJFOU 1045UPLFO XDPEF "VUIPSJ[BUJPO4FSWFS "NB[PO$PHOJUP "1*(BUFXBZ -BNCEB %ZOBNP%# 3FTPVSDF4FSWFS 8FC"1* (&5VTFSTNF "VUIPSJ[BUJPO#FBSFS\"DDFTT5PLFO^ 200 OK { “userId”: “…” } 200 OK { “accessToken”: “…”, “refreshToken”: “…”, “idToken”: “…” }

Slide 11

Slide 11 text

$PHOJUPΛར༻͢Δͱ͖ʹ೰·͍͜͠ͱ #SPXTFS 8FC$MJFOU 1045UPLFO XDPEF "VUIPSJ[BUJPO4FSWFS "NB[PO$PHOJUP "1*(BUFXBZ -BNCEB %ZOBNP%# 3FTPVSDF4FSWFS 8FC"1* (&5VTFSTNF "VUIPSJ[BUJPO#FBSFS\"DDFTT5PLFO^ 200 OK { “userId”: “…” } 200 OK { “accessToken”: “…”, “refreshToken”: “…”, “idToken”: “…” }

Slide 12

Slide 12 text

τʔΫϯΛ8FC4UPSBHFʹೖΕͯ͸͍͚ͳ͍Β͍͠ɾɾɾʁ

Slide 13

Slide 13 text

τʔΫϯ͸$PPLJFʹೖΕΔͷ͕҆શΒ͍͠ɾɾʁ ˞+4͔ΒΞΫηεͰ͖ͳ͍Α͏ ʹ͢Δʮ)UUQ0OMZʯଐੑ෇͖ Ͱͳ͍ͱɺ8FC 4UPSBHF ར༻ ͱ͋·ΓมΘΒͳ͍ʢʹ944 ରԠࡦͱͯ͠༗ޮͰ͸ͳ͍ʣ ˞ʮ4FDVSFʯଐੑ෇͖ͷ৔߹ )5514௨৴࣌ͷΈ $PPLJFΛૹ৴͢Δଐੑʢ944ରԠࡦͱͯ͠༗ޮ Ͱ͸ͳ͍ʣ

Slide 14

Slide 14 text

αʔόʔϨεͱ͍͏ಛघੑͱ੍໿Λߟ͑Δ ೝՄαʔόʔ͔Β΋ΒͬͨτʔΫϯΛ҆શʹอଘ͢Δ৔ॴʹ೰·͞ΕΔ αʔόʔ͕ͳ͍41"ߏ੒Ͱ͸ΫϩεΦϦδϯͰ)UUQ0OMZଐੑ෇͖ͷ$PPLJFΛѻ͏खஈ͕ͳ͍ αʔόʔϨεͱ͍͏ΑΓ41"ͷ໰୊͕ͩɺ຺ུ͸ಉ͡ )UUQ0OMZଐੑ෇͖ͷ$PPLJFʹೖΕΔํ๏Λߟ͑Δ 0*%$४ڌɺ+85ͳͲϞμϯͳೝূೝՄͷ࢓૊Έʹґଘ͠ͳ͚Ε͹ͳΒͳ͍ ಠࣗ࢓༷ɾೝূΛ௥Ճ͢Δ΄Ͳɺ"VUIPSJ[FSػೳ͕ར༻Ͱ͖ͳ͘ͳΔ ݁Ռɺ఻౷తͳηογϣϯػߏ΁ͷճؼʹͳΓ΍͘͢ɺ εςʔτϑϧͳγεςϜߏ੒ʹͳΓ΍͍͢

Slide 15

Slide 15 text

τʔΫϯϥΠϑαΠΫϧͷߟ͑ํ ͲͷΑ͏ͳϢʔβʔܦݧΛ༩͑ ηΩϡϦςΟʹؔͯ͠Ͳͷਫ४·ͰΛߟྀ͢Δ͔ͱ͍ͬͨૂ͍Λ໌֬ʹఆΊΔ

Slide 16

Slide 16 text

ϢʔβʔܦݧΛߟྀͨ͠Ξϓϩʔνݕ౼ Ұ౓ϩάΠϯͨ͠ޙɺຖ೔࢖͍ͬͯΕ͹࠶ϩάΠϯΛٻΊͳ͍ Ұ౓ϩάΠϯͨ͠ޙɺिʹճʗ݄ʹճͰ΋࢖͍ͬͯΕ͹ɺ࠶ϩάΠϯΛٻΊͳ͍ Ұ౓ϩάΠϯͨ͠ޙɺϲ݄Ҏ಺͸࠶ϩάΠϯͤͣར༻Ͱ͖Δ͕ɺ݄ʹճ͸ඞͣ࠶ϩάΠϯ͕ඞཁ ϒϥ΢βΛ։ͨ͘ͼʹ࠶ϩάΠϯΛٻΊΔ

Slide 17

Slide 17 text

ೝূɾೝՄτʔΫϯͷछྨ ΞΫηετʔΫϯʢ0"VUIʣ ϦϑϨογϡτʔΫϯʢ0"VUIʣ "1*ΤϯυϙΠϯτʢϦιʔεαʔόʔʣ΁ͷΞΫηε ৽͍͠ΞΫηετʔΫϯɾ*%τʔΫϯͷൃߦ *%τʔΫϯʢ0*%$ʣ ೝূࡁΈϢʔβʔͰ͋Δ͜ͱΛূ໌͠ɺϢʔβʔ৘ใΛؚΉ

Slide 18

Slide 18 text

఻౷తͳηογϣϯػߏ͔ΒͷมԽ #SPXTFS $PPLJF 8FC4FSWFS "VUIPSJ[BUJPO 4FSWFS 3FTPVSDF 4FSWFS #SPXTFS 4FTTJPO "DDFTTUPLFO Set-Cookie: session={session}; httponly; Cookie: session={session} 200 OK { “accessToken”: “…”, “refreshToken”: “…”, “idToken”: “…” } 200 OK { “orderId”: “…”, “time”: “…”, “items”: [ … ] } POST /token code={code} GET /orders Authorization: Bearer {access_token}

Slide 19

Slide 19 text

+85ʢ+40/8FC5PLFOʣͷεςʔτϨεੑ ॺ໊ ʢൿີݤʣ ݕূ ʢެ։ݤʣ *%1SPWJEFS

Slide 20

Slide 20 text

+85ʢ+40/8FC5PLFOʣ"VUIPSJ[FSͷྫ #SPXTFS 8FC$MJFOU "1*(BUFXBZ *%1SPWJEFS *%1SPWJFS $PSF %JTDPWFSZ FOEQPJOU XFMMLOPXO +85 ᶄ+85ͷॺ໊Λݕূ ʢ7BMJEBUJPOʣ ᶃljwks_uriz Λݟ͚ͭΔ

Slide 21

Slide 21 text

%JTDPWFSZ&OEQPJOU XFMMLOPXO { "issuer": "https://accounts.google.com", "authorization_endpoint": "https://accounts.google.com/o/oauth2/v2/auth", "token_endpoint": "https://oauth2.googleapis.com/token", "userinfo_endpoint": "https://openidconnect.googleapis.com/v1/userinfo", "revocation_endpoint": "https://oauth2.googleapis.com/revoke", "jwks_uri": "https://www.googleapis.com/oauth2/v3/certs", "response_types_supported": [ “code", "token", "id_token", ... ], "id_token_signing_alg_values_supported": [ "RS256" ], "scopes_supported": [ "openid", "email", "profile", ... ], "token_endpoint_auth_methods_supported": [ "client_secret_post", "client_secret_basic" ], "claims_supported": [ "aud", "iat", "sub", ... ], "code_challenge_methods_supported": [ "plain", "S256" ], "grant_types_supported": [ "authorization_code", "refresh_token", ... ] } { "keys": [ { "kid": "d7b939771a7800c413f90051012d975981916d71", "n": "...", "e": "AQAB", "use": "sig", "alg": "RS256", "kty": "RSA" }, { "kid": "b2620d5e7f132b52afe8875cdf3776c064249d04", "n": "...", "e": "AQAB", "alg": "RS256", "use": "sig", "kty": "RSA" } ] } IUUQTBDDPVOUTHPPHMFDPNXFMMLOPXOPQFOJEDPO fi HVSBUJPO KXLT@VSJ

Slide 22

Slide 22 text

τʔΫϯϥΠϑαΠΫϧ؅ཧઓུ ύλʔϯ ΞΫηε τʔΫϯͷར༻ ϦϑϨογϡ τʔΫϯͷར༻ ϦϑϨογϡτʔΫϯͷ ϩʔςʔγϣϯ Ϣʔεέʔεͷྫ ߟྀࣄ߲ ᶃΞΫηετʔΫͷΈར༻ ᶄΞΫηετʔΫϯͱϦϑ ϨογϡτʔΫϯΛར༻ ʢϩʔςʔγϣϯͳ͠ʣ ᶅΞΫηετʔΫϯͱϦϑ ϨογϡτʔΫϯΛར༻ ʢϩʔςʔγϣϯ͋Γʣ ̋ ̋ ̋ ʷ ̋ ̋ ʷ ʷ ̋ গ த ଟ w ϒϥ΢βΛ։ͨ͘ͼʹ࠶ϩάΠϯ͕ ٻΊΒΕΔ w ར༻ස౓͸݄ʹճఔ౓ w Ұ౓ϩάΠϯͨ͠ޙɺ࠶ϩάΠϯͤͣ ར༻Ͱ͖Δ͕ɺ݄ʹճ͸ඞͣ࠶ϩά Πϯ͕ඞཁ w ར༻ස౓͸݄ʹ਺ճఔ౓ w Ұ౓ϩάΠϯͨ͠ޙɺ࠶ϩάΠϯͤͣ ར༻Ͱ͖Δ͕ɺҰఆظؒʢʙ਺ϲ ݄ʣա͗ͨΒ࠶ϩάΠϯ͕ඞཁ w جຊతʹຖ೔ʗຖि࢖͍ͬͯΕ͹࠶ϩ άΠϯΛٻΊͳ͍

Slide 23

Slide 23 text

τʔΫϯͷอଘ৔ॴ #SPXTFS *O.FNPSZ4UPSF 8FC4UPSBHF $PPLJF MPDBM4UPSBHF TFTTJPO4UPSBHF )UUQ0OMZͳ͠ )UUQ0OMZ͋Γ "DDFTTUPLFO "DDFTTUPLFO 3FGSFTIUPLFO "DDFTTUPLFO "DDFTTUPLFO 3FGSFTIUPLFO "DDFTTUPLFO 3FGSFTIUPLFO

Slide 24

Slide 24 text

41"Ͱ)UUQ0OMZଐੑ෇͖$PPLJFΛѻ͏ͨΊʹ஌͓ͬͯ͘΂͖͜ͱ $PPLJFͷ࢓༷ʢಛʹ)UUQ0OMZଐੑ෇͖$PPLJFͷ෇༩ɾडऔํ๏ʣ ݫ֨ͳ$034ϙϦγʔ

Slide 25

Slide 25 text

$PPLJFʹ͍ͭͯ஌͓͖͍ͬͯͨ͜ͱ #SPXTFS #SPXTFS 4FSWFS 4FSWFS (&5IUUQTFYBNQMFDPN 0, 4FU$PPLJFTFTTJPO@JEQBUITFDVSFʜ (&5IUUQTFYBNQMFDPN $PPLJFTFTTJPO@JE

Slide 26

Slide 26 text

$PPLJFʹ͍ͭͯ஌͓͖͍ͬͯͨ͜ͱ $PPLJFଐੑ ಺༰ &YQJSFT .BY"HF %PNBJO 1BUI 4FDVSF )UUQ0OMZ 4BNF4JUF w ༗ޮظݶ w ༗ޮظݶ·Ͱͷඵ਺ w ૹ৴ର৅ͷυϝΠϯ໊ w ૹ৴ର৅ͷύε w )5514௨৴࣌ͷΈૹ৴ w +BWB4DSJQUͰऔಘͰ͖ͳ͍Α͏ʹ͢Δ w ΫϩεαΠτͰͷૹ৴Մ൱ͱൣғΛࢦఆ

Slide 27

Slide 27 text

$PPLJFʹ͍ͭͯ஌͓͖͍ͬͯͨ͜ͱ

Slide 28

Slide 28 text

41"8FC"1*Ͱ͸ɺΫϩεΦϦδϯߏ੒͕جຊͱͳΔ #SPXTFS ˞"VUIؚΉҰ෦ͷ*%1SPWJEFSΛআ͘ 41" 8FC"1* *%1SPWJEFS IUUQTXFCFYBNQMFDPN IUUQTBQJFYBNQMFDPN IUUQTDPHOJUPJEQBQOPSUIFBTUBNB[POBXTDPN )UUQ0OMZଐੑͷ$PPLJFΛΫϩεΦϦδϯͰѻ͏ʹ͸ɺݫ֨ͳ$034ϙϦγʔͷରԠ͕ඞཁ

Slide 29

Slide 29 text

41"8FC"1*Ͱ$PPLJFΛѻ͏৔߹ͷߏ੒ྫ #SPXTFS ˞"VUIؚΉҰ෦ͷ*%1SPWJEFSΛআ͘ 41" 8FC"1* *%1SPWJEFS IUUQTXFCFYBNQMFDPN IUUQTBQJFYBNQMFDPN IUUQTDPHOJUPJEQBQOPSUIFBTUBNB[POBXTDPN )UUQ0OMZଐੑͷ$PPLJFΛΫϩεΦϦδϯͰѻ͏ʹ͸ɺݫ֨ͳ$034ϙϦγʔͷରԠ͕ඞཁ IUUQTBVUIFYBNQMFDPN Set-Cookie: token={token}; Domain=.example.com; httponly; secure; SameSite=Lax; Cookie: token={token} Cookie: token={token}

Slide 30

Slide 30 text

$034ͷجຊΛཧղ͢Δ ϦΫΤετͰ͖ͯɺ Ϩεϙϯε΋ਖ਼ৗʹಧ͍͍ͯΔ͸ͣͳͷʹɺ ͳͥத਎͕֬ೝͰ͖ͳ͍ɾɾʁ

Slide 31

Slide 31 text

$034ͷجຊΛཧղ͢Δ #SPXTFS $PSF 4FSWFS ϦΫΤετ 1SFGMJHIU3FRVFTU 015*0/4 "DDFTT$POUSPM"MMPX0SJHJOb` 0SJHJObFYBNQMFDPN` ࣮ࡍͷϦΫΤετ "DDFTT$POUSPM"MMPX0SJHJOb` Ϩεϙϯε $MJFOU ʢ+4ʣ

Slide 32

Slide 32 text

)UUQ0OMZଐੑ෇͖$PPLJFΛѻ͏ͨΊͷ$034ߏ੒ #SPXTFS $PSF 4FSWFS 1SFGMJHIU3FRVFTU 015*0/4 "DDFTT$POUSPM"MMPX0SJHJO\PSJHJO^ 0SJHJObFYBNQMFDPN` ࣮ࡍͷϦΫΤετ Ϩεϙϯε $MJFOU ʢ+4ʣ "DDFTT$POUSPM"MMPX$SFEFOUJBMTUSVF ϦΫΤετ "DDFTT$POUSPM"MMPX$SFEFOUJBMTUSVF "DDFTT$POUSPM"MMPX$SFEFOUJBMTUSVF "DDFTT$POUSPM"MMPX0SJHJO\PSJHJO^

Slide 33

Slide 33 text

)UUQ0OMZଐੑ෇͖$PPLJFΛѻ͏ͨΊͷ$034ߏ੒ʢ"1*(BUFXBZʣ 015*0/4͓Αͼ֤Ϧιʔεͷલϝ ιουʹద༻͢Δඞཁ͕͋Δ 015*0/4ͷ৔߹͸"1*(BUFXBZʹϔομʔΛ ηοτ͠ɺ֤ϦιʔεͷશϝιουͷϨεϙϯε ʢ˞-BNCEBͷ࣮૷಺ʣʹ΋ؚΊΔඞཁ͕͋Δ

Slide 34

Slide 34 text

)UUQ0OMZଐੑ෇͖$PPLJFΛѻ͏ͨΊͷ$034ߏ੒ʢ"84-BNCEBʣ ˞"1*(BUFXBZ͚ͩͰͳ͘ ʢ015*0/4͚ͩͰͳ͘ʣɺ "84-BNCEBͷϨεϙϯεʹ ΋$034ϔομʔΛؚΉඞཁ͕ ͋Δ

Slide 35

Slide 35 text

5PLFO"1*ͷϨεϙϯεྫ

Slide 36

Slide 36 text

Ϧιʔε"1*Ϩεϙϯεͷྫʢ"84-BNCEBʣ ˞"1*(BUFXBZ͚ͩͰͳ͘ʢ015*0/4͚ͩͰͳ͘ʣɺ "84-BNCEBͷϨεϙϯεʹ΋$034ϔομʔΛؚΉ ඞཁ͕͋Δ

Slide 37

Slide 37 text

)UUQ0OMZଐੑ෇͖$PPLJFΛѻ͏ͨΊͷ$034ߏ੒ʢΫϥΠΞϯτଆʣ ˞)UUQ0OMZଐੑͷ$PPLJFΛؚΊͯ ϦΫΤετΛૹ৴͢Δ

Slide 38

Slide 38 text

)UUQ0OMZଐੑ෇͖$PPLJFΛѻ͏ͨΊͷ$034ߏ੒ʢΫϥΠΞϯτଆʣ 4FSWFS 1SFGMJHIU 015*0/4 ͷྫ $034͕ద༻͞Εͨ(&5ϦΫΤετͷྫ

Slide 39

Slide 39 text

)UUQ0OMZଐੑ෇͖$PPLJFΛѻ͏ͨΊͷ$034ߏ੒ ˞-BNCEBͷFWFOUQBZMPBE͔ΒDPPLJFΛऔಘͰ͖Δ

Slide 40

Slide 40 text

"84αʔόʔϨεͷ5PLFO"1*1SPYZߏ੒ͷྫ

Slide 41

Slide 41 text

"84αʔόʔϨεͷ5PLFO"1*1SPYZߏ੒ͷྫ Location: / Set-Cookie: token={token}; Httponly; secure; ˞ϦιʔεαʔόʔͱೝՄαʔόʔΛ෼཭͍ͯ͠Δ৔߹͸ɺ $034ϔομʔ΋ฦ٫ඞཁ

Slide 42

Slide 42 text

ൃߦࡁΈτʔΫϯͷແޮԽʢ3FWPDBUJPOʣ ϞμϯΞϓϦέʔγϣϯ։ൃͰར༻͞ΕΔ *% 1SPWJFS ͸ɺΞΫηετʔΫϯͷແޮԽ ํ๏͸ఏڙ͞Εͳ͍ ϦϑϨογϡτʔΫϯͷແޮԽํ๏͸ఏڙ͞ΕΔ εςʔτϨεͳτʔΫϯͷಛੑ্ɺϒϥοΫϦετํ͕ࣜ༗ޮ ˞"84ʹೃછΈͷ͋Δํ͸ɺ"84454ͳͲͰൃߦͨ͠Ұ࣌తͳೝূ৘ใΛແޮԽ͢Δ ϙϦγʔద༻ͷΞϓϩʔν͕ࢀߟʹͳΓ·͢ɻ IUUQTEPDTBXTBNB[PODPNKB@KQ*".MBUFTU6TFS(VJEFJE@DSFEFOUJBMT@UFNQ@DPOUSPMBDDFTT@EJTBCMFQFSNTIUNM

Slide 43

Slide 43 text

ࢀߟ 3FEVDFSJTLCZJNQMFNFOUJOH)UUQ0OMZDPPLJFBVUIFOUJDBUJPOJO"NB[PO"1*(BUFXBZ IUUQTBXTBNB[PODPNKQCMPHTTFDVSJUZSFEVDFSJTLCZJNQMFNFOUJOHIUUQPOMZDPPLJFBVUIFOUJDBUJPOJOBNB[POBQJHBUFXBZ )PXUPJNQMFNFOU)UUQ0OMZDPPLJFBVUIFOUJDBUJPOJO"NB[PO"1*(BUFXBZ IUUQTHJUIVCDPNBXTTBNQMFTBQJHXIUUQPOMZDPPLJFBVUI #FTU1SBDUJDFTGPS4UPSJOH"DDFTT5PLFOTJOUIF#SPXTFS IUUQTDVSJUZNFEJVNDPNCFTUQSBDUJDFTGPSTUPSJOHBDDFTTUPLFOTJOUIFCSPXTFSCEE 5PLFO#FTU1SBDUJDFT IUUQTBVUIDPNEPDTTFDVSFUPLFOTUPLFOCFTUQSBDUJDFT $POGJHVSF4JMFOU"VUIFOUJDBUJPO IUUQTBVUIDPNEPDTBVUIFOUJDBUFMPHJODPOGJHVSFTJMFOUBVUIFOUJDBUJPO

Slide 44

Slide 44 text

αʔόʔϨεͰ Ϋϥ΢υͷՁ஋Λ࠷େݶʹ Serverless Operations ͸͜Ε·ͰάϩʔόϧͷୈҰઢͰ ഓ͖ͬͯͨΫϥ΢υٕज़ɺΞϚκϯ΢ΣϒαʔϏε ʢ"84ʣͷ๛෋ͳ࣮੷ͱ஌ݟΛ׆͔͠ɺ͓٬͞·ͷ αʔόʔϨεʹؔ͢Δ͞·͟·ͳ՝୊Λղܾ͠· ͢ɻ ձࣾ঺հ serverless.co.jp

Slide 45

Slide 45 text

serverless.co.jp