Slide 1

Slide 1 text

1 Granular Permissionsで実現する、 もっとsecureなBtoB Slack App開発 ɹɹʛɹɹ© 2020 PLAID Inc. 2020.02.04ɹɹʛɹɹ2020 Kick-off Meetup @ Slack Japanɹɹʛɹ

Slide 2

Slide 2 text

2 2020.02.04ɹɹʛɹɹ2020 Kick-off Meetup @ Slack Japanɹɹʛɹ ɹɹʛɹɹ© 2020 PLAID Inc. ⾃⼰紹介 池上 純平 株式会社プレイド プロダクトスペシャリスト エンジニア 採⽤ 元富⼠通 ポッドキャスター 若⼿エンジニアキャリア⽀援 書籍執筆 完全⾷ イベント司会 twitter : @jumpei_ikegami 29

Slide 3

Slide 3 text

本⽇のテーマ 3 ɹɹʛɹɹ© 2020 PLAID Inc. 2020.02.04ɹɹʛɹɹ2020 Kick-off Meetup @ Slack Japanɹɹʛɹ Granular Permissionsで 実現する、 もっとsecureな BtoB Slack App開発 作ったもの これまで Granular permissions 対応⽅法 今後 まとめ 話すこと

Slide 4

Slide 4 text

4 2020.02.04ɹɹʛɹɹ2020 Kick-off Meetup @ Slack Japanɹɹʛɹ ɹɹʛɹɹ© 2020 PLAID Inc. 会社紹介 その前に

Slide 5

Slide 5 text

ɹɹʛɹɹ© 2019 PLAID Inc. 5 yyyy.mm.ddɹɹʛɹɹEvent name hereɹɹʛɹ 株式会社プレイドについて 株式会社プレイド 東京都中央区銀座6-10-1 GINZA SIX 10F 設⽴:2011年10⽉ 従業員:130名 資本⾦:1億円 ※資本準備⾦含む

Slide 6

Slide 6 text

6 2020.02.04ɹɹʛɹɹ2020 Kick-off Meetup @ Slack Japanɹɹʛɹ ɹɹʛɹɹ© 2020 PLAID Inc. KARTEについて $9 ސ٬ମݧ ϓϥοτϑΥʔϜ

Slide 7

Slide 7 text

7 2020.02.04ɹɹʛɹɹ2020 Kick-off Meetup @ Slack Japanɹɹʛɹ ɹɹʛɹɹ© 2020 PLAID Inc. KARTEについて ֬ೝ͢Δ جຊαʔϏε΍͝ར༻ํ๏Λ͝঺հ͠·͢ɻ ͓ಘͳಛయ΍໾ཱͭ৘ใ͕ຬࡌͰ͢ɻ ॳΊͯͷํ΁ ְתּׅ然钠ׅ׷ 6*رؠ؎ش٦׌ֽוזַזַ♳麦׃זְծ➙ ״׶إٔؗ،حف׃׋ְהְֲ倯䗳铣דׅկ UIرؠ؎ش٦ָ濼׏גֶֻץֹ 7אךرؠ؎ٕٝ٦ٕ DESIGN RULES » CHECK ׆׏ה⢪ִ׷،؎ذي׌ֽ׾䲧ִת׃׋կ ֿך堣⠓׾ֶ鋅鷕׃זֻկ 窫㼎ծ 妜׃ְ ౙͷओ໾ɺ Ξ΢λʔ COLLECTION OUTER 嗚稊勴⟝׾㼰׃㢌刿ׅ׷׌ֽדծ֮ז׋ך椚 䟝ך暟⟝ח⳿⠓ִ׷〳腉䚍ָ넝ֻז׶תׅկ 勴⟝׾㢌ִג嗚稊׃ג׫גֻ׌ְׁկ ׀䋞劄ך暟⟝כ 鋅אַ׶תׇ׿ד׃׋ַ ꟗׄ׷ ⼀⼈⼀⼈に合わせた 顧客体験を提供 Webサイトの訪問者の⾏動を 顧客ごとにリアルタイムに解析 $9 ސ٬ମݧ ϓϥοτϑΥʔϜ

Slide 8

Slide 8 text

