SharePoint アドインの 3 つの承認システムThree authorization systems for SharePoint Add-ins

SharePoint では、SharePoint アドインはユーザーと同様の ID プリンシパルであり、SharePoint リソースを使用するために認証と承認が行われる必要があります。In SharePoint, a SharePoint Add-in is an identity principal just like a user and it must be authenticated and authorized to use SharePoint resources. There are three authorization systems that an add-in can use. They are not mutually exclusive. アドインが使用できる承認システムは 3 つあります。There are three authorization systems that an add-in can use. これらは相互に排他的ではありません。They are not mutually exclusive.

3 つの認証システムとそれらを使用するタイミングについてUnderstand the three authorization systems and when to use them

低信頼アプリLow-trust authorization

プロバイダー向けのホスト型 SharePoint アドインは、アドインがインストールされる SharePoint テナンシーまたはファームのリソースにアドインがアクセスできるようにするため、アドインにアクセス トークンを発行する Microsoft Azure Access Control Service (ACS) に登録できます。Low-Trust: A provider-hosted SharePoint Add-in can register with Microsoft Azure Access Control Service (ACS) which issues an access token to the add-in that allows the add-in access to the resources in the SharePoint tenancy or farm on which the add-in is installed. Azure ACS is the trusted token issuer in an OAuth 2.0 Framework "flow" that includes SharePoint and the remote components of the add-in. Add-ins that use this system can be sold in the Office Store. The low-trust system is primarily intended for add-ins whose remote components are hosted in the cloud. Azure ACS は、SharePoint とアドインのリモート コンポーネントを含む OAuth 2.0 フレームワーク "フロー" の信頼されたトークン発行者です。Azure ACS is the trusted token issuer in an OAuth 2.0 Framework "flow" that includes SharePoint and the remote components of the add-in. このシステムを使用するアドインは、Office ストアで販売できます。Add-ins that use this system can be sold in the Office Store. 低信頼システムの主な対象は、リモート コンポーネントがクラウドでホストされているアドインです。The low-trust system is primarily intended for add-ins whose remote components are hosted in the cloud.

低信頼システムを使用する SharePoint アドインの作成の詳細については、「低信頼承認を使用する SharePoint アドインの作成」を参照してください。For more information about creating a SharePoint Add-in that uses the low-trust system, see the SDK node Creating SharePoint Add-ins that use low-trust authorization.

注意

アドインをインストールするお客様は、Office 365 アカウントを持っている必要があります。The customer who installs the add-in must have an Office 365 account. これは、アドインに Azure ACS へのアクセス権を付与するために必要です。This is needed to give the add-in access to Azure ACS. ただし、お客様は他の目的にはこのアカウントを使用する必要はなく、オンプレミスの SharePoint ファームでいくつかの簡単な構成タスクを行ってから、そのファームにアドインをインストールできます。Note The customer who installs the add-in must have an Office 365 account. This is needed to give the add-in access to the Azure ACS. However, the customer need not use the account for any other purpose, and the add-in can be installed to an on-premise SharePoint farm after some simple configuration tasks on the farm.

高信頼アプリHigh-trust authorization

プロバイダー向けのホスト型アドインは、デジタル証明書を使用して SharePoint と信頼関係を確立できます。A provider-hosted add-in can establish trust with SharePoint by using digital certificates. 高信頼システムの主な対象は、リモート コンポーネントがオンプレミスでホストされているアドインです。The high-trust system is primarily intended for add-ins whose remote components are hosted on-premises. アドインは、インターネットに接続されていない SharePoint ファームにインストールできます。The add-in can be installed to a SharePoint farm that is not connected to the Internet. アドインは、SharePoint Online にインストールすることも、Office ストアで販売することもできません。The add-in cannot be installed on SharePoint Online or sold in the Office Store.

高信頼認証を使用する SharePoint アドインの作成の詳細については、「高信頼承認を使用する SharePoint アドインを作成する」を参照してください。For more information about creating a SharePoint Add-in that uses the high-trust system, see the SDK node Creating SharePoint Add-ins that use high-trust authorization.

クロスドメイン ライブラリCross-domain library

