配布用の Office 365 API プロジェクトを構成する

このページでは、開発者が Office 365 API を利用するプロジェクトを他の開発者、顧客、または Team Foundation Server、Git、Visual Studio Team Services などのソース管理システムに配布する前に実施を検討する必要のあるいくつかの手順を説明します。

具体的には、このページでは 2 つの手順に注目します。

  • Azure AD Graph クライアント NuGet パッケージ参照を修正する
  • web.config ファイルでアプリ固有の詳細を消去する

Azure AD Graph クライアント NuGet パッケージ参照を修正する

接続済みサービスの追加によって Office 365 API SDK を利用するすべてのプロジェクトには、Visual Studio で作成されたプロジェクトに Office 365 と Azure Active Directory (Azure AD) の参照を追加する NuGet パッケージが含まれています。

Visual Studio の Office 365 API ツールによってプロジェクトに追加された NuGet パッケージは NuGet パッケージ レジストリに存在しません。このため、NuGet パッケージ復元を実行しようとする試みは、一致するパッケージが見つからないために失敗します。

問題を理解する

Office 365 API Tools for Visual Studio バージョン 1.3.41104.1 は、接続済みサービスの追加ウィザードの完了の一環として、複数の NuGet パッケージをプロジェクトに追加します。 特に 1 つのパッケージには、Microsoft Azure Active Directory Graph クライアント ライブラリという課題があります。

Visual Studio はそれ自体またはアドインに NuGet パッケージのローカル コピーを含めた状態で動作するため、開発者は必ずしもインターネットに接続して NuGet パッケージをダウンロードする必要がありません。 ツールに含まれるパッケージには、 Microsoft.Azure.ActiveDirectory.GraphClient の ID と バージョン 1.0.22 があります

プロジェクトがソース管理にコミットされるとき、通常はパッケージがコミットの一部として含められることはありません。他の開発者との共有時に余分の記憶領域が大量に必要になり、パッケージのサイズが不必要に大きくなる可能性があるためです。 そのため、開発者がソース管理からプロジェクトのコピーを入手した後で最初に行うタスクの 1 つは、NuGet パッケージの復元を実行することです。

課題は、同じ ID とバージョンのパッケージが NuGet パッケージ レジストリに存在しないことです。 Microsoft.Azure.ActiveDirectory.GraphClient の ID とバージョン 1.0.22 のパッケージはありません。 The package does exist in the NuGet package registry, Microsoft.Azure.ActiveDirectory.GraphClient, but under different versions.

Azure AD Graph クライアント NuGet パッケージ参照を修正する

Office 365 API Tools for Visual Studio が更新されてこの問題が修正されるまでは、Team Foundation Server、Visual Studio Team Services、Git、その他のソリューションのいずれを使用するかにかかわらず、ソース管理システムにコミットする前に、プロジェクトを変更することをお勧めします。

プロジェクトを作成した後、プロジェクトの packages.config ファイルを検索し、 MICROSOFT.Azure.ActiveDirectory.GraphClient の ID とバージョン 1.0.22 のパッケージを検索します。 プロジェクトを更新する最も安全な方法は、パッケージをアンインストールして、再度インストールすることです。

パッケージをアンインストールするには、Visual Studio でパッケージ マネージャー コンソールを開き、次のように入力します。

  PM> Uninstall-Package -Id Microsoft.Azure.ActiveDirectory.GraphClient

注:

アンインストール時にパッケージが見つからないというエラー メッセージが返される場合は、単に packages.config ファイルからパッケージ参照を手動で削除し、変更を保存します。

それから、パブリック レジストリにある同じ NuGet パッケージの公開バージョンをインストールします。

  PM> Install-Package -Id Microsoft.Azure.ActiveDirectory.GraphClient -Version 2.0.2

注:

前の例では、Office 365 API で動作することがわかっている特定のバージョンの Azure AD Graph クライアントを参照しています。 以降のバージョンは機能する可能性があるため、引数の -Version 省略は省略可能です。

web.config ファイルでアプリ固有の詳細を消去する

Office 365 API Tools for Visual Studio を使用すると、Visual Studio の [接続済みサービス] ウィザードを使用して Office 365 API 用の必要なアクセス許可を持つ新しい Azure AD アプリケーションを作成する機能が追加されます。 このウィザードを完了する時点で、プロジェクトの web.config ファイル内に複数のエントリとカスタマイズが作成されます。

これらの変更には、次のアドイン設定が含まれます。

  • ida:ClientID: Azure AD テナントで作成されたアプリケーションの一意の ID です。
  • ida:Password: [接続済みサービス] ウィザードで生成された Azure AD アプリケーションのキーです。
  • ida:AuthorizationUri: Azure AD による認証に使用されるエンドポイントです。

ida:ClientIDida:Password は、Azure AD アプリに固有のものです。 一部の開発チームは、独自のアプリに対してコーディングを行う開発者を選ぶことがあります。これは、独自のローカル開発データベースに対して開発者が作業する方法を選ぶのと似ています。 そのため、ida:ClientIDida:Password は、データベース接続文字列のようなものと見なすことができます。

開発者が次に [接続済みサービス] ウィザードを使用してプロジェクトの新しい Azure AD アプリケーションを作成するとき、ウィザードは ida: CliendID を検出し、現在のユーザーの Azure AD テナント内のアプリケーションに接続しようとします。 一致するものが見つからない場合、[接続済みサービス] ウィザードはエラーを返します。

そのため、プロジェクトをソース管理にコミットしたり他の開発者と共有したりする前に、web.config 内の ida:ClientID および ida:Password アドイン設定から値を削除することをお勧めします。

関連項目