8 2020.02.04ɹɹʛɹɹ2020 Kick-off Meetup @ Slack Japanɹɹʛɹ ɹɹʛɹɹ© 2020 PLAID Inc. Stats of KARTE Real-time, Large-Scale, Global sec to real-time actions 0.x events per day 3 billion stored in BigQuery 2+ PB datasets for clients 2000+ events (rows) / sec 65,000 streaming insert per month 1 PB analysis per month 60+ PB slots with flat Rate US & JP 6000

Slide 9

Slide 9 text

本⽇のテーマ 9 ɹɹʛɹɹ© 2020 PLAID Inc. 2020.02.04ɹɹʛɹɹ2020 Kick-off Meetup @ Slack Japanɹɹʛɹ Granular Permissionsで 実現する、 もっとsecureな BtoB Slack App開発 作ったもの これまで Granular permissions 対応⽅法 今後 まとめ 話すこと

Slide 10

Slide 10 text

10 2020.02.04ɹɹʛɹɹ2020 Kick-off Meetup @ Slack Japanɹɹʛɹ ɹɹʛɹɹ© 2020 PLAID Inc. 作ったもの

Slide 11

Slide 11 text

11 2020.02.04ɹɹʛɹɹ2020 Kick-off Meetup @ Slack Japanɹɹʛɹ ɹɹʛɹɹ© 2020 PLAID Inc. KARTE構成図 ΤϯυϢʔβʔ ΫϥΠΞϯτଆ γεςϜ SDK … … ΞΫγϣϯ σʔλ ΞΫγϣϯ ΞΫγϣϯ Πϕϯτσʔλ όονσʔλ όονσʔλ Πϕϯτσʔλ WebαΠτ ωΠςΟϒΞϓϦ ֎෦αʔϏε WebαΠτ ܭଌλά API call Webhook

Slide 12

Slide 12 text

12 2020.02.04ɹɹʛɹɹ2020 Kick-off Meetup @ Slack Japanɹɹʛɹ ɹɹʛɹɹ© 2020 PLAID Inc. 作ったもの γεςϜ௨஌ Ϩϙʔτ௨஌

Slide 13

Slide 13 text

13 2020.02.04ɹɹʛɹɹ2020 Kick-off Meetup @ Slack Japanɹɹʛɹ ɹɹʛɹɹ© 2020 PLAID Inc. 作ったもの デモ

Slide 14

Slide 14 text

14 2020.02.04ɹɹʛɹɹ2020 Kick-off Meetup @ Slack Japanɹɹʛɹ ɹɹʛɹɹ© 2020 PLAID Inc. 作ったもの これは。。。

Slide 15

Slide 15 text

15 2020.02.04ɹɹʛɹɹ2020 Kick-off Meetup @ Slack Japanɹɹʛɹ ɹɹʛɹɹ© 2020 PLAID Inc. 作ったもの _⼈⼈⼈⼈⼈⼈⼈⼈⼈⼈_ > ただの通知アプリ <  ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^ ̄

Slide 16

Slide 16 text

16 2020.02.04ɹɹʛɹɹ2020 Kick-off Meetup @ Slack Japanɹɹʛɹ ɹɹʛɹɹ© 2020 PLAID Inc. 作ったもの そんな、ただの通知アプリの Permission scopesを考える話

Slide 17

Slide 17 text

作ったもの 17 ɹɹʛɹɹ© 2020 PLAID Inc. 2020.02.04ɹɹʛɹɹ2020 Kick-off Meetup @ Slack Japanɹɹʛɹ ⼀般的な通知アプリに 必要なscope channels:read groups:read chat:write files:write

Slide 18

Slide 18 text

ɹɹʛɹɹ© 2020 PLAID Inc. 18 2020.02.04ɹʛɹ2020 Kick-off Meetup @ Slack Japanɹʛɹ ⼼穏やかに⾒られる要求scope数 oauth画⾯ 作ったもの

Slide 19

Slide 19 text

本⽇のテーマ 19 ɹɹʛɹɹ© 2020 PLAID Inc. 2020.02.04ɹɹʛɹɹ2020 Kick-off Meetup @ Slack Japanɹɹʛɹ Granular Permissionsで 実現する、 もっとsecureな BtoB Slack App開発 作ったもの これまで Granular permissions 対応⽅法 今後 まとめ 話すこと

Slide 20

Slide 20 text

これまで 20 ɹɹʛɹɹ© 2020 PLAID Inc. 2020.02.04ɹɹʛɹɹ2020 Kick-off Meetup @ Slack Japanɹɹʛɹ これまでのSlackの Botに与えられたscope bot

