Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

FirebaseでN高生証明botを作ってみた

245 views

Published on

第26回 学生エンジニアLT大会!!! in 東京 https://student-lt.connpass.com/event/130936/ にて発表させてもらった内容です。

Published in: Technology
  • Be the first to comment

  • Be the first to like this

FirebaseでN高生証明botを作ってみた

  1. 1. Firebaseで N高生証明bot 作ってみた N高等学校 キャリア開発部 プログラミング教育課 課長 吉村総一郎 (@sifue)
  2. 2. 2 あんた誰? 吉村総一郎 (@sifue) ハンドルネームの読み方はしふー N高のプログラミング教育の責任者 元ニコ生の開発リーダー よく書く言語 JavaScript/Scala 趣味は競技系ネトゲ LoL/クラロワ
  3. 3. 某高校内Slackにて 3
  4. 4. というわけで Twitter アカウントが N高生であるということを 証明するbotを作ることに 4
  5. 5. Firebaseなるものが 流行ってるらしい 5 ● 無料のクラウドサービス ● 爆速でWebアプリ/スマホアプリ作れる これはやるしかない!
  6. 6. 大体一週間後、完成! 6https://n-high-auth.firebaseapp.com/
  7. 7. どんな動きをするのか? 7 1. N高のGoogleアカウントでログイン 2. 今ログインしているTwitter情報を取得 3. 両セッション情報確認してボットが証明ツイート
  8. 8. 8 そもそも N高等学校って何? ● 2016年にできた通信制のネットの高校 ● 今や生徒数1万人 ● 通学キャンパスも日本に13キャンパス ● プログラミングクラスという、プロエンジニアの元、プロ グラミングを通じた制作を1日やる通学クラスもある ● 生徒にはnnn.ed.jpというドメインのGoogleアカウントが 配布されてそれでSlackやAdobeCCに認証して使う
  9. 9. Googleアカウント使えば、 TwitterアカウントがN高生 だと証明できるんじゃない? という安易な発想 9
  10. 10. 10 今回使った Firebaseって何? Webアプリやスマホアプリのバックエンドを簡単に作れる mBaaSという種類のクラウド環境。各言語に対応。 ● 外部認証管理 (Authentication) ● サーバーサイド処理 (Functions) ● NoSQLのデータベース (Firestore) ● 静的コンテンツ配信 (Hosting) 他にも沢山あって、必要なものが一通り揃っててすごい!
  11. 11. 11 そんなFirebaseの 価格は無料! 無料で使えるが、一応リソース制限があり、Functions から外部のWebAPIを実行するのは有料だった。 今回の要件だと、Twitterと通信しないと証明ツイート ができない...。どうしよう...。
  12. 12. 課金が全てを解決する! 12 💰
  13. 13. 13 Firebaseの 課金プラン ● Flame 月額$25固定 ● Blaze 従量課金、ただしアクセスが無ければタダ。 無論Blazeを選択。なお、Blazeでは1日の利用制限ができ、 最低$1なので、アクセスされまくると月$30まで行く。 なお、Kyashなどのプリペイドクレジットカードは登録でき ず...。VISAのデビットカードなら行けるらしい?(高校生向 け情報、要確認)。なお今の所、お金はかかってない。
  14. 14. 実際に実装した認証のシーケンス図 14
  15. 15. 大体1日で実装できた! Firebaseすごい! 15 💪💪💪
  16. 16. 16 ここからは 本当は怖いFirebase👻 ❗❗❗ ❗❗❗ ❗❗
  17. 17. Firebaseの脆弱性で1億件 以上の個人情報流出!? 17 👻👻👻
  18. 18. 18 なんとFirebase、 デフォルトでFirestoreが全公開状態! ● テストモードとロックモードがある ● デフォルトのテストモードは、どのクライアントからも データを閲覧、更新、削除可能👻 ● ただしセキュリティールールを設定すれば大丈夫!
  19. 19. 19 このプロジェクトでは、 FunctionsからしかFirestoreアクセスで きないようにfirestore.ruleを設定 ● これで安心! ● ちなみにこのプロジェクトで は連投防止、事件時の対応の ためにアカウント関連はDBに 保存してあるので、漏れたら 非常に危険でした。
  20. 20. ちなみに保存しているTwitterアカウン トとGoogleアカウントの紐付け上は警 察に令状と共に求められたりしない限 りは、教職員や生徒にも開示しません ので、安心して利用ください。 20 ��
  21. 21. 21 N高生証明botはISC Licenseで コード公開中。ぜひ見てみてください。 https://github.com/sifue/n-high-auth https://n-high-auth.firebaseapp.com/ sifue/n-high-auth N高生証明botのサイト
  22. 22. 22 最後に宣伝!ドワンゴ及びN高では、 学生プログラマのアルバイトを募集中! ● 大学生/大学院生プログラマ向け ○ ドワンゴのN予備校 プログラミング教材制作 ○ N高等学校 通学TA (大学生インターン) ● N高生プログラマ向け ○ 小中学生向けプログラミングスクールNeppsの講師 ■ 学内の案内メールを参照のこと
  23. 23. 以上 ご清聴ありがとうございました! 吉村総一郎 ● N高等学校 キャリア開発部 プログラミング教育課 課長 ● @sifue ● https://www.soichiro.org 23

×