アドインのビジネス ロジックが JavaScript にある場合、SharePoint クロスドメイン ライブラリを、低信頼システムおよび高信頼システムの代わりまたは補足として使用するオプションがあります。When the add-in's business logic is in JavaScript, you have the option of using the SharePoint cross-domain library either in place of, or as a supplement to, the low-trust and high-trust systems. また、ライブラリは、アドインにクラウド ホスト型コンポーネントがあるものの、お客様の企業ファイアウォールのため、低信頼システムの使用が難しいシナリオも対象としています。The library is also intended for scenarios where the add-in has cloud-hosted components, but the customer's corporate firewall makes it difficult to use the low-trust system. ユーザーのブラウザーは他のドメインからのスクリプトをブロックしますが、ライブラリはこの制限を回避するために安全なシステムをカプセル化します。The user's browser blocks scripts from other domains, but the library encapsulates a secure system for working around this restriction. ライブラリを使用するアドインは、Office ストアで販売することができ、SharePoint Online またはオンプレミスの SharePoint のいずれかにインストールできます。Add-ins that use the library can be sold in the Office Store and can be installed to either SharePoint Online or on-premises SharePoint.

クロスドメイン ライブラリを使用する SharePoint アドインの作成の詳細については、以下を参照してください。For more information about creating a SharePoint Add-in that uses the cross-domain library, see:

OAuth 2.0 フレームワークとその SharePoint 実装に関する背景情報Background information about the OAuth 2.0 Framework and the SharePoint implementation of it

3 つの承認システムのうち 2 つの承認システムが OAuth 2.0 フレームワークを使用します。Two of the three authorization systems use the OAuth 2.0 Framework. OAuth 2.0 は、承認用のオープン フレームワークです。OAuth 2.0 is an open framework for authorization. OAuth を使用すると、デスクトップ アプリケーション、デバイス アプリケーション、Web アプリケーションから、セキュリティで保護された認証を標準的な方法で実行できるようになります。OAuth enables secure authorization from desktop, device, and web applications in a standard way. OAuth を使用することで、ユーザーは自分のユーザー名やパスワードを共有することなく、アプリケーションがユーザーの代わりに動作することを承認できます。OAuth enables a user to approve an application to act on his or her behalf without sharing his or her user name and password.

たとえば、ユーザーは、自分の資格情報 (通常はユーザー名とパスワード) を他のサイトに提供せずに、個人のリソースやデータ (連絡先リスト、ドキュメント、写真、動画など) を 1 つのサイトと別のサイトで共有することができますTwo of the three authorization systems, use the OAuth 2.0 Framework. OAuth 2.0 is an open framework for authorization. OAuth enables secure authorization from desktop, device, and web applications in a standard way. OAuth enables a user to approve an application to act on his or her behalf without sharing his or her user name and password. For example, it enables a user to share his or her private resources or data (contact list, documents, photos, videos and so on) on one site with another site, without requiring the user to provide his or her credentials (typically user name and password) to the other site.

OAuth を使用すると、ユーザーは、特定のサービス プロバイダー (SharePoint など) によってホストされているデータに対して、アクセス トークンを提供できます。OAuth enables users to provide access tokens to data that is hosted by a given service provider (such as SharePoint). 各トークンは、特定のリソース プロバイダー (SharePoint Web サイトなど) が、特定のリソース (SharePoint ドキュメント ライブラリ内のドキュメントなど) を、定義された期間 (例: 12 時間) にわたってアクセスする許可を与えます。Each token grants access to a specific resource provider (such as a SharePoint website), for specific resources (for example, documents in a SharePoint document library), and for a defined duration (for example, 12 hours). これにより、ユーザーは、サード パーティの Web アプリケーションまたはデスクトップ アプリケーションに、別のリソースまたはサービス プロバイダー (SharePoint など) に格納されている情報へのアクセスを許可することができます。アクセス許可の際に、ユーザー名やパスワードを共有する必要はありません。また、プロバイダーにあるユーザーのすべてのデータを共有する必要もありません。OAuth enables users to provide access tokens to data that is hosted by a given service provider (such as SharePoint). Each token grants access to a specific resource provider (such as a SharePoint website), for specific resources (for example, documents in a SharePoint document library), and for a defined duration (for example, 12 hours). This enables a user to grant a third-party web or desktop application access to information that is stored with another resource or service provider (such as SharePoint), and to do so without sharing his or her user name and password and without sharing all the data that he or she has with the provider.

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

  • SharePoint リソースにアクセスするための SharePoint アドインによる要求を承認します。Authorize requests by a SharePoint Add-in to access SharePoint resources.

  • Office ストア、アドイン カタログ、または開発者テナントでアドインを認証します。Authenticate add-ins in the Office Store, an add-in catalog, or a developer tenant.

OAuth と OAuth の用語の詳細や背景については、「OAuth.net」および「Web 認証プロトコル (OAuth)」を参照してください。For more information and background about OAuth and OAuth terminology, see OAuth.net and Web Authorization Protocol (oauth).

要約すると、保護されたリソースをホストするリソース サーバーがあり、リソースの所有者が存在し、リソースへのアクセスを求めるクライアント アプリケーションがあり、リソース所有者に指示されたときにリソースへのアクセス トークンを発行する承認サーバーがあります。In sum, there is a resource server that hosts a protected resource, an owner of the resource, a client application that seeks access to the resource, and an authorization server that issues access tokens to the resource when instructed to by the resource owner.

