SharePoint アドインの 3 つの承認システム

SharePoint では、SharePoint アドインはユーザーと同様の ID プリンシパルであり、SharePoint リソースを使用するために認証と承認が行われる必要があります。 アドインが使用できる承認システムは 3 つあります。 これらは相互に排他的ではありません。

3 つの認証システムとそれらを使用するタイミングについて

低信頼アプリ

プロバイダー向けのホスト型 SharePoint アドインは、アドインがインストールされる SharePoint テナンシーまたはファームのリソースにアドインがアクセスできるようにするため、アドインにアクセス トークンを発行する Microsoft Azure Access Control Service (ACS) に登録できます。 Azure ACS は、SharePoint とアドインのリモート コンポーネントを含む OAuth 2.0 フレームワーク "フロー" の信頼されたトークン発行者です。 このシステムを使用するアドインは、Office ストアで販売できます。 低信頼システムの主な対象は、リモート コンポーネントがクラウドでホストされているアドインです。

重要

Azure Active Directory (Azure AD) のサービスである Azure アクセス制御 (ACS) は、2018 年 11 月 7 日に廃止されます。 SharePoint アドイン モデルでは、(この廃止の影響を受けない) https://accounts.accesscontrol.windows.net ホスト名を使用しているため、この廃止による影響はありません。 詳細については、「SharePoint アドインに対する Azure アクセス制御の終了の影響」を参照してください。

低信頼システムを使用する SharePoint アドインの作成の詳細については、「低信頼承認を使用する SharePoint アドインの作成」を参照してください。

注:

アドインをインストールするお客様は、Office 365 アカウントを持っている必要があります。 これは、アドインに Azure ACS へのアクセス権を付与するために必要です。 ただし、お客様は他の目的にはこのアカウントを使用する必要はなく、オンプレミスの SharePoint ファームでいくつかの簡単な構成タスクを行ってから、そのファームにアドインをインストールできます。

高信頼アプリ

プロバイダー向けのホスト型アドインは、デジタル証明書を使用して SharePoint と信頼関係を確立できます。 高信頼システムの主な対象は、リモート コンポーネントがオンプレミスでホストされているアドインです。 アドインは、インターネットに接続されていない SharePoint ファームにインストールできます。 アドインは、SharePoint Online にインストールすることも、Office ストアで販売することもできません。

高信頼認証を使用する SharePoint アドインの作成の詳細については、「高信頼承認を使用する SharePoint アドインを作成する」を参照してください。

クロスドメイン ライブラリ

アドインのビジネス ロジックが JavaScript にある場合、SharePoint クロスドメイン ライブラリを、低信頼システムおよび高信頼システムの代わりまたは補足として使用するオプションがあります。 また、ライブラリは、アドインにクラウド ホスト型コンポーネントがあるものの、お客様の企業ファイアウォールのため、低信頼システムの使用が難しいシナリオも対象としています。 ユーザーのブラウザーは他のドメインからのスクリプトをブロックしますが、ライブラリはこの制限を回避するために安全なシステムをカプセル化します。 ライブラリを使用するアドインは、Office ストアで販売することができ、SharePoint Online またはオンプレミスの SharePoint のいずれかにインストールできます。

クロスドメイン ライブラリを使用する SharePoint アドインの作成の詳細については、以下を参照してください。

OAuth 2.0 フレームワークとその SharePoint 実装に関する背景情報

3 つの承認システムのうち 2 つの承認システムが OAuth 2.0 フレームワークを使用します。 OAuth 2.0 は、承認用のオープン フレームワークです。 OAuth を使用すると、デスクトップ アプリケーション、デバイス アプリケーション、Web アプリケーションから、セキュリティで保護された認証を標準的な方法で実行できるようになります。 OAuth を使用することで、ユーザーは自分のユーザー名やパスワードを共有することなく、アプリケーションがユーザーの代わりに動作することを承認できます。

たとえば、ユーザーは、自分の資格情報 (通常はユーザー名とパスワード) を他のサイトに提供せずに、個人のリソースやデータ (連絡先リスト、ドキュメント、写真、動画など) を 1 つのサイトと別のサイトで共有することができます