Slide 21

Slide 21 text

ɹɹʛɹɹ© 2020 PLAID Inc. 21 2020.02.04ɹʛɹ2020 Kick-off Meetup @ Slack Japanɹʛɹ bot⽤scopeの中⾝は、 約25種類の scopeの集合体。 。 。 oauth画⾯ これまで

Slide 22

Slide 22 text

これまで 22 ɹɹʛɹɹ© 2020 PLAID Inc. 2020.02.04ɹɹʛɹɹ2020 Kick-off Meetup @ Slack Japanɹɹʛɹ 開発者の気持ち こんなに権限貰っても、 扱いをミスったときの ことを考えると怖い

Slide 23

Slide 23 text

これまで 23 ɹɹʛɹɹ© 2020 PLAID Inc. 2020.02.04ɹɹʛɹɹ2020 Kick-off Meetup @ Slack Japanɹɹʛɹ クライアントの システム管理者の気持ち なんで通知アプリなのに こんなにscopeを取得し てるんだ ?怪しい。 インストールしたくない

Slide 24

Slide 24 text

これまで 24 ɹɹʛɹɹ© 2020 PLAID Inc. 2020.02.04ɹɹʛɹɹ2020 Kick-off Meetup @ Slack Japanɹɹʛɹ KARTEを使う クライアント企業の 広がり 最初は中規模ECが多 かったが、 最近は⾦融 ・ 保険業界や⽇系⼤企業 にも導⼊が進んできた

Slide 25

Slide 25 text

これまで 25 ɹɹʛɹɹ© 2020 PLAID Inc. 2020.02.04ɹɹʛɹɹ2020 Kick-off Meetup @ Slack Japanɹɹʛɹ Slackを使う クライアント企業の 広がり(予想) 最初は⼩規模Tech系企 業が多かったが、 最近は エンタープライズにも導 ⼊が進んできた

Slide 26

Slide 26 text

これまで 26 ɹɹʛɹɹ© 2020 PLAID Inc. 2020.02.04ɹɹʛɹɹ2020 Kick-off Meetup @ Slack Japanɹɹʛɹ エンタープライズの セキュリティチェック 個⼈情報流出によるイン パクトが⼤きくなってお り、 年々厳しくなっている (気がする)

Slide 27

Slide 27 text

27 2020.02.04ɹɹʛɹɹ2020 Kick-off Meetup @ Slack Japanɹɹʛɹ ɹɹʛɹɹ© 2020 PLAID Inc. これまで もっと、もっと細かい権限設定を。。。

Slide 28

Slide 28 text

本⽇のテーマ 28 ɹɹʛɹɹ© 2020 PLAID Inc. 2020.02.04ɹɹʛɹɹ2020 Kick-off Meetup @ Slack Japanɹɹʛɹ Granular Permissionsで 実現する、 もっとsecureな BtoB Slack App開発 作ったもの これまで Granular permissions 対応⽅法 今後 まとめ 話すこと

Slide 29

Slide 29 text

29 2020.02.04ɹɹʛɹɹ2020 Kick-off Meetup @ Slack Japanɹɹʛɹ ɹɹʛɹɹ© 2020 PLAID Inc. Granular permissions https://medium.com/slack-developer-blog/more-precision-less-restrictions-a3550006f9c3

Slide 30

Slide 30 text

30 2020.02.04ɹɹʛɹɹ2020 Kick-off Meetup @ Slack Japanɹɹʛɹ ɹɹʛɹɹ© 2020 PLAID Inc. Granular permissions "Granular permissions now available for Slack apps"

Slide 31

Slide 31 text

Granular permissions 31 ɹɹʛɹɹ© 2020 PLAID Inc. 2020.02.04ɹɹʛɹɹ2020 Kick-off Meetup @ Slack Japanɹɹʛɹ Granularとは? 粒(状)の、 顆粒(かり ゅう)状の、 (表⾯が)ざらざらした

Slide 32

Slide 32 text

Granular permissions 32 ɹɹʛɹɹ© 2020 PLAID Inc. 2020.02.04ɹɹʛɹɹ2020 Kick-off Meetup @ Slack Japanɹɹʛɹ Granular permissions とは? "We’ve redesigned the bot token with a revised permissions model called granular permissions."

Slide 33

Slide 33 text

