【OSSでWiki構築】連載記事一覧
第1回
第2回(環境構築編)
第3回(環境構築編 トラブルシューティング)
第4回(Google OAuth編)
第5回(Google OAuth編 トラブルシューティング)
第6回(アクセス制御編)※本記事
1. はじめに
この記事は、構築したOutline Wikiの「アクセス制御」と「権限設定」の手順についてまとめたものです。
Outlineの権限設定は、大きく分けて以下の2階層で構成されています。
- ワークスペース権限: Wiki全体での「基本的な役割」(管理者、編集者、閲覧者)
- コレクション権限: コレクション(部屋)ごとの、より詳細な「入室・編集ルール」
この2つを組み合わせることで、柔軟な権限管理を実現します。
ステップ1: ワークスペース権限(基本的な役割)の管理
まず、ユーザーをWikiに招待し、全体での役割を割り当てます。
1-1. 3つの基本役割
Outlineには、以下の3つの基本的な役割があります。
Admin(管理者): 全ての権限を持ちます。メンバーの招待、役割変更、Wiki全体の設定変更が可能です。Editor(編集者): デフォルトの役割です。ドキュメントの新規作成、編集、削除が可能です。Viewer(閲覧者): ドキュメントの閲覧と検索のみが可能です。編集や作成はできません。
1-2. ユーザーを招待し、最初から役割を指定する方法
新規ユーザーが「Editor」として自動登録されるのを防ぎ、最初から「Viewer」として招待したい場合などに使います。
- 管理者アカウントでOutlineにログインします。
- メニューにある
+ Invite people...をクリックします。 - 表示されたウィンドウで、招待したい人のEmailと、割り当てたい役割(Role)(例:
Viewer)を選択し、「Send Invites」をクリックします。
【ローカル環境での注意点】 localhost環境ではメール送信サーバー(SMTP)を設定していないため、招待メールは送信されません。 ただし、この操作で「このメールアドレスの人はViewerとして招待された」という記録はデータベースに保存されます。
この招待を完了させるには、以下のシミュレーションが必要です。
- GCPのリストに追加: Google Cloudの「OAuth同意画面」 > 「テストユーザー」に、招待したアカウントのメールアドレスを追加します。
- 本人が訪問: 招待されたアカウントで、シークレットブラウザなどから
https://localhostにアクセスし、Googleログインを行います。 - 登録完了: Outlineは「招待メールは見ていないけど、本人確認(Googleログイン)が取れ、招待リストにも名前があるのでOK」と判断し、招待時に指定された役割(
Viewer)でユーザーを登録します。
ステップ2: コレクション権限(部屋ごとのルール)の設定
次に、コレクションごとに、より詳細なアクセス権限を設定します。 ここでは、「管理者と特定のEditorだけが入室・編集できる、限定コレクション」を作成する手順を例示します。
2-1. 「原則立ち入り禁止」のコレクションを作成
- 管理者アカウントで、新しいコレクション(例:
Secret Collection)を作成します。 - 作成したコレクションの横にある「…」(三点リーダー)をクリックし、
Permissions(鍵マーク)を開きます。 All members(Wikiの全メンバー)の権限を、Can editからNo access(アクセス不可)に変更します。- これで、このコレクションは「原則立ち入り禁止」の状態になりました。
2-2. 「例外ルール」で特定のユーザーを招待
- 同じ
Permissions設定画面で、Add or invite…をクリックします。 - この部屋への入室を許可したいユーザー(例:
Editor権限を持つ、別アカウント)を選択します。 - そのユーザーに与える権限を
Can edit(編集可能)として、追加します。- これで、「全員禁止だが、管理者(
Manage権限)と、今追加したEditorだけは編集可能」という、詳細なルールが完成しました。
- これで、「全員禁止だが、管理者(
ステップ3: 権限の検証
最後に、設定したルールが正しく機能しているかを、各アカウントでログインし直して確認します。
3-1. 【検証1】Viewerアカウント
- シークレットブラウザなどで、
Viewerアカウントでhttps://localhostにログインします。 - 期待される結果: 左側の
Collections一覧に、「Secret Collection」は表示すらされません。
3-2. 【検証2】Editorアカウント
Viewerアカウントをログアウトし、招待されたEditorアカウントでログインします。- 期待される結果:
Collections一覧に、「Secret Collection」が正常に表示され、ドキュメントの作成・編集が可能であることを確認できます。
4. まとめ
Outlineの権限管理は、「ワークスペース全体の役割」と「コレクションごとの詳細設定」の2段階で行います。この仕組みを理解することで、本番運用時にも、各属性ごと(部署ごとや役職ごと)に、柔軟で安全なアクセス制御を実現することができます。
前の記事:第5回(Google OAuth編 トラブルシューティング)
次の記事:準備中
【OSSでWiki構築】連載記事一覧
第1回
第2回(環境構築編)
第3回(環境構築編 トラブルシューティング)
第4回(Google OAuth編)
第5回(Google OAuth編 トラブルシューティング)
第6回(アクセス制御編)※本記事