社外メンバーとRedmineを使うためのアクセス制御
Redmineは権限管理の機能が充実しているため、柔軟なアクセス制御が可能です。
この記事では、Redmineを社外の方と一緒に利用する場合に適切なアクセス制御を行うための3つの方式を紹介します。
Redmineを業務で利用する場合に、社外の方と一緒に使いたい場合があると思います。たとえば以下のような利用シーンです。
- 複数の販売代理店との取引情報をひとつのRedmineで管理したい
- 複数社による共同プロジェクトを管理したい
このようなとき、Redmineの権限設定をうまく組み合わせることで、社外の方のアクセスを適切に制御し、Redmineを安全に運用することが可能です。
この記事では、最初に、アクセス制御の設定を行う前の、基本的な共通設定を行います。
そのあと、以下の3つのアクセス制御の方式を説明します。
- プロジェクト単位でのアクセス制御
- チケット単位でのアクセス制御(トラッカーのアクセス制御、プライベートチケット、プライベートコメント)
- フィールド単位でのアクセス制御(カスタムフィールド)
社外の方と一緒に利用する場合にオススメの設定内容を説明します。
設定内容は以下の4つです。
構築直後のRedmineは、認証(ログイン)無しでホーム画面を閲覧できます。以下のスクリーンショットは構築直後のRedmineのトップページを書き換えて表示したところです。
このスクリーンショットの右上に「ログイン」と表示されていることからわかるように、Redmineにログインしていない状態でトップページを閲覧できています。もし、このRedmineがインターネット(クラウドなど)で運用されている場合、世界中の誰でも閲覧できる状態です。
これは、業務で使用するには不適切な状態です。
Redmineには認証(ログイン)を必須する設定があります。認証を必須にするかしないかの違いは、以下の表の通りです。
認証の設定 | 閲覧できるユーザー |
---|---|
認証を必須にする | RedmineにログインできるユーザーだけがRedmineの中を閲覧できる |
認証を必須にしない (デフォルト) |
Redmineにログインしなくても(IDを持っていないユーザーも)Redmineの中を閲覧できる |
運用するプロジェクトの状況にもよりますが、業務で使用するRedmineは認証を必須にすることをオススメします。
2.1.1 認証を必須にする設定手順
(1) トップメニューの「管理」→「設定」をクリック
(2)「認証」タブを表示し、「認証が必要」の設定を「はい」に変更して保存をクリック
Redmineのプロジェクトは、「公開」と「非公開」の2つの状態があります。
それぞれの状態と閲覧できるユーザーの関係は以下の表の通りです。
プロジェクトの状態 | 閲覧できるユーザー |
---|---|
公開 (デフォルト) |
誰でも |
非公開 | プロジェクトにメンバー登録されたユーザーのみ |
Redmineがインターネット(クラウドなど)で運用されていたら、公開の状態のプロジェクトは、世界中の誰でもプロジェクトの情報を見ることができてしまいます。
Redmineが社内ネットワークで運用されていたとしても、プロジェクトに無関係な社員がプロジェクトの情報を見ることができてしまいます。
プロジェクトの内容にもよりますが、通常の業務で使用するプロジェクトが公開の状態であることは不適切な状態だと思いますので、非公開にすることをオススメします。
「2.1 認証を必須にする」と「2.2 プロジェクトを非公開にする」の設定の組み合わせによるプロジェクトの閲覧可能範囲を表に整理しました。
認証が必要 | プロジェクトの状態 | プロジェクト閲覧可能範囲 |
---|---|---|
いいえ (デフォルト) |
公開 (デフォルト) |
誰でも閲覧可能(ログインも不要) |
非公開 | プロジェクトにメンバー登録されているユーザーのみ閲覧可能(※1) | |
はい | 公開 (デフォルト) |
ログインできるユーザーは、プロジェクトにメンバー登録されていなくても閲覧可能 |
非公開 | プロジェクトにメンバー登録されているユーザーのみ閲覧可能(※2) |
- ※1と※2の違い
- ※1の場合、ログインしていないユーザーでもアクセスできるページが存在する可能性がある
- ※2の場合、ログインしていないユーザーがアクセスできるページは存在しない
2.2.1 プロジェクトを新規作成する場合に「非公開」にする手順
「新しいプロジェクト」画面で「公開」のチェックを外し、プロジェクトを作成してください。
2.2.2 既存のプロジェクトの設定を変更する手順
(1)設定を変更したいプロジェクトを開き、プロジェクトメニューの「設定」をクリック
(2)「プロジェクト」タブを表示し、「公開」のチェックを外して「保存」をクリック
2.2.3 Redmineのデフォルト設定を非公開に変更する手順
Redmineのデフォルト設定では、プロジェクトを新規作成すると「公開」状態に設定されます。これを「非公開」に変更する手順を説明します。
(1)トップメニューの「管理」→「設定」をクリック
(2)「プロジェクト」タブを表示し「デフォルトで新しいプロジェクトは公開にする」のチェックを外して「保存」をクリック
Redmineのシステム管理者権限は、以下のように非常に強力な権限を持っています。
- すべてのプロジェクト(自分がメンバーになっていないプロジェクトを含む)
- すべての制限が適用されない(権限・ワークフロー)
- すべての情報を閲覧できる
- すべての機能を利用できる
たとえば、Redmineのシステム管理者権限を持つユーザーが以下のような操作を実行してしまうと大変困った状況になります。
- プロジェクトを削除してしまう
- チケットを削除してしまう
- ユーザーを削除してしまう
- etc
こういうことが起きないように、以下の対応をオススメします。
- 本当に付与すべきユーザーにしぼって付与する
- 社外のユーザーには付与しない
複数の人にシステム管理者権限を付与するときは、よく吟味して付与するようにしてください。
2.3.1 システム管理者を確認する方法
システム管理者権限を付与しているユーザーを確認するには、トップメニューの「管理」→「ユーザー」をクリックしてユーザー一覧画面を表示し、「システム管理者」の列をご覧ください。
Redmineの「ロール」とは、閲覧や操作などの権限設定をまとめたものです。
Redmineでは、ユーザーにロールを割り当てることで、ユーザーの閲覧や操作を制御します。
たとえば、ユーザーが以下のような操作を実行してしまうと困った状況になります。
- チケットを削除してしまう
- プロジェクトを削除してしまう
- コメントをあとから書き換える
- 無関係なプロジェクトの情報が見えてしまう
- 無関係なユーザーの情報が見えてしまう
- etc
こういうことが起きないように、以下の対応をオススメします。
- 社内メンバー用のロールとは別に、社外メンバー用のロールを追加する
- 社外メンバー用のロールに付与する権限を業務に合わせて決める
2.4.1 社外メンバー用のロールを追加する操作手順
(1)トップメニューの「管理」→「ロールと権限」をクリック
(2)「新しいロール」をクリック
(3)「名称」や権限の設定を行なって「作成」をクリック
2.4.2 社外メンバー用のロールのおすすめ設定
社外メンバー用のロールを作成するときのおすすめ設定を紹介します。
設定項目 | おすすめ設定 | 効能 |
---|---|---|
表示できるチケット | プライベートチケット以外 | 機密情報を扱うプライベートチケットを見えないようにできる |
表示できる作業時間 | 自分の作業時間 | 他のユーザーの作業時間を見られることがない |
表示できるユーザー | 見ることができるプロジェクトのメンバー | 無関係なユーザーの情報を見られることがない |
- (例)「表示できるユーザー」の設定ごとの見え方の違い
Redmineにはチケットにウォッチャーを追加する機能があります。この機能にはユーザーを検索する機能が備わっています。この機能の結果表示が「表示できるユーザー」の設定によって制御できます。
たとえば、Redmineに「赤田舞」というユーザーが存在し、自分とは別のプロジェクトのメンバーとして登録されているとします。
もし「表示できるユーザー」が「すべてのアクティブなユーザー」に設定されていると、「赤田」と検索すると結果に「赤田舞」が表示されてしまいます。つまり、自分に無関係なユーザーの存在を知られてしまうことになります。
「表示できるユーザー」が「見ることができるプロジェクトのメンバー」に設定されていれば、「赤田」と検索しても結果に「赤田舞」が表示されず、自分に無関係なユーザーの存在を知られること防げます。
2.4.3 社外メンバー用のロールに最初に付与する権限のご提案
社外メンバー用のロールに最初に付与する権限をいくつかご提案します。
権限 | 説明 | |
---|---|---|
プロジェクト | クエリの保存 | 自分のプライベートクエリの保存/編集/削除を許可 |
ガントチャート | ガントチャートの閲覧 | ガントチャートの表示を許可 |
チケットトラッキング | チケットの閲覧 | チケットの参照を許可 |
チケットの追加 | 新しいチケットの作成を許可 | |
チケットの編集 | 既存チケットのあらゆる項目の編集を許可 | |
チケットのコピー | 既存チケットのコピーを許可 | |
関連するチケットの管理 | チケット同士の関連の追加/削除を許可 | |
コメントの追加 | 既存のチケットに対してコメントの追加を許可 |
利用状況に応じて、付与する権限を調整してください。
この記事で紹介するアクセス制御の3つの方式について、特徴と要件の例を表にまとめました。複数の方式を組み合わせて適用することも可能です。この表を参考に、自分のプロジェクトにあてはまる方式を検討してください。
方式 | 特徴 | 要件の例 |
---|---|---|
プロジェクト単位でのアクセス制御 | ・他の取引先のメンバーが見えない ・もっとも簡単で、もっとも強固 |
・複数の販売代理店との取引を管理したい ・販売代理店との取引情報が他の代理店に漏れてはいけない ・手早く運用を始めたい |
チケット単位でのアクセス制御(トラッカーのアクセス制御、プライベートチケット、プライベートコメント) | ・同じプロジェクトの中で、社外と共有する情報と、社外に見られたくない情報を同時に扱える | ・複数の取引先との共同プロジェクトを管理したい ・社内調整をチケットで管理したいが、取引先には見られたくない ・機微情報など、特定のメンバーのみアクセスできる情報も扱いたい |
フィールド単位でのアクセス制御 | ・社外と共有する情報の中に、見られたくない情報を追加できる ・任意のデータ形式が利用できる |
・顧客番号をチケットに付与して検索できるようにしたいが、取引先に顧客番号が見えてほしくない |
「プロジェクト単位でのアクセス制御」を適用できる要件の例は以下のようなものが挙げられます。
- 複数の販売代理店との取引を管理したい
- 販売代理店との取引情報が他の代理店に漏れてはいけない
- 手早く運用を始めたい
この方式を利用した運用体制は以下のようなイメージです。
この方式を利用した場合の表示例を以下に示します。
(1)取引先ごとにプロジェクトを「非公開」で作成する
2.2.1 プロジェクトを新規作成する場合に「非公開」にする手順と同じ手順で、取引先ごとにプロジェクトを非公開で作成します。
(2)取引先ユーザーを登録するとき、社外メンバー用のロールを割り当てる
該当プロジェクトを開き、「設定「→「メンバー」タブ→「新しいメンバー」をクリックすると、ユーザーとロールを選択する画面が表示されます。取引先ユーザーにチェックを入れて、2.4 社外メンバー用のロールを追加するで作成した社外メンバー用のロールにチェックを入れて「追加」をクリックしてください。
「チケット単位でのアクセス制御」を適用できる要件の例は以下のようなものが挙げられます。
- 複数の取引先との共同プロジェクトを管理したい
- 社内調整をチケットで管理したいが、取引先には見られたくない
- 機微情報など、特定のメンバーのみアクセスできる情報も扱いたい
この方式はさらに細かく3つの方法に分けられます。
この方式を利用した運用体制は以下のようなイメージです。
この方式を利用した場合の表示例を以下に示します。
3.2.1.1 トラッカーを分けてアクセス制御の設定手順
(1)トラッカーを作成し、プロジェクトの「チケットトラッキング」設定画面で使用するトラッカーにチェックを入れる。
(2)ロールごとにトラッカーの使用可/不可を設定する。
(例)「お問い合わせ」は全ロールが使用可。「社内調整」は社内メンバーのみ可。
この方式を利用した運用体制は以下のようなイメージです。
この方式を利用した場合の表示例を以下に示します。
3.2.2.1 プライベートチケットでアクセス制御の操作手順
チケットを新規作成または編集のときに「プライベート」にチェックを入れる
3.2.2.2 プライベートチケットを閲覧できる条件
- チケットの作成者
- チケットの担当者
- 「表示できるチケット」が「すべてのチケット」に設定されているロール※で、プロジェクトに参加しているメンバー(※デフォルトでは「管理者」ロール)
- システム管理者
3.2.2.3 プライベートチケットでアクセス制御の注意点
自分だけ にチケットが見える機能 ではない 点に注意してください。
この方式を利用した運用体制は以下のようなイメージです。
この方式を利用した場合の表示例を以下に示します。
3.2.3.1 プライベートコメントでアクセス制御の操作手順
コメント入力欄の左下「プライベートコメント」にチェックを入れる
3.2.3.2 プライベートコメントを閲覧できる条件
(1)ロール設定→チケットトラッキング→「プライベートコメントの閲覧」がON
(2)プロジェクトに参加しているメンバー
3.2.3.3 プライベートコメントでアクセス制御の注意点
自分だけ にコメントが見える機能 ではない 点に注意してください。
「フィールド単位でのアクセス制御」を適用できる要件の例は以下のようなものが挙げられます。
- 顧客番号をチケットに付与して検索できるようにしたいが、取引先に顧客番号が見えてほしくない
この方式を利用した運用体制は以下のようなイメージです。
この方式を利用した場合の表示例を以下に示します。
カスタムフィールドを作成するとき、以下の3項目を設定してください。
(1)表示
このカスタムフィールドの表示を許可するロールにチェックを入れてください。
(2)トラッカー
このカスタムフィールドの使用を許可するトラッカーにチェックを入れてください。
(3)プロジェクト
このカスタムフィールドの使用を許可するプロジェクトにチェックを入れてください。
アクセス制御の方式に利用する際に参考になる情報をまとめましたので、ご活用ください。
Redmine 4.2で作るヘルプデスク向け問い合わせ受付・管理システム
ファーエンドテクノロジー株式会社がRedmineのクラウドサービス「My Redmine」のWebサポート窓口をRedmineを使って構築しています。その事例を紹介したセミナーの資料です。
ユーザーをプロジェクトのメンバーとして登録せず、ユーザーからの問い合わせに対応できるように、アクセス制御の方式を組み合わせて構築しています。アクセス制御の方式の応用例としてご覧ください。
アクセス制御の方式とは別に、Redmineにログインする方法によってアクセスを制限する設定がいくつかあります。その中に、ワンタイムパスワードによる二要素認証があります。詳しい説明を以下の記事に掲載していますのでご覧ください。
Redmineへのアクセスを接続元IPアドレスで制限する機能を追加するプラグインがあります。詳しい説明は以下のページをご覧ください。
このプラグインは、ファーエンドテクノロジー株式会社がRedmineのクラウドサービス「My Redmine」用に開発したものをオープンソースのプラグインとして無償で公開しているものです。My Redmineのすべてのプランでこのプラグインの機能を利用できます。詳しくは「IPアドレスフィルターのご利用方法(My Redmine Gen.2)をご覧ください。
Redmineのセキュリティを高める、第三者による不正アクセス対策に有効な機能
二要素認証やIPアドレスフィルターの他に、パスワードの最低必要文字数やパスワードの必須文字種別など、Redmineのセキュリティを高める設定内容について紹介した記事です。ぜひご一読ください。
Redmineの標準機能・プラグインではありませんが、ファーエンドテクノロジー株式会社が提供するRedmineのクラウドサービス「My Redmine」エンタープライズプランでは、シングル・サインオンを利用することが可能です。詳しくは以下のページをご覧ください。