ユーザーと招待・SSO¶
Taylis には公開の新規登録はありません。ユーザーを増やす方法は 3 つです。
- 管理者が ユーザーを作る(仮のパスワード)
- 招待リンク を送る
- Google でのログイン で、組織のアカウントの人が初回ログインで自動で作られるようにする(サーバの設定)
ロール¶
| ロール | できること |
|---|---|
管理者(admin) |
すべての管理操作 |
運営(manager) |
招待・名簿・チャンネル・絵文字・予約の枠・在室状況などの日々の管理(ロールと権限) |
メンバー(member) |
ふつうの利用 |
ゲスト(guest) |
入れてもらったチャンネルだけを使う人。カスタム絵文字の追加などの一部の操作はできません |
チャンネルの中には、別に オーナー と メンバー の役割があります。
ユーザーを作る¶
管理 →「ユーザー」で、ユーザー名・表示名・ロールを入れて作ります。仮のパスワード が一度だけ表示されるので、 本人に安全な方法で伝えてください。本人は初めてのログインで新しいパスワードを決めます。
サーバのコマンドでも作れます。
docker compose -f docker-compose.yml -f docker-compose.prod.yml exec app \
python -m app.cli create-user --username hanako --display-name "鈴木 花子"
新しいユーザーは、既定のチャンネル に自動で入ります(ゲストとボットを除く)。
ユーザーの管理¶
ユーザーの行の ⋯ から、次の操作ができます。
- ロールの変更(管理者・運営・メンバー・ゲスト)
- 無効化 と 有効化:無効にした人はログインできなくなり、すべての端末のセッションが切れます。
- ユーザー名の変更:本人も設定から変えられます。
- パスワード再設定:新しい仮のパスワードを発行します(本人がパスワードを忘れたとき)。
- セッション失効:その人のすべての端末をログアウトさせます。
- 2 要素認証を解除:本人が認証アプリと回復コードをなくしたとき。
- 削除(匿名化):名前・メールアドレス・ログイン情報・端末を消し、メッセージは「退会したユーザー」の名前で残します。 元には戻せません。
管理画面から自分自身を無効化・削除することはできません。また、ほかに有効な管理者がいないと、管理者は自分の アカウントを削除できません。先にほかの人を管理者にしてください。
招待リンク¶
管理 →「招待」で招待リンクを発行します。
- ロール(メンバー・ゲストなど)、最初に入るチャンネル、使える回数(1 回〜無制限)、有効期限(1 時間〜30 日) を決められます。
- リンクは発行したときに一度だけ表示されます。コピーして本人に送ってください。
- 一覧で、使われた・期限切れ・取り消し済みの状態と、使った人が分かります。不要になったら取り消せます。
受け取った人はリンクをブラウザで開き、ユーザー名・表示名・パスワードを決めて参加します(ログイン)。
Google でログイン(SSO)¶
大学や会社の Google Workspace のアカウントでログインできるようにします。設定は管理画面ではなくサーバの環境変数で 行うので、サーバの担当者の作業です。
- Google Cloud でプロジェクトと「OAuth 同意画面」を作ります。組織の管理者が許せば、種類は 内部 がおすすめです。
- 「認証情報」→「OAuth クライアント ID」→ 種類「ウェブ アプリケーション」。承認済みのリダイレクト URI に
https://chat.example.com/api/v1/auth/sso/google/callback(PUBLIC_BASE_URL+/api/v1/auth/sso/google/callback) を 1 つだけ登録します。 - client secret を
infra/secrets/google_client_secretに置き、infra/.envに次を書いて再起動します。
GOOGLE_CLIENT_SECRET_FILE=./secrets/google_client_secret
SSO_GOOGLE_CLIENT_SECRET_FILE=/run/secrets/google_client_secret
SSO_GOOGLE_CLIENT_ID=xxxxxxxx.apps.googleusercontent.com
SSO_GOOGLE_ALLOWED_DOMAINS=example.ac.jp
SSO_GOOGLE_LABEL=〇〇大学
SSO_AUTO_PROVISION=false
PUBLIC_BASE_URL=https://chat.example.com
| 変数 | 意味 |
|---|---|
SSO_GOOGLE_ALLOWED_DOMAINS |
受け付けるドメイン(カンマ区切り)。空なら SSO は無効 です |
SSO_GOOGLE_LABEL |
ログインのボタンに出す組織の名前(「〇〇大学 のアカウントでログイン」)。空ならドメイン |
SSO_AUTO_PROVISION |
true なら、そのドメインの人は初めてのログインでメンバーとして作られます。false(既定)なら、管理者が先に作った人(メールアドレスが一致する人)だけがログインできます |
PUBLIC_BASE_URL |
このサーバの公開 URL |
クライアント ID・secret・ドメイン・PUBLIC_BASE_URL がそろったときだけ有効になります。どれかが欠けているとログに
理由が出て、SSO なしで起動します(パスワードでのログインは常に使えます)。詳しくは
docs/SSO.md をご覧ください。
グループ¶
管理 →「グループ」で、@lab や @m2 のようなグループを作れます。メッセージで @グループ名 とメンションすると、
グループのメンバー全員にメンションとして通知されます。グループは予約の枠の「見える人」にも使えます。