SharePoint でのアドインのアクセス許可
この記事を読む前に、「SharePoint アドインの承認と認証」トピックの内容を把握しておく必要があります。
SharePoint アドインは、インストールの際に必要となるアクセス許可を、インストールを実行するユーザーに対して要求します。 アドインの開発者は、アドイン マニフェスト ファイルを通して、特定のアドインを実行するために必要なアクセス許可を要求する必要があります。 (SharePoint にアクセスするが SharePoint Web サイトにはインストールされていないデバイスおよび Web アプリには、アドインを実行しているユーザーが実行時にアクセス許可を付与する必要があります。詳細については、「 SharePoint アドインの承認コード OAuth フロー」を参照してください)。
ユーザーは、自分が所有しているアクセス許可のみを付与できます。 ユーザーは、アドインが要求するアクセス許可をすべて付与するか、1 つも付与しないかのどちらかに決定する必要があります。 一部を選択的に付与することはできません。 (実行時にアクセス許可を要求するアドインの場合、アドインが "読み取り" などの下位のアクセス許可を求めているだけの場合であっても、アドインがアクセスしようとする SharePoint リソースに対して "管理" アクセス許可を持つユーザーのみがアドインを実行できます。)
アドインに付与されたアクセス許可は、SharePoint ファームまたは SharePoint Online テナンシーのコンテンツ データベースにも格納されます。 それらが、Microsoft Azure Access Control Service (ACS) などの、セキュリティで保護されたトークン サービスを使用して格納されることはありません。 ユーザーがアドインにアクセス許可を最初に付与すると、SharePoint は、アドインに関する情報を ACS から取得します。 その後、SharePoint は、アドインに関する基本情報をアドインのアクセス許可と一緒に、アドイン管理サービスおよびコンテンツ データベースに格納します。 ACS の詳細については、「低信頼承認を使用する SharePoint アドインの作成」を参照してください。
重要
Azure Active Directory (Azure AD) のサービスである Azure アクセス制御 (ACS) は、2018 年 11 月 7 日に廃止されます。 SharePoint アドイン モデルでは、(この廃止の影響を受けない) https://accounts.accesscontrol.windows.net
ホスト名を使用しているため、この廃止による影響はありません。 詳細については、「SharePoint アドインに対する Azure アクセス制御の終了の影響」を参照してください。
アドインがアクセス許可を付与されているオブジェクトを削除すると、対応する許可も削除されます。 アドインがアクセス許可を付与されているオブジェクトをリサイクルする場合、SharePoint は対応する許可を変更しません。 これは、オブジェクトがごみ箱から復元される場合に、許可がそのままであるようにするためです。
アドインが削除されると、アドインを削除した範囲でアドインに付与されていたすべてのアクセス許可が取り消されます。 これは、ユーザーが SharePoint からアドインを削除した後で、アドインがその資格情報を使用して SharePoint の保護されたリソースにリモートでアクセスし続けることができないようにするためです。
アドインのアクセス許可とアクセス許可スコープの種類
SharePoint アドインはアクセス許可要求を使用して、正常に機能するために必要なアクセス許可を指定します。 このアクセス許可要求は、アドインが必要とする権限とその権限を必要とする範囲の両方を指定します。 これらのアクセス許可は、アドイン マニフェストの一部として要求されます。
アクセス許可要求スコープは、アクセス許可要求が適用される SharePoint 階層内の位置を示します。
注:
SharePoint アドインは独自の ID を持つセキュリティ プリンシパルで、アドイン プリンシパルと呼ばれます。 ユーザーやグループと同じように、アドイン プリンシパルには特定のアクセス許可つまり権限があります。 アドイン プリンシパルには、アドイン Web に対するフル コントロール権限があるので、アドイン Web の外部にあるホスト Web や他の場所の SharePoint リソースに対してのみアクセス許可を要求することが必要になります。 アドイン Web の詳細については、「SharePoint アドイン アーキテクチャと開発環境に関する重要な要素」および「SharePoint でのホスト Web、アドイン Web、および SharePoint コンポーネント」を参照してください。
SharePoint は、コンテンツ データベースおよびテナンシー内で 4 種類のアクセス許可スコープをサポートしています (表 1 を参照)。 アクセス許可スコープには "http:" というプレフィックスを含む URI で名前が付けられていますが、これらは URL ではなく、プレースホルダーは含まれていません。 次の表とこの記事にあるアクセス許可スコープはリテラル文字列です。
表 1. SharePoint アドインのアクセス許可要求範囲 URI および説明
スコープ | スコープ URI | 説明 |
---|---|---|
テナンシー | http://sharepoint/content/tenant | アドインがインストールされるテナンシー。 この範囲のすべての子を含みます。 |
サイト コレクション | http://sharepoint/content/sitecollection | アドインがインストールされるサイト コレクション。 この範囲のすべての子を含みます。 |
Web サイト | http://sharepoint/content/sitecollection/web | アドインがインストールされる Web サイト。 この範囲のすべての子を含みます。 |
リスト | http://sharepoint/content/sitecollection/web/list | アドインがインストールされる Web サイト内の単一のリストです。 アドインをインストールするユーザーに対して、アクセス許可の付与を求めるプロンプトが表示されるとき、ユーザーはこのダイアログで、アドインにアクセス許可を付与するリストを 1 つ選択できます。 アドインに複数のリストへのアクセス許可が必要な場合、そのアドインは Web スコープへのアクセス許可を要求する必要があります。 また、開発者は、ユーザーが選択したリストを制御したり、選択するリストをユーザーに伝えたりする方法がないため、アドインでアクセス許可を持つ必要があるリストがある場合は Web スコープを使用する 必要 があります (ただし、ユーザーの選択をリストの特定のサブセットに絞り込む方法があります。関連するプロパティを使用した アクセス許可要求スコープを参照してください)。 |
アドインがいずれかの範囲に対するアクセス許可を付与された場合、そのアクセス許可は、その範囲のすべての子にも適用されます。 たとえば、Web サイトに対するアクセス許可がアドインに付与された場合、その Web サイトに含まれている各リストと、各リストに含まれるすべてのリスト アイテムに対するアクセス許可もアドインに付与されます。
アクセス許可要求は、アドインがインストールされているサイト コレクションのトポロジに関する情報なしで実行されるので、そのスコープは特定のインスタンスの URL ではなく、種類として表されます。 これらのスコープの種類は、URI として表されます。 SharePoint コンテンツ データベースに格納されているリソースに対するアクセス許可は、http://sharepoint/content
という URI の下に整理されます。
アドインのアクセス権限とユーザー権限の相違点
アクセス許可は、要求した範囲内でアドインが実行することを許可されるアクティビティを示します。 SharePoint では、コンテンツ データベース内の 4 つの権限レベルがサポートされます。 各範囲で、アドインは、以下の権限を持つことができます。
- 読み取り
- 書き込み
- 管理
- FullControl
注:
読み取り、書き込み、管理、および FullControl の各権限の内容については、「SharePoint Server 用アプリを計画する」を参照してください。
注:
これらの権限は、閲覧者、共同作成者、デザイナー、フル コントロールなど、SharePoint の既定のユーザーのアクセス許可レベルの詳細に対応しています。 ユーザーのアクセス許可レベルの詳細については、「ユーザー権限とアクセス許可レベル」を参照してください。アドインの権限名は、SharePoint ユーザー ロールの権限名とは一致しません。これは、ユーザー ロールの権限とアドインの権限の混同を避けるためです。 SharePoint ユーザー ロールに関連付けられるアクセス許可をカスタマイズしても、アドインのアクセス許可要求レベルに影響しないため、アドインの権限名は、フル コントロール以外は対応する SharePoint ユーザー ロールと一致せず、アクセス許可管理ユーザー インターフェイスを通してカスタマイズすることはできません。
さらに、
検索の場合のみ、アドインは Query 権限を持つことができます。
Microsoft Project Server 2013 の一部のスコープでは、SubmitStatus 権限や Elevate 権限もあります。 Project Server 2013 の大半のスコープでは、"読み取り" と "書き込み" のみを使用できます。 詳細については、この記事の「アドインのアクセス許可とアクセス許可スコープの種類」セクションを参照してください。
分類の場合は、読み取りと書き込みの権限のみが利用可能です。
注:
Office ストア アプリには、アドインが要求できる権限の種類に関して、いくつかの制限があります。 詳細については、この記事 の「アドインのアクセス許可とアクセス許可スコープの種類 」セクションを参照してください。
SharePoint ユーザー ロールとは異なり、これらの権限レベルはカスタマイズできません。 これは、アドインにアクセス許可要求が付与されたときに、アドインが予測可能な一連の機能を保証し、予想よりも少ないアクセス許可が付与される可能性を考慮する必要がないことを確認するためです。
ユーザーは、ユーザー自身が持っているアドイン アクセス許可しか付与することができません。 ユーザーがインストールを試みているアドインが、そのユーザーが持っているアクセス許可より高いアクセス許可を要求している場合は、アドインの要求を承認するにはアクセス許可が不足していることをユーザーに通知するエラー メッセージが表示されます。
SharePoint が認識しないアクセス許可は無視されます。 これは、SharePoint が認識しないアクセス許可をアドインが要求した場合でもアドインをインストールできますが、アクセス許可を付与するようにとのメッセージがユーザーに出されることはなく、アドインにはアクセス許可が付与されないことを意味します。
使用可能なスコープとアクセス許可、および Office ストア アプリのアクセス許可に対する制限事項
アドインが要求できる権限セットは、範囲ごとに異なります。 このセクションでは、各範囲で使用できる権限のセットについて説明します。 Office ストア で販売される SharePoint アドインの制限事項についても説明します。
Office ストア アプリの権限
Office ストア アプリでは、Read、Write、および、Manage 権限のみが許可されます。 FullControl 権限が必要なアプリを Office ストア に送信しようとすると、アプリの送信はブロックされます。 ブロックが行われるのは Office ストア の送信パイプライン内なので、Manage アクセス権を超える要求をするアプリであっても、アドイン カタログを通して展開することができます。
リスト コンテンツとライブラリ コンテンツに対するアクセス許可要求スコープ
表 2 に、リスト コンテンツとライブラリ コンテンツ用のアクセス許可要求スコープを示します。また、各スコープ URI で指定できる権限も同時に示します。
注:
表 2 で使用されている URI はリテラル値です。
表 2. SharePoint アドインのアクセス許可範囲 URI と使用可能な権限
スコープ URI | 使用可能な権限 |
---|---|
http://sharepoint/content/sitecollection | Read、Write、Manage、FullControl |
http://sharepoint/content/sitecollection/web | Read、Write、Manage、FullControl |
http://sharepoint/content/sitecollection/web/list | Read、Write、Manage、FullControl |
http://sharepoint/content/tenant | Read、Write、Manage、FullControl |
次のコードは、AppManifest.xml ファイル内でアクセス許可範囲と権限をどのように使用するかを示しています。 最初の例では、アドインは、リスト範囲への Write アクセス許可を要求しています。
<?xml version="1.0" encoding="utf-8" ?>
<App xmlns="http://schemas.microsoft.com/sharepoint/2012/app/manifest"
ProductID="{4a07f3bd-803d-45f2-a710-b9e944c3396e}"
Version="1.0.0.0"
SharePointMinVersion="15.0.0.0"
Name="MySampleAddIn"
>
<Properties>
<Title>My Sample Add-in</Title>
<StartPage>~remoteAppUrl/Home.aspx?{StandardTokens}</StartPage>
</Properties>
<AppPrincipal>
<RemoteWebApplication ClientId="1ee82b34-7c1b-471b-b27e-ff272accd564" />
</AppPrincipal>
<AppPermissionRequests>
<AppPermissionRequest Scope="http://sharepoint/content/sitecollection/web/list" Right="Write"/>
</AppPermissionRequests>
</App>
次のコードは、Web スコープに対する Read アクセスと、リスト スコープに対する Write アクセスを求めるアドインを示しています。
<?xml version="1.0" encoding="utf-8" ?>
<App xmlns="http://schemas.microsoft.com/sharepoint/2012/app/manifest"
ProductID="{4a07f3bd-803d-45f2-a710-b9e944c3396e}"
Version="1.0.0.0"
SharePointMinVersion="15.0.0.0"
Name="MySampleAddIn"
>
<Properties>
<Title>My Sample Add-in</Title>
<StartPage>~remoteAppUrl/Home.aspx?{StandardTokens}</StartPage>
</Properties>
<AppPrincipal>
<RemoteWebApplication ClientId="6daebfdd-6516-4506-a7a9-168862921986" />
</AppPrincipal>
<AppPermissionRequests>
<AppPermissionRequest Scope="http://sharepoint/content/sitecollection/web" Right="Read"/>
<AppPermissionRequest Scope="http://sharepoint/content/sitecollection/web/list" Right="Write"/>
</AppPermissionRequests>
</App>
SharePoint の他の機能に対するアクセス許可要求スコープ
SharePoint の他の機能に対するアクセス許可要求スコープを次の表に示します。
注:
表で使用されている URI はリテラル値です。
表 3 に、Business Connectivity Services (BCS) 用のアクセス許可要求スコープを示します。 また、各スコープ URI で指定できる権限も同時に示します。
表 3. BCS アドインのアクセス許可範囲 URI と使用可能な権限
スコープ URI | 使用可能な権限 |
---|---|
http://sharepoint/bcs/connection | Read |
注:
BCS アドインのアクセス許可要求スコープの詳細については、「SharePoint の Business Connectivity Services」を参照してください。
表 4 に、検索用のアクセス許可要求の範囲を示します。 また、各スコープ URI で指定できる権限も同時に示します。
表 4. 検索アドインのアクセス許可範囲 URI と使用可能な権限
スコープ URI | 使用可能な権限 |
---|---|
http://sharepoint/search | QueryAsUserIgnoreAppPrincipal |
注:
検索アドインのアクセス許可要求スコープの詳細については、「SharePoint での検索」を参照してください。
表 5 に、Project Server 2013 用のアクセス許可範囲を示します。 各範囲 URI で指定できる権限も同時に示します。 > [!注] > Project Server 2013 の機能とサービスを使用するアドインは、必要な Project Server の機能とサービスがある環境でテストする必要があります。 Project Server 2013 のアクセス許可スコープを認識する Project Server 2013 のアクセス許可プロバイダー アセンブリは、既定では SharePoint Server にインストールされません。 詳細については、Project Server 2013 の開発者ドキュメントを参照してください。
表 5。 Project Server アドインのアクセス許可範囲 URI と使用可能な権限
スコープ | 使用可能な権限 |
---|---|
http://sharepoint/projectserver | Manage |
http://sharepoint/projectserver/projects | Read、Write |
http://sharepoint/projectserver/projects/project | Read、Write |
http://sharepoint/projectserver/enterpriseresources | Read、Write |
http://sharepoint/projectserver/statusing | SubmitStatus |
http://sharepoint/projectserver/reporting | Read |
http://sharepoint/projectserver/workflow | Elevate |
表 6 に、ソーシャル フィーチャー用のアクセス許可範囲を示します。 各範囲 URI で指定できる権限も同時に示します。
表 6. ソーシャル フィーチャー アドインのアクセス許可範囲 URI と使用可能な権限
スコープ名 | 説明 | 使用可能な権限 |
---|---|---|
ユーザー プロファイルhttp://sharepoint/social/tenant |
すべてのユーザー プロファイルへのアクセスに使用するアクセス許可要求スコープ。 プロフィール画像のみを変更できます。その他のすべてのユーザー プロファイル プロパティは、SharePoint アドインの読み取り専用です。テナント管理者がインストールする必要があります。 | 読み取り、書き込み、管理、フル コントロール |
コアhttp://sharepoint/social/core |
ユーザーがフォローしているコンテンツと、ミニブログ機能で使用する共有メタデータにアクセスするためのアクセス許可要求スコープ。 このスコープは、コンテンツのフォロー機能をサポートしている個人用サイトにのみ適用されます。 アプリがその他の種類のサイトにインストールされる場合、テナント スコープを使用してください。 | 読み取り、書き込み、管理、フル コントロール |
ニュース フィードhttp://sharepoint/social/microfeed |
ユーザーのフィードまたはチームのフィードにアクセスするためのアクセス許可要求スコープ。 このスコープは、ミニブログ機能をサポートしている個人用サイト、または サイト フィード機能がアクティブになっているチーム サイトに適用されます。 アプリがその他の種類のサイトにインストールされる場合、テナント スコープを使用してください。 | Read、Write、Manage、FullControl |
http://sharepoint/social/trimming |
この権限では、アプリに対するソーシャル フィードにセキュリティ トリミング コンテンツを表示するかどうかを決定するために使用するスコープが必要です。 この高信頼許可が付与されない場合、一部のコンテンツ (アプリが権限を持たないドキュメントやサイトに関する操作) は、ユーザーに十分な権限がある場合でも、アプリに返されるフィード データから削除されます。 この権限はアプリのマニフェスト ファイルに手動で追加する必要があります。 | Read、Write、Manage、FullControl |
注:
ソーシャル機能アドインのアクセス許可要求スコープの詳細については、「SharePoint アドインでのソーシャル機能アクセスのためのアプリのアクセス許可要求」を参照してください。
表 7 に、タクソノミー用のアクセス許可要求範囲を示します。 また、各スコープ URI で指定できる権限も同時に示します。
表 7. タクソノミー アドインのアクセス許可範囲 URI と使用可能な権限
スコープ URI | 使用可能な権限 |
---|---|
http://sharepoint/taxonomy | Read、Write |
注:
分類アドインのアクセス許可要求スコープの詳細については、「SharePoint の機能を追加する」を参照してください。
関連するプロパティを含むアクセス許可要求スコープ
リストのアクセス許可要求スコープには、オプションのプロパティがさらにあります。 リスト スコープには、次のマークアップ例に示すように、BaseTemplateId という名前のプロパティと、リスト ベース テンプレートに対応する整数値を指定できます。 ベース テンプレート ID を指定しない場合、アドインをインストールするユーザーが、Web のすべてのリストのうちの 1 つのリストへのアクセス許可をそのアドインに付与することを選択できます。 ベース テンプレート ID を指定する場合、ユーザーが選択できるリスト セットは、BaseTemplateId プロパティの指定内容と一致するリスト セットに限定されます。
BaseTemplateId プロパティは子要素であり、 AppPermissionRequest 要素の属性ではありません。 次のコードは、 BaseTemplateId プロパティの使用方法を示しています。
<AppPermissionRequest Scope="http://sharepoint/content/sitecollection/web/list" Right="Write">
<Property Name="BaseTemplateId" Value="101"/>
</AppPermissionRequest>
表 8. 関連するプロパティを含むアクセス許可要求スコープ
スコープ URI | プロパティ | 型 |
---|---|---|
http://sharepoint/content/sitecollection/web/list | BaseTemplateId | 整数 |
注:
BaseTemplateId およびリスト ベース テンプレートに対応する整数値の詳細については、 List 要素 (リスト) の Type 属性を参照してください。
アドインのアクセス許可の管理とトラブルシューティング
SharePoint にインストールされる SharePoint アドインには、インストール時にアクセス許可が付与されます。 他のプラットフォームにインストールされているものの SharePoint にアクセスするアドインについては、アドインを実行しているユーザーが、アクセス許可を実行時に付与します。 前者の種類のアドインは、アクセス許可を失うことがあります。 アドインにアクセス許可を再度付与するには、次の手順を実行してください。
アドインがアクセス許可を失ったと思われる Web サイトの [サイト コンテンツ] ページで、アドインのタイルにある […] ボタンを選択します。 これにより、[アクセス許可] リンクのある吹き出しか、別の […] ボタンのある吹き出しが開きます。
[アクセス許可] リンクがある場合はそのリンクを選択し、次の手順をスキップします。ない場合は […] ボタンをクリックします。
[アクセス許可] リンクを選択します。
開いたページで、最後の文にある "ここ" をクリックします。 これにより、アドインにアクセス許可が再度付与され、ブラウザーは元の [サイト コンテンツ] ページにリダイレクトされます。
アドインの開発やトラブルシューティングを行っている場合、既にインストールしたアドインのアクセス許可を変更、または再度付与する必要が生じることがあります。 それらを行うには、次の手順を実行してください。
に移動します
http://{SharePointWebSite}_layouts/15/AppInv.aspx
。 <ここで、SharePointWebSite> はアドインがインストールされている Web サイトの URL です。 この URL にクエリ パラメーターを追加しないように注意してください。 URL が上記のとおりである場合にのみ、必要なフォームがこのページに表示されます。アドインの ID (クライアント ID ともいう) を [アドイン ID] ボックスに入力し、[参照] を選択します。 フォーム上の他のボックスに、アドインに関する情報が読み込まれます。
[権限の要求 XML] ボックスに、アドイン マニフェストに入力するのと同じようにして、アクセス許可要求を入力します。 例については、「リスト コンテンツとライブラリ コンテンツに対するアクセス許可要求スコープ」を参照してください。 完全な構文情報については、「AppPermissionRequest 要素」を参照してください。
[作成] を選択します。
特定のスコープに対するアドインのアクセス許可は、アドインがそのスコープから削除されると取り消されます。
アドインをユーザーに対して非表示にできない理由
SharePoint Web サイトを参照する権限を持つすべてのユーザーは、そのサイトにインストールされた任意の SharePoint アドインを起動できます。 ユーザーがそのアドインを使用して実行できる内容は、ユーザーの他のアクセス許可と、アドインで使用されている承認ポリシーの種類によって決まります。 ユーザーが、実行するアクセス許可を持っていない処理をそのアドインで実行しようとすると、SharePoint に対する呼び出しで "ユーザー + アドイン" ポリシーが使用されている場合、その呼び出しは失敗します。