Drupal×Auth0 開発レスでセキュアなID管理を試してみた! / 20200214

Drupal×Auth0 開発レスでセキュアなID管理を試してみた! / 20200214

Transcript

  1. Drupal×Auth0 ։ൃϨεͰηΩϡΞͳ
 ID؅ཧΛࢼͯ͠Έͨʂ ؙࢁ ͻ͔Δ

  2. ؙࢁͻ͔Δ • ಠཱܥιϑτ΢ΣΞ։ൃձࣾͰ
 ιϑτ΢ΣΞΤϯδχΞ
 ͷͪΤόϯδΣϦετͱͯ͠
 ϓϩμΫτͷܒ໤׆ಈ • 2019೥8݄ ΞΫΠΞʹδϣΠϯ
 Developer

    Relations ୲౰ • Drupalྺɿ2019೥8݄ʙ Ruby / Rails / Web API / Docker / AWS ϥʔϝϯ / εΠʔπ / Ωϟϯϓ൧ / ొࢁ ࣗݾ঺հ
  3. Կ΍ͬͯΔͷʁ • Drupalೝఆࢼݧͷ೔ຊޠ൛ͷϩʔϯν ◦ ࡢ೥11݄ʮΞΫΠΞೝఆαΠτϏϧμʔ – Drupal 8ʯެ։ ◦ ͋ͱ3ͭͷࢼݧΛ3݄຤·Ͱʹެ։༧ఆ

    • ೝఆऀΠϯλϏϡʔهࣄॻ͍ͯ·͢ • DrupalϋϯζΦϯ ◦ ఆظతʹ։࠵ ࢓ࣄͷ࿩
  4. × ೝূ ೝՄ

  5. ඪ४ػೳʹ౥ࡌ • Ϣʔβʔ࡞੒ • ϩάΠϯɺϩάΞ΢τ • Ϣʔβʔ؅ཧ • ݖݶ؅ཧ •

    ...etc DrupalͷID؅ཧ
  6. • ৽نϢʔβʔͷ֫ಘ ◦ ձһొ࿥࣌ͷ཭୤཰ͷܰݮ ◦ ஈ֊తͳ৘ใೖྗ • طଘϢʔβʔͷLTV ◦ طଘϢʔβʔͷ࠶๚཰

    ◦ ϢʔβϏϦςΟͷ޲্ έʔε1 : BtoC޲͚EίϚʔε
  7. • ৽نϢʔβʔͷ֫ಘ ◦ ձһొ࿥࣌ͷ཭୤཰ͷܰݮ ◦ ஈ֊తͳ৘ใೖྗ • طଘϢʔβʔͷLTV ◦ طଘϢʔβʔͷ࠶๚཰

    ◦ ϢʔβϏϦςΟͷ޲্ έʔε1 : BtoC޲͚EίϚʔε ιʔγϟϧϩάΠϯ
  8. • SaaSɺΫϥ΢υαʔϏεͷ૿Ճ • IDύεϫʔυͷ؅ཧ͕൥ࡶ • ηΩϡϦςΟϦεΫ έʔε2 : BtoB޲͚ετϨʔδαʔϏε

  9. • SaaSɺΫϥ΢υαʔϏεͷ૿Ճ • IDύεϫʔυͷ؅ཧ͕൥ࡶ • ηΩϡϦςΟϦεΫ έʔε2 : BtoB޲͚ετϨʔδαʔϏε SSOʢγϯάϧαΠϯΦϯʣ

  10. • SSO • ιʔγϟϧϩάΠϯ • ଞཁૉೝূʢMFAʣ • ϩʔϧϕʔεΞΫηε੍ޚʢRBACʣ • ύεϫʔυϨε

    • ෆਖ਼ΞΫηεݕ஌ • ϩά෼ੳ • ...etc ΄͔ʹ΋͍Ζ͍ΖೝূɾೝՄ DrupalͰ Ͳ͏ରԠ͢Δʁ
  11. ೝূɾೝՄϓϥοτϑΥʔϜ Amazon Cognito

  12. ×

  13. ೝূɾೝՄϓϥοτϑΥʔϜ Auth0

  14. ೝূɾೝՄϓϥοτϑΥʔϜ Auth0 ແྉͰ৭ʑͰ͖Δ

  15. ೝূɾೝՄϓϥοτϑΥʔϜ Auth0 ެࣜϞδϡʔϧ ͋ͬͨʂ

  16. × ࢼͯ͠Έͨʂ

  17. # 1. Composerܦ༝ͰDrupalΠϯετʔϧ $ composer create-project drupal/recommended-project drupal-and-auth0 $ cd

    drupal-and-auth0 # 2. Auth0ϞδϡʔϧΛΠϯετʔϧ $ composer require drupal/auth0 ϞδϡʔϧΛΠϯετʔϧ
  18. Auth0ʹαΠϯΠϯ • Auth0ʹαΠϯΠϯ ◦ auth0.com • ແྉɺΫϨδοτΧʔυͷొ࿥ͳ͠Ͱ
 ར༻Մೳ

  19. ΞϓϦέʔγϣϯ࡞੒

  20. ΞϓϦέʔγϣϯ࡞੒ • SettingsͰ৭ʑઃఆ͢Δ ◦ Allowed Callback URLs : http://localhost:5656/auth0/ callback

    ◦ Allowed Web Origins : http://localhost:5656 ◦ Allowed Logout URLs : http://localhost:5656 ◦ Allowed Origins (CORS) : http://localhost:5656
  21. Drupalଆͷઃఆ • Auth0ͷઃఆը໘Ͱ৭ʑઃఆ ◦ υϝΠϯ ◦ Client ID ◦ Client

    Secret ◦ JsonWebToken Signature Algorithm
  22. 1 2 ͳͥDrupalͳͷ͔ʁ 3 DrupalʹϞδϡʔϧΛ Πϯετʔϧ Auth0ΞΧ΢ϯτ࡞੒ͱ ΞϓϦέʔγϣϯઃఆ DrupalଆͷAuth0ઃఆ 3εςοϓͰઃఆ׬ྃʂ

  23. ͳͥDrupalͳͷ͔ʁ ࢼͯ͠ΈΔͦͷ1 : αΠϯΞοϓ

  24. ͳͥDrupalͳͷ͔ʁ ࢼͯ͠ΈΔͦͷ1 : αΠϯΞοϓ αΠϯΞοϓ Ͱ͖ͨʂ

  25. ͳͥDrupalͳͷ͔ʁ ࢼͯ͠ΈΔͦͷ1 : αΠϯΞοϓ Auth0ͷ؅ཧը໘ͰϢʔβʔ৘ใ͕ΈΕΔ

  26. ͳͥDrupalͳͷ͔ʁ ࢼͯ͠ΈΔͦͷ2 : Drupalʹొ࿥ࡁΈͷΞΧ΢ϯτͰϩάΠϯ

  27. ͳͥDrupalͳͷ͔ʁ ࢼͯ͠ΈΔͦͷ2 : Drupalʹొ࿥ࡁΈͷΞΧ΢ϯτͰϩάΠϯ ϩάΠϯͰ͖ͨʂ

  28. ͳͥDrupalͳͷ͔ʁ ࢼͯ͠ΈΔͦͷ3 : ϩάΞ΢τ

  29. ͳͥDrupalͳͷ͔ʁ ࢼͯ͠ΈΔͦͷ2 : Drupalʹొ࿥ࡁΈͷΞΧ΢ϯτͰϩάΠϯ ϩάΞ΢τ Ͱ͖ͨʂ

  30. ͳͥDrupalͳͷ͔ʁ ·ͱΊ • ֎෦ͷೝূೝՄϓϥοτϑΥʔϜΛ࢖ͬͯ
 Drupalʹ։ൃϨεͰηΩϡΞͳID؅ཧΛ࣮ݱ • ࠓճࢼͯ͠Έͨखॱ͸QiitaͰެ։ ◦ https://qiita.com/hmaruyama/items/69abaddf8e4d95793a8f

  31. None