技術情報ブログ
Power Platform
2022.02.16

SharePointのビューに擬似的なアクセス制限をかける方法(1)

SharePointのビューに擬似的なアクセス制限をかける方法(1)

こんにちは。アーティサン株式会社の小刀稱(ことね)です。

SharePointリストは、簡易的なデータベースとして非常に使いやすいですよね。

実際、弊社が支援させていただいているお客様の多くは、SharePointリストを用いて社内のデータを管理しています。
そのようなお客様から、「ビュー毎にアクセス制限をかけたい」という要望を伺うことがあります。
しかし、SharePointの「ビュー」は固有のアクセス権を付与することはできません。

そこで今回は、対象ユーザーの設定やアクセス許可レベルを利用することで、
SharePointのビューに擬似的なアクセス制限をかける方法についてお伝えします。

SharePointを管理している方に向けた記事となっております。

 

背景:SharePointの「ビュー毎にアクセス制限をかける」とは

はじめに、SharePointの「ビュー毎にアクセス制限をかける」とはどういうことか説明します。

SharePointには「ビュー」という機能があり、必要なデータをフィルターし、表示させることができます。

「ビュー」については以下をご参考にしてください。
リストまたはライブラリでビューを作成、変更、または削除する

この「ビュー」機能を活用することで、「あるグループに対しては、特定のビューのみを表示させることができないか」という質問をお客様からいただくことがあります。

通常このような場合は、アクセス権限を利用することで、お客様の要望を満たしていきます。
しかし、SharePointの「ビュー」は固有のアクセス権限を付与することができません。

よって弊社としては、まずはPower Appsを用いてアプリを作成することを推奨しております。
しかし、Power Appsのライセンスを持っていない企業様もいらっしゃいます。

本記事は、このような場合の代替案として、SharePointのビューに対し、擬似的にアクセス制限をかける方法についてお伝えしていきます。

 

今回やりたいこと:SharePointのビューに擬似的なアクセス制限をかける

今回は、対象ユーザーの設定やアクセス許可レベルを利用することで、SharePointのビューに擬似的なアクセス制限をかけることがゴールです。

要件

サンプルとして、SharePointリスト(ビューテスト)を作成しました。
また、ビューテストには、申請に関するデータが含まれています。

SharePointリストの内容
SharePointリストの内容

また、本リストを利用するのは「管理者」・「一般ユーザ」の2種類です。
各登場人物の要件を以下に示します。

管理者:すべてのアイテムを閲覧・編集することができる

一般ユーザ:自身が申請者となっているデータのみ閲覧・編集することができる

 

設定

方針

要件を満たすために、以下方針にて設定します。

  • ビューを作成
    • すべてのアイテムを閲覧(以下、「すべての申請」ビューと呼びます)

    • 申請者が自分となっているデータのみ閲覧(以下、「自分の申請」ビューと呼びます)

  • ビューを利用できる登場人物を割当てる
    • 管理者:「すべての申請」ビュー・「自分の申請」ビュー

    • 一般ユーザ:「自分の申請」ビュー

  • ビューを選択不可とする
    • 標準では、リスト画面上でビューの選択ができますが、一般ユーザが「すべての申請」ビューを選択することを防ぐため、ビューを選択できないように設定します。

上記方針を以下にまとめました。

方針
方針

 

設定手順

各手順について説明していきます。

 

SharePointリストのビューを作成する

はじめに、「自分の申請」ビューを新しく作成します。
ビューの設定は、以下を参考にしてください。(これ以外の設定は、「すべてのアイテム」ビューと同一です。)

この設定により、「自分の申請」ビューが既定ビューとなります。
また、申請者列がログインユーザのデータのみ閲覧できるようになります。

SharePointリストの「自分の申請」ビュー_既定ビュー
SharePointリストの「自分の申請」ビュー_既定ビュー
SharePointリストの「自分の申請」ビュー_Meプロパティ
SharePointリストの「自分の申請」ビュー_Meプロパティ

ちなみに既定ビューとは、URLにリストのビュー部分を入力しない際に表示されるビューのことを指します。
リスト作成時には「すべてのアイテム」ビューが既定ビューとなっております。

「自分の申請」ビューを既定ビューに設定する理由としては、一般ユーザがリストのビュー部分を入力しないまま、URLを入力した際に「すべての申請」ビューが表示されることを防ぐためです。

SharePointリストの既定ビュー
SharePointリストの既定ビュー

続いて、「すべての申請」ビューを作成します。
「すべてのアイテム」ビューを以下のように上書きします。(これ以外の設定は、「すべてのアイテム」ビューと同一です。)

SharePointリストの「すべての申請」ビュー
SharePointリストの「すべての申請」ビュー

ちなみに、「このビューのWebアドレス:」に記載のあるAllItemsAllAppliesに変更しています。

なぜこの値を変更しているかというと、一般ユーザーから「すべての申請」ビューを閲覧される確率を少しでも低減させるためです。

今回ご紹介する方法は、あくまで「擬似的に」アクセス権限をかけているだけなので、「すべての申請」ビューのURLを知っていると、アクセスできてしまいます。

また、AllItemsはリスト作成時に既定で作成されるページ名となります。
そのため、一般ユーザーがこの値を想像してURLを入力すると、「すべての申請」ビューを閲覧することができてしまいます。