Granular permissions 33 ɹɹʛɹɹ© 2020 PLAID Inc. 2020.02.04ɹɹʛɹɹ2020 Kick-off Meetup @ Slack Japanɹɹʛɹ Granular permissions とは? Bot周りの権限を細かく 設定できるようになった

Slide 34

Slide 34 text

34 2020.02.04ɹɹʛɹɹ2020 Kick-off Meetup @ Slack Japanɹɹʛɹ ɹɹʛɹɹ© 2020 PLAID Inc. Granular permissions https://medium.com/slack-developer-blog/introducing-the-slack-app-toolkit-3d509a15f41b

Slide 35

Slide 35 text

Granular permissions 35 ɹɹʛɹɹ© 2020 PLAID Inc. 2020.02.04ɹɹʛɹɹ2020 Kick-off Meetup @ Slack Japanɹɹʛɹ the Slack app toolkit Permissions Block Kit Surfaces(App Home/Modal) Actions

Slide 36

Slide 36 text

Granular permissions 36 ɹɹʛɹɹ© 2020 PLAID Inc. 2020.02.04ɹɹʛɹɹ2020 Kick-off Meetup @ Slack Japanɹɹʛɹ the Slack app toolkit Permissions Block Kit Surfaces(App Home/Modal) Actions

Slide 37

Slide 37 text

Granular permissions 37 ɹɹʛɹɹ© 2020 PLAID Inc. 2020.02.04ɹɹʛɹɹ2020 Kick-off Meetup @ Slack Japanɹɹʛɹ the Slack app toolkit 実は2019/10から オープンβが始まっていた

Slide 38

Slide 38 text

Granular permissions 38 ɹɹʛɹɹ© 2020 PLAID Inc. 2020.02.04ɹɹʛɹɹ2020 Kick-off Meetup @ Slack Japanɹɹʛɹ Granular permissions 以前 bot (という名の最強のscope)

Slide 39

Slide 39 text

Granular permissions 39 ɹɹʛɹɹ© 2020 PLAID Inc. 2020.02.04ɹɹʛɹɹ2020 Kick-off Meetup @ Slack Japanɹɹʛɹ Granular permissions 以後 channels:read groups:read chat:write files:write など個別に設定可能

Slide 40

Slide 40 text

Granular permissions 40 ɹɹʛɹɹ© 2020 PLAID Inc. 2020.02.04ɹɹʛɹɹ2020 Kick-off Meetup @ Slack Japanɹɹʛɹ KARTEの Slack Appの場合 App新規リリースの 少し前に Granular permissions の存在を知り、 既存のソースコードを 修正した

Slide 41

Slide 41 text

本⽇のテーマ 41 ɹɹʛɹɹ© 2020 PLAID Inc. 2020.02.04ɹɹʛɹɹ2020 Kick-off Meetup @ Slack Japanɹɹʛɹ Granular Permissionsで 実現する、 もっとsecureな BtoB Slack App開発 作ったもの これまで Granular permissions 対応⽅法 今後 まとめ 話すこと

Slide 42

Slide 42 text

対応⽅法 42 ɹɹʛɹɹ© 2020 PLAID Inc. 2020.02.04ɹɹʛɹɹ2020 Kick-off Meetup @ Slack Japanɹɹʛɹ Slack App管理画⾯の "OAuth & Permissions" Granular Permission に切り替え、 必要なscopeだけに絞る

Slide 43

Slide 43 text

43 2020.02.04ɹɹʛɹɹ2020 Kick-off Meetup @ Slack Japanɹɹʛɹ ɹɹʛɹɹ© 2020 PLAID Inc. 対応⽅法

Slide 44

Slide 44 text

44 2020.02.04ɹɹʛɹɹ2020 Kick-off Meetup @ Slack Japanɹɹʛɹ ɹɹʛɹɹ© 2020 PLAID Inc. 対応⽅法

Slide 45

Slide 45 text

対応⽅法 45 ɹɹʛɹɹ© 2020 PLAID Inc. 2020.02.04ɹɹʛɹɹ2020 Kick-off Meetup @ Slack Japanɹɹʛɹ OAuth URL Pathを v2に変更 before: https://slack.com/oauth/authorize? after: https://slack.com/oauth/v2/authorize?

Slide 46

Slide 46 text

