社外の人とSlack でコミュニケーションする時は、こんな思想で運用すると完璧じゃないかな。

Narichika Kajihara
@kajinari
Published in
Dec 12, 2020

Slackが会社の中に浸透してくると、協業先、ベンダー、パートナー等社外のコラボレーターとのコミュニケーションもSlackでやりとりしたくなりますよね。

「Slackコネクト」がローンチされて、相互にSlackを契約している場合は、基本的に「共有チャンネル」を作成して、相互のSlackオーガナイゼーションが連携され、そのチャンネルに双方の関係者を招待することで、コミュニケーションできる様になります。

ただし、Slackコネクトは双方共にSlackを契約している必要がありますので、先方がSlackを契約していない等の時は、自社のオーガナイゼーションにゲストとして招待する運用をしています。

Slackコネクトを推奨する

あくまでもゲストアカウントとして招待するのは、Slackコネクトが利用できない時に限り許可しています。それは以下に挙げられる利点及びセキュリティ上の懸念があるためです。

会話履歴の保持
ゲストの場合、協業を解消してアカウントを無効化されたら、二度と会話履歴にアクセスできなくなります。ゲストで参加している場合、情報のコントロールを先方に委ねてしまう事になります。
Slackコネクトは、双方でSlackチャンネルが作成される形になるので、接続を解消しても会話履歴が残りますので、Slackコネクトが双方にとって良いと思います。

確かな本人確認
Slackゲストアカウントは、アカウント名とパスワードでログインすることが出来ます。そのため使ってもらいたい本人が、そのゲストアカウントを使っているとは限りません。
Slackコネクトの場合は、先方のSlackオーガナイゼーションで使っているアカウントを利用します。そのため先方のAさんが偽られる事は無いでしょう。(他の人に自分のDMの会話内容を見せられます? 僕は無理です 笑)

関係者が増えても、現場・管理者の負担は増えない
ゲストの場合は、管理者にリクエストし・承認が必要になります。
Slackコネクトの場合は、チャンネルに招待するのと同じ手順で実施すれば良いだけです。承認待ちなどの無駄な時間は不要です。
管理者としても、ゲストアカウントの棚卸しや、アクセス権限の抹消などの手間が不要です。

ゲストアカウントで運用する場合と比較し、セキュリティ上も運用上も、Slackコネクトが利点があるのを分かって頂けると思います。
未だに、セキュリティレギュレーション上、Slackコネクトが使えないとしている組織が居ますので、ぜひ考えを改めてもらいたいです。

Slackコネクトの効率的な承認

効率的に共有チャンネルを確立させるために以下の様な運用をしてます。

  • 共有チャンネルの作成のリクエストは誰でもできる
  • 共有チャンネルを承認できるのは、オーナーだけ
  • 特定のチャンネルに送信する。

特定のチャンネルに送信すると、リクエストがあった時にSlackオーナーのSlackbot に届いてた承認依頼が、チャンネルに送信されるようになります。

この運用のメリットは

  • 管理者へ作業を依頼することが不要になります。わざわざ必要事項を先方にヒアリングして伝える必要もありません。
  • 管理者としても、わざわざ設定作業する必要がなくなり、承認ボタンを押すだけで良い。
  • もし、不明点があれば、依頼者に直接確認する事ができる。

現場のアジリティを損なわず、進捗や承認状況が見えるようになるので、オススメです。

コネクト済みのオーガナイゼーションを確認する時は

なお、コネクト済みのオーガナイゼーションの一覧は、ワークスペース名 > 「管理」 > 「共有チャンネルを管理する」をクリックすると確認することができます。

Slackゲストアカウントの運用

Slackを利用していないオーガナイゼーションも多くいるため、Slackを利用せず、メールでのコミュニケーションをするか?と言われれば厳しいので、ゲストアカウントでの運用は、当面ゼロにすることはできないかな。という印象です。運用する以上セキュアに管理できるようにしたいので、以下の様な運用方針はいかがでしょうか。

Slackゲストアカウントの効率的な承認

ゲストアカウントも同じで、ゲストを除く全員がメンバーを招待できるようにし、承認者の承認をチャンネルに流す事をオススメです。

こうすることで

  • 誰が招待リクエストして、誰が承認したか?をログを残す事ができるようになります。
  • 招待をリクエストした人が、Slack側にデータが残ります。(これ後述しますが、かなり重要です。)
この様に、招待者、承認者とデータが残ります。

必ず有効期限をつける

必ず有効期限を設けて、定期的にチェックする仕組みを作ります。(最長1年のハウスルールする等。) Slackの仕様で招待を送付する際には、有効期限を必須でつけることができません。
そのため、招待後に有効期限がついてないアカウントをピックアップして、Slackでリマインドするスクリプトを書いています。

ここで「招待者」のデータが活きてきます。招待者にメンションをつけ、期間を選択させることで、管理者側の稼働はかけずに、もれなく期限管理できるようになります。

有効期限が近づくと、通知する

Slackのデフォルト機能では、管理者のSlackBotに届く仕様になっています。通常であれば、管理者はそれから招待者を探す。延長するか確認する。延長後の日程を設定する。と、かなり工数がかかる作業になります。
そのため、ここもシュッとスクリプトを書いて解決しました。

ここでも招待者が、自ら作業することで管理者としての工数は0です。まれに退職者が招待したケースがあります。その場合は、Slackのチャンネルに招待した時のログがありますので、ゲストのメールアドレス等で検索して、同じ部署の人に問い合わせするなどで解決しています。

どうしているのか

Slack APIのusers.info メソッドを利用します。
ゲストアカウントの有効期限は、”guest_expiration_ts” フィールドに Unixタイムスタンプ形式で確認出来ます。
また、招待した人は “guest_invited_by”にSlackIDが記載しているので、このSlackID宛にメンションすれば解決です。

管理できていないゲストアカウントも完全マネージドな状態にすることができました。Slackはとても有用なツールですので、正しく活用して、情報漏洩につながらないようにしっかり管理しましょう。

副業でいくつかの現場を見ておりますので、情報システム にお困りな場合は、いつでもお声がけ下さい。改善いたします。

--

--

Narichika Kajihara
@kajinari

Agileコーチとして、開発チームのチーム・ビルディングを担当し、チーム支援を行っている。 その他には、モダンな情報システム担当、エンジニア採用、技術広報など