上記理由から、今回はページ名を変更することにより、一般ユーザーがURLを想像し、「すべての申請」ビューを閲覧することを防いでいます。

 

アクセス許可レベルを作成する

一般ユーザ用のアクセス許可レベルを作成します。

アクセス許可レベルについては以下をご参考にしてください。
アクセス許可レベルおよびグループを決定する (SharePoint Server)

今回の要件として、一般ユーザは「自身が申請者となっているデータのみ閲覧・編集することができる」必要があります。
データを編集する場合、「投稿」というアクセス許可レベルを付与すればよいのですが、「投稿」では個人用ビューを作成できてしまいます。
よって、一般ユーザが自身で「すべての申請」ビュー相当のデータを表示することができてしまいます。

上記を防ぐために、カスタムのアクセス許可レベルを新たに作成します。(これ以外の設定は、「投稿」と同一です。)
※「投稿」を上書きするのではなく、新しく作成してください。

[SharePointリストのカスタムアクセス許可レベル_名前
[SharePointリストのカスタムアクセス許可レベル_名前
SharePointリストのカスタムアクセス許可レベル_個人の権限
SharePointリストのカスタムアクセス許可レベル_個人の権限

 

アクセス許可レベルを割り当てる

作成したアクセス許可レベルを、対象リストの権限に割当てます。
(今回「samplesite 閲覧者」に一般ユーザが含まれています。)

SharePointリストの権限
SharePointリストの権限

この設定により、一般ユーザは「リストのデータを閲覧・編集できるが、個人用ビューは作成できない」状態になりました。

 

 

本日はここまで。

今回は、SharePointのビューに擬似的なアクセス制限をかけるため、ビューを作成し、アクセス許可レベルを割り当てるところまでを説明しました。
次回は、サイトナビゲーションを作成し、対象のユーザーしか特定のビューを閲覧できないように設定していきます。

ここまで読んでくださり、ありがとうございます。

 

Power Platform(SharePoint・Power Apps・Power Automate)に関する営業活動や設計、開発などを担当:小刀稱知哉

小刀稱知哉

大分県出身(温泉大好き♥♥)、現在は東京都在住

1990年4月9日生まれ

30才にしてメーカーの技術営業からIT業界にジョブチェンジ!!!

趣味は読書

Power Platform(SharePoint・Power Apps・Power Automate)に関する営業活動や設計、開発などを担当しております!

シェアする
記事カテゴリ
最新記事
2024.04.17

Power Apps・Power Automateの勉強方法(1)

2024.04.03

非エンジニア【(元)自治体職員】が半年間ローコード開発をしてみたら

2024.03.27

Power Automateのベストプラクティス・アンチパターン(5)【Apply to each×コンカレンシー×変数の設定はNG】

2024.03.20

Power Apps×Teams:Teams上からPower Appsを実行する方法

2024.03.13

Power Apps:SharePointリストと連携したカレンダーアプリを自作してみよう

モデル駆動型アプリPower AppsPower PlatformSharePointExcelPower AutomateC#attributevalidationローコードAngularAccessInfoPathMatTableAngular Materialデータ構造SortByColumns関数TypeScriptHTMLEF CoreマイグレーションFramework CoreAttribute directivesO/Rマッパーazure sql databaseCase式HTTP RequestCSSxUnit.Net Core 3.1VSCode.Net Core Test ExplorerDataverse for Teamsitem関数Google MapsMarker ClustererRANK()関数Dynamics 365 SalesMicrosoft TranslatorマーカークラスタリングライブラリtailwindcssマルチテナントドロップダウンメニューBreakpointObserverメディアクエリスマホPCレスポンシブ入門初心者中級者キャンバスアプリDatePickerDropdownviewビューアクセス制限承認リマインドSetForAllUpdateContextロードマップ技術It情報技術メッセージIDメールfirst()関数nest入れ子動的リストcollectionコレクション複数の添付ファイル承認フローformエクスポートインポートカスタマイズcomponentダイアログコンポーネントdialogTips新機能変数検索Microsoft 365グループセキュリティグループ送信元メールの送信差出人インスタントクラウドフロー自動化したクラウドフロー委任VBAエラーエクセルerror復元restorePower BI個人列ユーザー列SharePoint Onlineリスト非表示アプリ[市民開発者構築自動化したクラウド フローフローの種類インスタント クラウド フロースケジュール済みクラウド フローレスポンシブ レイアウトresponsive layoutデータ行の制限引き継ぎ退職所有者を変更異動LoopMicrosoftdesignJSONデザインtemplateテンプレート運用選択肢列参照列ChatGPTOpenAIオープンAIチャットGPTgalleryギャラリースクロールコンテナショートカットキーshortcut keyconcat関数文字制限フロー実行開発環境環境本番環境ライセンス環境構築手順pipelineCI/CDパイプラインDevOpsMicrosoft 365簡易在庫管理時間外通知ファイルフィルター クエリドキュメント ライブラリfilter querysortソートmultiple item複数項目シェアポイント便利機能カレンダーCalendarTeamsローコード開発非エンジニア体験談勉強内製化
PageTop
ページトップに戻る