対応⽅法 46 ɹɹʛɹɹ© 2020 PLAID Inc. 2020.02.04ɹɹʛɹɹ2020 Kick-off Meetup @ Slack Japanɹɹʛɹ OAuth URLに含める scopeを変更 before: https://slack.com/oauth/authorize ?scope=bot after: https://slack.com/oauth/v2/authorize ?scope=channels:read,groups:read,...

Slide 47

Slide 47 text

対応⽅法 47 ɹɹʛɹɹ© 2020 PLAID Inc. 2020.02.04ɹɹʛɹɹ2020 Kick-off Meetup @ Slack Japanɹɹʛɹ access tokenを取得する methodをv2に変更 before: oauth.access after: oauth.v2.access

Slide 48

Slide 48 text

対応⽅法 48 ɹɹʛɹɹ© 2020 PLAID Inc. 2020.02.04ɹɹʛɹɹ2020 Kick-off Meetup @ Slack Japanɹɹʛɹ oauth.v2.accessは oauth.accessと Responseが異なる (細かい) before: response.bot.bot_access_token after: response.access_token

Slide 49

Slide 49 text

対応⽅法 49 ɹɹʛɹɹ© 2020 PLAID Inc. 2020.02.04ɹɹʛɹɹ2020 Kick-off Meetup @ Slack Japanɹɹʛɹ その後、 ユーザーに再認証を 依頼 access_tokenの Refreshが必要

Slide 50

Slide 50 text

50 2020.02.04ɹɹʛɹɹ2020 Kick-off Meetup @ Slack Japanɹɹʛɹ ɹɹʛɹɹ© 2020 PLAID Inc. 対応⽅法 対応は簡単!!!

Slide 51

Slide 51 text

本⽇のテーマ 51 ɹɹʛɹɹ© 2020 PLAID Inc. 2020.02.04ɹɹʛɹɹ2020 Kick-off Meetup @ Slack Japanɹɹʛɹ Granular Permissionsで 実現する、 もっとsecureな BtoB Slack App開発 作ったもの これまで Granular permissions 対応⽅法 今後 まとめ 話すこと

Slide 52

Slide 52 text

52 2020.02.04ɹɹʛɹɹ2020 Kick-off Meetup @ Slack Japanɹɹʛɹ ɹɹʛɹɹ© 2020 PLAID Inc. 今後 https://medium.com/slack-developer-blog/more-precision-less-restrictions-a3550006f9c3

Slide 53

Slide 53 text

今後 53 ɹɹʛɹɹ© 2020 PLAID Inc. 2020.02.04ɹɹʛɹɹ2020 Kick-off Meetup @ Slack Japanɹɹʛɹ 新規App "Starting February 21, 2020, the App Directory will require newly submitted apps to use granular permissions."

Slide 54

Slide 54 text

今後 54 ɹɹʛɹɹ© 2020 PLAID Inc. 2020.02.04ɹɹʛɹɹ2020 Kick-off Meetup @ Slack Japanɹɹʛɹ 既存App "Existing Slack apps on the App Directory must update by the end of 2020."

Slide 55

Slide 55 text

55 2020.02.04ɹɹʛɹɹ2020 Kick-off Meetup @ Slack Japanɹɹʛɹ ɹɹʛɹɹ© 2020 PLAID Inc. 今後

Slide 56

Slide 56 text

56 2020.02.04ɹɹʛɹɹ2020 Kick-off Meetup @ Slack Japanɹɹʛɹ ɹɹʛɹɹ© 2020 PLAID Inc. 今後

Slide 57

Slide 57 text

本⽇のテーマ 57 ɹɹʛɹɹ© 2020 PLAID Inc. 2020.02.04ɹɹʛɹɹ2020 Kick-off Meetup @ Slack Japanɹɹʛɹ Granular Permissionsで 実現する、 もっとsecureな BtoB Slack App開発 作ったもの これまで Granular permissions 対応⽅法 今後 まとめ 話すこと

Slide 58

Slide 58 text

まとめ 58 ɹɹʛɹɹ© 2020 PLAID Inc. 2020.02.04ɹɹʛɹɹ2020 Kick-off Meetup @ Slack Japanɹɹʛɹ まとめ •権限周りのアップデートによっ て、 必要なscopeだけをpick できるようになった •Granular permissionsへの 対応は⽐較的簡単 •既存Appも、 2020年中に対応 が必要

Slide 59

Slide 59 text

No content