OAuth を使用すると、ユーザーは、特定のサービス プロバイダー (SharePoint など) によってホストされているデータに対して、アクセス トークンを提供できます。 各トークンは、特定のリソース プロバイダー (SharePoint Web サイトなど) が、特定のリソース (SharePoint ドキュメント ライブラリ内のドキュメントなど) を、定義された期間 (例: 12 時間) にわたってアクセスする許可を与えます。 これにより、ユーザーは、サード パーティの Web アプリケーションまたはデスクトップ アプリケーションに、別のリソースまたはサービス プロバイダー (SharePoint など) に格納されている情報へのアクセスを許可することができます。アクセス許可の際に、ユーザー名やパスワードを共有する必要はありません。また、プロバイダーにあるユーザーのすべてのデータを共有する必要もありません。

SharePoint は、OAuth 2.0 フレームワークのトークン受け渡し "フロー" を使用して、次の処理を行います。

  • SharePoint リソースにアクセスするための SharePoint アドインによる要求を承認します。

  • Office ストア、アドイン カタログ、または開発者テナントでアドインを認証します。

OAuth と OAuth の用語の詳細や背景については、「OAuth.net」および「Web 認証プロトコル (OAuth)」を参照してください。

要約すると、保護されたリソースをホストするリソース サーバーがあり、リソースの所有者が存在し、リソースへのアクセスを求めるクライアント アプリケーションがあり、リソース所有者に指示されたときにリソースへのアクセス トークンを発行する承認サーバーがあります。

OAuth の公式のドキュメントでは、1 人のリソース所有者が、クライアント アプリケーションが実行されるたびにクライアント アプリケーションからリソースへのアクセスを許可するシナリオがよく想定されます。 また、クライアント アプリケーションを使用しているユーザーがリソースの所有者であるというシナリオも想定されます。

SharePoint の実装では、SharePoint リソース (リストなど) を複数のユーザーで共有する場合があることを考慮に入れます。 さらに、SharePoint の実装では、SharePoint アドインにアクセス許可が付与されるのは毎回の実行時ではなくインストール時であり、アドインをインストールしたユーザーやアクセス許可を付与したユーザー以外のユーザーもそのアドインを実行できます。 (ただし、SharePoint 上にインストールされずに SharePoint リソースにアクセスするアドイン ("SharePoint アドイン" の意味を広く解釈した場合のアドイン) の場合は、アドインを実行するユーザーが、アドインを実行するたびにアクセス許可を付与する必要があります。)

そのため、SharePoint 実装では、OAuth の役割を次のコンポーネントが担います。

  • SharePoint アドインのリモート コンポーネントは、クライアント アプリケーションの役割を果たします。

  • SharePoint ユーザーは、リソース所有者の役割を果たします。

  • SharePoint は、リソース サーバーの役割を果たします。

  • 低信頼承認システムが使用される場合は、Azure ACS が承認サーバーの役割を果たします。 高信頼システムが使用される場合は、アドインそのものが (デジタル証明書と併用されることにより) 承認サーバーになります。

アクセス トークンはサインイン トークンではない

前述したように、リソースにアクセスするために、アドインはリソースの所有者が事前に信頼できるセキュリティ トークン発行者 (STS) として指定した OAuth 認証サーバーからアクセス トークンを要求する必要があります。 これに対して、WS-Federation STS と Security Assertion Markup Language (SAML) パッシブ サインイン STS は、主にサインイン トークンの発行を目的としています。

SharePoint では、OAuth STS はサインイン トークンの発行には使用されません。つまり、ID プロバイダーとしては使用されません。 そのため、サーバーの全体管理の [認証プロバイダー] セクションや SharePoint のユーザー選択ウィンドウのユーザー サインイン ページに、OAuth STS は一覧表示されません。

SharePoint 管理者は、Windows PowerShell コマンドを使用して OAuth STS を有効または無効にすることができます。これは、SharePoint で信頼済みサインイン プロバイダーを有効または無効にする場合と同様の方法で実施できます。

関連項目