OAuth の公式のドキュメントでは、1 人のリソース所有者が、クライアント アプリケーションが実行されるたびにクライアント アプリケーションからリソースへのアクセスを許可するシナリオがよく想定されます。The official OAuth documentation tends to assume a scenario in which there is a single resource owner who grants access to the resource from the client application each time the client application is run. また、クライアント アプリケーションを使用しているユーザーがリソースの所有者であるというシナリオも想定されます。It also assumes that the person using the client application is the resource owner.

SharePoint の実装では、SharePoint リソース (リストなど) を複数のユーザーで共有する場合があることを考慮に入れます。The SharePoint implementation takes account of the fact that a SharePoint resource, such as a list, is shared among multiple users. さらに、SharePoint の実装では、SharePoint アドインにアクセス許可が付与されるのは毎回の実行時ではなくインストール時であり、アドインをインストールしたユーザーやアクセス許可を付与したユーザー以外のユーザーもそのアドインを実行できます。Also, in the SharePoint implementation, the SharePoint Add-in is granted access when it is installed, not each time it is run, and it can be run by users other than the person who installed it and granted it access. (ただし、SharePoint 上にインストールされずに SharePoint リソースにアクセスするアドイン ("SharePoint アドイン" の意味を広く解釈した場合のアドイン) の場合は、アドインを実行するユーザーが、アドインを実行するたびにアクセス許可を付与する必要があります。)(In the case of add-ins that are not installed on SharePoint, but access SharePoint resources (so they are "SharePoint Add-ins" only in an extended sense), the user running the add-in does have to grant permissions each time the add-in is run.)

そのため、SharePoint 実装では、OAuth の役割を次のコンポーネントが担います。So, in the SharePoint implementation, the OAuth roles are played by the following components:

  • SharePoint アドインのリモート コンポーネントは、クライアント アプリケーションの役割を果たします。The remote component of a SharePoint Add-in plays the role of the client application.

  • SharePoint ユーザーは、リソース所有者の役割を果たします。SharePoint users play the role of resource owner.

  • SharePoint は、リソース サーバーの役割を果たします。SharePoint plays the role of the resource server.

  • 低信頼承認システムが使用される場合は、Azure ACS が承認サーバーの役割を果たします。Azure ACS plays the role of the authorization server when the low-trust authorization system is used. 高信頼システムが使用される場合は、アドインそのものが (デジタル証明書と併用されることにより) 承認サーバーになります。When the the high-trust system is used, the add-in itself (along with a digitial certificate.md) becomes the authorization server.

アクセス トークンはサインイン トークンではないAccess tokens are not sign-in tokens

これまで説明したとおり、リソースにアクセスするには、アドインは、リソース所有者から信頼されたセキュリティ トークン発行者 (STS) として事前に指定された OAuth 承認サーバーからのアクセス トークンを要求する必要があります。これに対して、WS-Federation STS や SAML (Security Assertion Markup Language) パッシブ サインイン STS は、主にサインイン トークンの発行を目的としています。As described above, to access resources, an add-in has to request an access token from an OAuth authorization server that has previously been designated as a trusted security token issuer (STS) by the resource owner. In contrast, the WS-Federation STS and the Security Assertion Markup Language (SAML) passive sign-in STS are primarily intended to issue sign-in tokens. In SharePoint, an OAuth STS is not used for issuing sign-in tokens, that is, they are not used as identity providers. So, you will not see an OAuth STS listed in the user sign-in page, the Authentication Provider section in Central Administration, or the people picker in SharePoint.

SharePoint では、OAuth STS はサインイン トークンの発行には使用されません。つまり、ID プロバイダーとしては使用されません。In SharePoint, an OAuth STS is not used for issuing sign-in tokens; that is, they are not used as identity providers. そのため、サーバーの全体管理の [認証プロバイダー] セクションや SharePoint のユーザー選択ウィンドウのユーザー サインイン ページに、OAuth STS は一覧表示されません。Note The STS isn't intended for user authentication. So, you won't see the STS listed on the user sign-in page, in the Authentication Provider section in Central Administration, or in the People Picker in SharePoint.

SharePoint 管理者は、Windows PowerShell コマンドを使用して OAuth STS を有効または無効にすることができます。これは、SharePoint で信頼済みサインイン プロバイダーを有効または無効にする場合と同様の方法で実施できます。SharePoint administrators can use Windows PowerShell commands to enable or disable an OAuth STS, similar to how they can enable or disable trusted login providers in SharePoint 2010.

関連項目See also