組織と権限とSlack App / slack-app-with-roles

297a42b94a1bda236982ec1cd81089b6?s=47 mottox2
December 12, 2019

組織と権限とSlack App / slack-app-with-roles

Ginza.SlackApp #1のLT資料です。

297a42b94a1bda236982ec1cd81089b6?s=128

mottox2

December 12, 2019
Tweet

Transcript

  1. 2019.12.12 Ginza.SlackApp #1 / @mottox2 組織と権限と Slack App

  2. アプリケーションエンジニア Gatsby, Gridsome, Next.js, etc Challange Every Monthメンバーです お仕事 Watching

    mottox2 @ ؿٔ٦ٓٝأ8FCؒٝآص، ⾃⼰紹介 ひとこと
  3. #ginza_slackapp 技術書同⼈誌博覧会(技書博) ‣ 第⼆回 技術書同⼈誌博覧会 ‣ 12/14(⼟) 11:00~17:00 / 当⽇⼊場者

    14:00~ ‣ プラザマーム(⽇本橋浜町)
  4. #ginza_slackapp 作っているもの ‣ 作っているものは⾄極単純。 ‣ ⾒本誌提出されたタイミングで通知。 ‣ 任意のタイミングで⼀覧を確認するコマンド。 ‣ 今⽇は作る過程で考えていることを話に来ました。

  5. #ginza_slackapp 作っているもの ‣ 作っているものは⾄極単純。 ‣ ⾒本誌提出されたタイミングで通知。 ‣ 任意のタイミングで⼀覧を確認するコマンド。 ‣ 今⽇は作る過程で考えていることを話に来ました。

  6. #ginza_slackapp 技書博アプリ アーキテクチャ Slack App

  7. None
  8. #ginza_slackapp ⾒本誌回収・確認 ‣ サークル参加者から運営に⾒本誌として提出を⾏う。 ‣ 「健全なコンテンツ」の担保を⽬的として⾏っている。 ‣ 法律に則っているかはもちろん、社会通念上問題ないかを確認する。 ‣ 性表現や暴⼒表現、誰かの知的財産権を侵害、犯罪を助⻑するものでないか。

    ‣ イベント当⽇、物理本を提出。または、事前に電⼦版を提出する。 ‣ ファイルのURLにアクセスするにはFirebaseに問い合わせする必要がある。 達成したいこと
  9. #ginza_slackapp どこに⽳を開けるのか? ‣ Firebaseの提供するFirestoreというデータストアに保存してある。 ‣ データストアにアクセスするための⽳を開ける必要がある。 ‣ データへのアクセス権限の話、アクセス権限は必要最⼩限にしたい。 ‣ 観点:

    実装コスト、適切なスコープ、権限の付与⼿順
  10. #ginza_slackapp どこに⽳を開けるのか? 1. DBへのアクセス権限を付与する 2. アプリに管理画⾯を実装する 3. Slack Appでアクセス⽅法を提供する

  11. #ginza_slackapp どこに⽳を開けるのか? 1. DBへのアクセス権限を付与する/BIツールを導⼊する ‣ Pros: 実装なし ‣ Cons: 追加に都度操作が必要、消し忘れが多い、データのスコープ

    2. アプリに管理画⾯を実装する 3. Slack Appでアクセス⽅法を提供する
  12. #ginza_slackapp どこに⽳を開けるのか? 1. DBへのアクセス権限を付与する/BIツールを導⼊する 2. アプリに管理画⾯を実装する ‣ Pros: 最適化したUIを提供できる。 ‣

    Cons: 実装が必要。ミスったらやばい。利⽤者的には煩雑 3. Slack Appでアクセス⽅法を提供する
  13. #ginza_slackapp どこに⽳を開けるのか? 1. DBへのアクセス権限を付与する/BIツールを導⼊する 2. アプリに管理画⾯を実装する 3. Slack Appでアクセス⽅法を提供する ‣

    Pros: 指定した⽅法でのアクセスを提供。 ‣ Cons: 表現がSlackに縛られる。デバッグがしんどい
  14. #ginza_slackapp どこに⽳を開けるのか? ‣ 1. DBへのアクセス権限を付与する/BIツールを導⼊する ‣ Pros: 実装なし ‣ Cons:

    追加に都度操作が必要、消し忘れが多い、データのスコープ ‣ 2. アプリに管理画⾯を実装する ‣ Pros: 最適化したUIを提供できる。 ‣ Cons: 実装が必要。ミスったらやばい。利⽤者的には煩雑 ‣ 3. Slack Appでアクセス⽅法を提供する ‣ Pros: 指定した⽅法でのアクセスを提供。 ‣ Cons: 表現がSlackに縛られる。デバッグがしんどい
  15. #ginza_slackapp 思考: Slackは組織構造が反映されている ‣ エンジニアだけが所属するチャンネル、ユーザーグループ ‣ シングルチャンネルゲスト、マルチチャンネルゲスト ‣ ユーザーグループのデフォルトチャンネル ‣

    おそらく⼀番社内・コミュニティ事情を反映している権限付与になっているはず
  16. #ginza_slackapp 思考: Slackに権限管理を任せる。 ‣ 「Slackに権限管理を寄せる」と考えるとよい ‣ アカウント追加は業務に必須なので、サボられることがない。 ‣ 退職時にちゃんとアカウントが削除される。

  17. #ginza_slackapp 権限管理の具体的⼿法 ‣ 1. Private Channelを利⽤する ‣ レスポンスにコマンドやアクションのトリガーとなるチャンネルがあるので利⽤する ‣ 無料プランでも利⽤可能

  18. #ginza_slackapp 権限管理の具体的⼿法 ‣ 2. User Groupを利⽤する ‣ 特定のユーザーグループに所属しているかを確認 ‣ フリープランでは使えません

    ‣ エンジニア以外のデプロイを受け付けないようなことができる ‣ UserGroupを取得するAPIもある
  19. #ginza_slackapp まとめ ‣ Slackは組織の構造がかなり正確に反映されている。 ‣ 権限管理をSlack側に寄せることができる。(Private Channel、User Group) ‣ Slack

    Appでは権限管理をSlack側に寄せることができる。
  20. Thank you! 2019.12.12 Ginza.SlackApp #1 / @mottox2