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

OAuth2基礎講座

 OAuth2基礎講座

かとじゅん

June 07, 2018
Tweet

More Decks by かとじゅん

Other Decks in Programming

Transcript

  1. ΫϥΠΞϯτొ࿥ཁ݅  w ΫϥΠΞϯτΛࣝผ͢ΔͨΊʹࣄલొ࿥͕ඞਢ w ΫϥΠΞϯτλΠϓ w ίϯϑΟσϯγϟϧΫϥΠΞϯτɻΫϨσϯγϟϧͷ ػີੑΛอ࣋Ͱ͖ΔΫϥΠΞϯτɻओʹαʔόγες Ϝɻ

    w ύϒϦοΫΫϥΠΞϯτɻΫϨσϯγϟϧͷػີੑΛ อ࣋Ͱ͖ͳ͍ΫϥΠΞϯτɻओʹ+4 εϚʔτϑΥϯΞ ϓϦɻ w ΫϥΠΞϯτࣝผࢠ w ΫϥΠΞϯτΛҰҙʹࣝผ͢Δ*%ɻೝՄαʔό͝ͱʹ ϢχʔΫͰͳ͚Ε͹ͳΒͳ͍ɻ
  2. ΫϥΠΞϯτొ࿥ཁ݅  w ϦμΠϨΫτ63*T ඞਢͰ͸ͳ͍  w "VUIPSJ[BUJPO$PEF'MPX w ೝՄϨεϙϯεΛฦ͢ΤϯυϙΠϯτ

    w *NQMJDJU'MPX w ΞΫηετʔΫϯϨεϙϯεΛฦ͢ΤϯυϙΠϯτ w ύϒϦοΫΫϥΠϯτ͓Αͼ*NQMJDJU'MPXΛར༻͢Δίϯ ϑΟσϯγϟϧΫϥΠΞϯτ͸ɺࣄલొ࿥͕ඞਢɻ w ෳ਺ͷ63*Λొ࿥Մೳ w ొ࿥࣌͸ɺ63*ͱͯ͠ͷਖ਼౰ੑΛݕূ͠ͳ͚Ε͹ͳΒͳ͍
  3. ΫϥΠΞϯτೝূ w DMJFOU@JE DMJFOU@TFDSFUΛೝՄαʔόʹ౉ͯ͠ΫϥΠΞϯ τΛೝূ͢Δɻ w ίϯϑΟσϯγϟϧΫϥΠΞϯτͷ৔߹͸ɺඞͣ DMJFOU@TFDSFUΛ֬ೝ͢Δ w ύϒϦοΫΫϥΠΞϯτ΋ΫϥΠΞϯτೝূΛߦͬͯ΋

    Α͍͕ɺΫϥΠΞϯτΛࣝผ͢Δ໨తͰύϒϦοΫΫϥ ΠΞϯτΛ৴པͯ͠͸ͳΒͳ͍ɻඞͣϢʔβೝূΛڬΉ ඞཁ͕͋Δɻ w ΫϨσϯγϟϧ͸ɺ1045ϝιου ϘσΟͰ͍͋ͨΛૹ ৴͢Δํ๏ Ͱɺ)551#BTJDೝূ΋͘͠͸ϑΥʔϜܗࣜ Ͱૹ৴͢Δɻ)5514ඞਢɻ
  4. ೝՄϦΫΤετ  w "VUIPSJ[BUJPO$PEF'MPXͰೝՄίʔυΛऔಘ͢Δ ͨΊͷϦΫΤετɻSFTQPOTF@UZQF͸DPEFͱͳΔɻ w ΫϥΠΞϯτ͕DMJFOU@JE SFEJSFDU@VSJ PQUJPOBM 

    TDPQF PQUJPOBM TUBUF PQUJPOBM ΛೝՄαʔόʹૹ Δ w ೝՄαʔόͰೝূɾೝՄΛߦ͏ w DMJFOU@JE DMJFOU@TFDSFU΋͘͠͸ɺೝՄαʔό্Ͱ ؅ཧ͍ͯ͠ΔϢʔβΫϨσϯγϟϧͰೝূ͢Δɻ w ͦͷΫϥΠΞϯτʹڐՄ͞Ε͍ͯΔ4DPQFʹର͢ ΔΞΫηεΛೝՄ͢Δɻ
  5. ೝՄϦΫΤετ  w TDPQF PQUJPOBM  w ೝՄΛड͚ΔείʔϓɻείʔϓྫʹFNBJM  QSPpMF

    SFBE XSJUFͳͲɻ w TDPQFͰࢦఆͨ͠είʔϓʹؔ͢Δ৘ใ͕ೝՄαʔ ό͔ΒΫϥΠΞϯτʹ౉͞ΕΔ͜ͱʹͳΔɻ
  6. ೝՄϦΫΤετ  w SFEJSFDU@VSJ PQUJPOBM  w 63*ͱͯ͠ͷਖ਼౰ੑΛݕূ͠ͳ͚Ε͹ͳΒͳ͍ w ҎԼͷέʔεͷ৔߹ɺೝՄϦΫΤετʹSFEJSFDU@VSJύϥϝʔλ͕ඞ

    ਢ w ϦμΠϨΫτ63*͕ෳ਺ొ࿥͞Ε͍ͯΔ w ϦμΠϨΫτ63*ͷҰ෦ͷΈ͕ొ࿥͞Ε͍ͯΔ ύεͷΈͳͲ  w DBMMCBDL w ͦ΋ͦ΋ϦμΠϨΫτ63*͕ొ࿥͞Ε͍ͯͳ͍ w ొ࿥ࡁΈͷϦμΠϨΫτ63*͕͋Ε͹গͳ͘ͱ΋ҰͭͱҰக͠ͳ͚Ε ͹ͳΒͳ͍ɻ w ϑϧ63*͕ొ࿥͞Ε͍ͯΔ৔߹͸׬શҰகΛݕূ͠ͳ͚Ε͹ͳΒͳ͍ɻ
  7. ೝՄϦΫΤετ  w TUBUF PQUJPOBM  w ೝՄίʔυஔ͖׵͑߈ܸΛ๷͙ͨΊͷύϥϝʔλɻෆ༻ ҙʹೝՄϨεϙϯεΛड͚औΔͱɺஔ͖׵͑ͷϦεΫ͕ ͋Δɻ

    w ϦΫΤετ࣌ͷTUBUFͱϨεϙϯε࣌ͷTUBUF͕ಉҰ͔ݕ ূ͢Δɻͭ·Γɺࣗ෼͕ૹͬͨϦΫΤετʹର͢ΔϨε ϙϯεͰ͋Δ͔Λ൑ผ͢ΔɻͨͩɺೝՄίʔυ͕ຊ౰ʹ ࣗ෼Ѽʹൃߦ͞Εͨ΋ͷ͔Ͳ͏͔஌Δ͜ͱ͕Ͱ͖ͳ͍ɻ w TUBUF͸ྨਪෆೳͰ͔ͭ$PPLJFͳͲͷΫϥΠΞϯτηο γϣϯʹඥ෇͍ͨ஋Ͱ͋Δ͜ͱɻ w ͨͩ͠ɺ࣮૷͸ΫϥΠΞϯτͷ೚ҙͱ͍͏੍໿͕͋Δɻ
  8. ΞΫηετʔΫϯϦΫΤετ w ೝՄίʔυΛجʹɺΞΫηετʔΫϯΛऔಘ͢ΔͨΊͷϦΫΤε τ w ΫϥΠΞϯτ͕DPEF SFEJSFDU@VSJ PQUJPOBM ΛೝՄαʔόʹૹΔɻ w

    ೝՄϦΫΤετ࣌ʹSFEJSFDU@VSJΛࢦఆͨ͠৔߹͸SFEJSFDU@VSJ ͸ඞਢ w ΫϥΠΞϯτೝূ w ίϯϑΟσϯγϟϧΫϥΠΞϯτ͸ඞਢɻͦͷଞͷΫϥΠΞϯ τ͸ೝূͯ͠΋Α͍ɻ w ೝՄίʔυ͕ൃߦ͞ΕͨDMJFOU@JEͰ͋Δ͜ͱΛ֬ೝ͢Δɻ w SFEJSFDU@VSJ͕ࢦఆ͞Ε͍ͯΔ৔߹͸ɺೝՄϦΫΤετ࣌ͷ΋ͷ ͱಉҰ͔ݕূ͢Δඞཁ͕͋Δɻ
  9. ೝՄϦΫΤετ w SFTQPOTF@UZQF͸UPLFOͱͳΔɻ w ΫϥΠΞϯτ͕DMJFOU@JE SFEJSFDU@VSJ PQUJPOBM  TDPQF PQUJPOBM

    TUBUF PQUJPOBM ΛೝՄαʔόʹૹ Δ w ೝՄαʔόͰೝূɾೝՄΛߦ͏ w DMJFOU@JE DMJFOU@TFDSFU΋͘͠͸ɺೝՄαʔό্Ͱ ؅ཧ͍ͯ͠ΔϢʔβΫϨσϯγϟϧͰೝূ͢Δɻ w ͦͷΫϥΠΞϯτʹڐՄ͞Ε͍ͯΔ4DPQFʹର͢ ΔΞΫηεΛೝՄ͢Δɻ
  10. ύϒϦοΫΫϥΠΞϯτʹDMJFOU@TFDSFUΛຒΊࠐΈ w ΫϥΠΞϯτೝূʹ༻͍ΔɺDMJFOU@TFDSFUΛύϒϦοΫΫϥΠΞϯ τʹຒΊࠐΉ w /BUJWFΞϓϦͰIUUQTͰ΋$IBSMFTͳͲͷπʔϧΛ࢖͏ͱൈ͚· ͢ɻ w +4ͷ৔߹͸ϒϥ΢βΤΫεςϯγϣϯͰൈ͚·͢ɻ w

    ύϒϦοΫΫϥΠΞϯτ͸DMJFOU@TFDSFUΛอଘ͠ͳ͍Α͏ʹ͢Δɻ w 'BDFCPPLͷ৔߹͸ɺ'BDFCPPLΞϓϦܦ༝Ͱೝূ͍ͯ͠ΔΒ͠ ͍ w "VUIPSJ[BUJPO$PEF'MPXͳΒɺ/BUJWF"QQ +4"QQ͕0"VUIΫ ϥΠΞϯτʹͳΔ΂͖Ͱ͸ͳ͍ɻ΋͘͠͸*NQMJDJU'MPXΛ࢖͏ɻ
  11. ଞࣾͷରԠঢ়گ αʔϏε ରԠϑϩʔ උߟ (PPHMF "VUIPSJ[BUJPO$PEF'MPX *NQMJDJU'MPX 0QFO*%$POOFDUʹ΋ରԠ ϓϩτίϧ࢓༷ΛΈΔͱɺ0"VUIͱ0QFO*%$POOFDUʹ͋Δ΋ͷ͸͢΂ͯαϙ ʔτ͞Ε͍ͯΔͱࢥΘΕΔ

    TUBUFύϥϝʔλར༻Մ  ೋஈ֊ೝূʹରԠ ΞΫηετʔΫϯݕূ༻ΤϯυϙΠϯτ͕͋Δɻ*%τʔΫϯΛ࢖͏৔߹͸ར༻͢ Δඞཁ͕ͳ͍ɻ %FWFMPQFS$POTPMFͰ͸ΞΫηετʔΫϯΛഁغͰ͖ͳ͍ɻ 0QFO*%$POOFDUͷP⒐JOF@BDDFTTʹରԠɻσϑΥϧτͰແޮͰ͋Γɺ SFGSFTI@UPLFO͸෷͍ग़͞Εͳ͍ ೝূը໘ΛεΩοϓͨ͠Γɺڧ੍తʹϩάΠϯͤͨ͞ΓͰ͖ΔQSPNQU͕ར༻Մ 'BDFCPPL "VUIPSJ[BUJPO$PEF'MPX *NQMJDJU'MPX 4%,͕༻ҙ͞Ε͍ͯΔɻ΋ͪΖΜͦΕΛ࢖Θͳ͍ͰΠϯςάϨʔγϣϯ͢Δ͜ͱ ΋Ͱ͖Δɻ TUBUFύϥϝʔλʹରԠ͍ͯ͠Δɻ ΞΫηετʔΫϯݕূ༻ΤϯυϙΠϯτ͕͋Δɻ+85ͱࣅͨ+40/͕ฦͬͯ͘ Δɻ 5XJUUFS 0"VUI $MJFOU$SFEFOUJBMT'MPX ೝূ͸0"VUIͷΤϯυϙΠϯτͰՄೳɻͦͷޙʹೝՄϦΫΤετΛߦ͏ɻ 0"VUIͷ3FRVFTU5PLFO4FDSFUͰ$43'ରࡦΛߦ͏ ΞΫηετʔΫϯΛແޮԽ͢Δ"1*͕͋Δɻ 4MBDL "VUIPSJ[BUJPO$PEF'MPX TUBUFύϥϝʔλʹରԠ͍ͯ͠Δɻ SFGSFTI@UPLFO FYQJSFT@JO͕αϙʔτ͞Ε͍ͯͳ͍ɻظݶ͸ແݶ͔ɻVTFS*OGP ΤϯυϙΠϯτΛ࢖͑͹ɺΫϥΠΞϯτͰΞΫηετʔΫϯͷݕূ͕Մೳɻ·ͨ ͲͷϢʔβ޲͚ͷ΋ͷ͔΋֬ೝ͢Δ͜ͱ͕Ͱ͖Δɻͭ·Γೝূɻ ؅ཧը໘͔ΒΞΫηετʔΫϯΛແޮʹͰ͖ΔɻΞΫηετʔΫϯ͕ແݶͰ͋Δ ৔߹͸ඞਢɻ .BOBHFˠʮ4JHOJOXJUI4MBDLʯ͸ɺνʔϜ͝ͱʹ0/0''Մೳɻ "1*αΠτ͔ΒΫϥΠΞϯτొ࿥͕ࣗ༝ʹͰ͖ΔɻΫϥΠΞϯτొ࿥Λېࢭ͢Δ ػೳ͸ͳ͍ɻ