1. ヘルプ
  2. 実装(全般)
  3. ユースケース別の実装方法

複数の部署や企業で、1サービスを共有して利用する場合、どのように閲覧制御をすればよいですか?

→ 主に2つの設計パターンが考えられます。メリット・デメリットを確認の上、ご検討ください。

複数の部署や企業で、1サービスを共有して利用することは可能です。

ただし、その場合は必要に応じて権限の設定を行い、閲覧可能な範囲を適切に制限する必要があります。

権限設定を行う対象(メディア、レビューなど)は複数存在しますが、ここでは主な操作であるコンテンツの入稿に関する設定パターンを紹介します。

異なる企業のコンテンツを、同じサービスで管理する場合、ロールの設定ミス等によって、データが共有されるリスクがあります。

このような運用を行う場合は、リスクをご検討の上、万が一共有されても問題ないコンテンツのみ、お取り扱いいただきますよう、お願いいたします。

設計パターン

主に以下の二つのパターンが考えられます。

  1. APIを分割して、API単位での閲覧制御を行う
  2. APIを共有した上で、コンテンツ単位での閲覧制御を行う

1. APIを分割して、API単位での閲覧制御を行う

組織ごとにAPIを作成して利用する方法です。

まず、「お知らせ(組織A)」「お知らせ(組織B)」のように、同様のスキーマ設定を持つAPIを複数作成します。

またユーザーに対して、「組織A」「組織B」のようなロールを作成し、付与します。

作成したロールは、APIの読み取り権限を、デフォルト権限を「オフ」、個別権限(対象のAPI)を「オン」に設定します。

▼ デフォルト権限

▼ 個別権限

このように設定を行った場合、メンバーはロールで設定したAPIのみ管理画面に表示され、アクセスすることが可能となります。

この設計パターンのメリットとデメリットは以下の通りです。

  • メリット
    1. APIごとに閲覧制御されるので、閲覧可能な範囲がシンプルで、わかりやすい
  • デメリット
    1. APIを組織の数に合わせて作成する必要がある
    2. それぞれのAPIのデータを、まとめて取得して利用する場合に、ソート処理で複雑な実装が必要になる

2. APIを共有した上で、コンテンツ単位での閲覧制御を行う

APIを一つだけ作成し、複数の組織で共有して利用する方法です

まず「お知らせ」のような単一のAPIを作成します。

またユーザーに対して、「組織A」「組織B」のようなロールを作成し、付与します。

作成したロールは、コンテンツの読み取り権限を、デフォルト権限を「オフ」、個別権限(対象のAPI)を「このロールのメンバーが作成したコンテンツのみ」に設定します。

▼ デフォルト権限

▼ 個別権限

このように設定を行った場合、お知らせAPIは、どちらのロールのメンバーも表示されますが、表示されるコンテンツが、同じロールのメンバーが作成したコンテンツのみに制限されます。

この設計パターンのメリットとデメリットは以下の通りです。

  • メリット
    1. APIの作成数が1つで良いため、組織数の増加に対応しやすい
    2. 1つのAPIへのアクセスで、複数組織のコンテンツをまとめて取得できる
  • デメリット
    1. 同じAPIの中で閲覧できる範囲が異なるため、閲覧可能な範囲がわかりづらい
    2. データの初期登録時に、コンテンツ作成者を、コンテンツを管理するロールのメンバーに付け替える必要がある
    3. 部署移動や退職などに応じて、コンテンツの作成者を変更する必要がある