Tech

【OSSでWiki構築】第6回(アクセス制御編)

最終更新:2026.06.12

【OSSでWiki構築】連載記事一覧
第1回
第2回(環境構築編)
第3回(環境構築編 トラブルシューティング)
第4回(Google OAuth編)
第5回(Google OAuth編 トラブルシューティング)
第6回(アクセス制御編)※本記事


1. はじめに

この記事は、構築したOutline Wikiの「アクセス制御」と「権限設定」の手順についてまとめたものです。

Outlineの権限設定は、大きく分けて以下の2階層で構成されています。

  1. ワークスペース権限: Wiki全体での「基本的な役割」(管理者、編集者、閲覧者)
  2. コレクション権限: コレクション(部屋)ごとの、より詳細な「入室・編集ルール」

この2つを組み合わせることで、柔軟な権限管理を実現します。

ステップ1: ワークスペース権限(基本的な役割)の管理

まず、ユーザーをWikiに招待し、全体での役割を割り当てます。

1-1. 3つの基本役割

Outlineには、以下の3つの基本的な役割があります。

  • Admin (管理者): 全ての権限を持ちます。メンバーの招待、役割変更、Wiki全体の設定変更が可能です。
  • Editor (編集者): デフォルトの役割です。ドキュメントの新規作成、編集、削除が可能です。
  • Viewer (閲覧者): ドキュメントの閲覧と検索のみが可能です。編集や作成はできません。

1-2. ユーザーを招待し、最初から役割を指定する方法

新規ユーザーが「Editor」として自動登録されるのを防ぎ、最初から「Viewer」として招待したい場合などに使います。

  1. 管理者アカウントでOutlineにログインします。
  2. メニューにある + Invite people... をクリックします。
  3. 表示されたウィンドウで、招待したい人のEmailと、割り当てたい役割(Role)(例: Viewer)を選択し、「Send Invites」をクリックします。

【ローカル環境での注意点】 localhost環境ではメール送信サーバー(SMTP)を設定していないため、招待メールは送信されません。 ただし、この操作で「このメールアドレスの人はViewerとして招待された」という記録はデータベースに保存されます。

この招待を完了させるには、以下のシミュレーションが必要です。

  1. GCPのリストに追加: Google Cloudの「OAuth同意画面」 > 「テストユーザー」に、招待したアカウントのメールアドレスを追加します。
  2. 本人が訪問: 招待されたアカウントで、シークレットブラウザなどからhttps://localhostにアクセスし、Googleログインを行います。
  3. 登録完了: Outlineは「招待メールは見ていないけど、本人確認(Googleログイン)が取れ、招待リストにも名前があるのでOK」と判断し、招待時に指定された役割(Viewer)でユーザーを登録します。

ステップ2: コレクション権限(部屋ごとのルール)の設定

次に、コレクションごとに、より詳細なアクセス権限を設定します。 ここでは、「管理者と特定のEditorだけが入室・編集できる、限定コレクション」を作成する手順を例示します。

2-1. 「原則立ち入り禁止」のコレクションを作成

  1. 管理者アカウントで、新しいコレクション(例: Secret Collection)を作成します。
  2. 作成したコレクションの横にある「…」(三点リーダー)をクリックし、Permissions(鍵マーク)を開きます。
  3. All members(Wikiの全メンバー)の権限を、Can editからNo access(アクセス不可)に変更します。
    • これで、このコレクションは「原則立ち入り禁止」の状態になりました。

2-2. 「例外ルール」で特定のユーザーを招待

  1. 同じPermissions設定画面で、Add or invite…をクリックします。
  2. この部屋への入室を許可したいユーザー(例: Editor権限を持つ、別アカウント)を選択します。
  3. そのユーザーに与える権限をCan edit(編集可能)として、追加します。
    • これで、「全員禁止だが、管理者(Manage権限)と、今追加したEditorだけは編集可能」という、詳細なルールが完成しました。

ステップ3: 権限の検証

最後に、設定したルールが正しく機能しているかを、各アカウントでログインし直して確認します。

3-1. 【検証1】Viewerアカウント

  1. シークレットブラウザなどで、Viewerアカウントhttps://localhostにログインします。
  2. 期待される結果: 左側のCollections一覧に、「Secret Collection」は表示すらされません

3-2. 【検証2】Editorアカウント

  1. Viewerアカウントをログアウトし、招待されたEditorアカウントでログインします。
  2. 期待される結果: Collections一覧に、「Secret Collection」が正常に表示され、ドキュメントの作成・編集が可能であることを確認できます。

4. まとめ

Outlineの権限管理は、「ワークスペース全体の役割」と「コレクションごとの詳細設定」の2段階で行います。この仕組みを理解することで、本番運用時にも、各属性ごと(部署ごとや役職ごと)に、柔軟で安全なアクセス制御を実現することができます。


前の記事:第5回(Google OAuth編 トラブルシューティング)
次の記事:準備中

【OSSでWiki構築】連載記事一覧
第1回
第2回(環境構築編)
第3回(環境構築編 トラブルシューティング)
第4回(Google OAuth編)
第5回(Google OAuth編 トラブルシューティング)
第6回(アクセス制御編)※本記事