クイック スタート:ユニバーサル Windows プラットフォーム (UWP) アプリケーションから Microsoft Graph API を呼び出す

ようこそ。 ご要望のページを表示できません。 問題の修正に取り組んでいますが、次のリンクから目的の記事にアクセスできるかお試しください。

クイック スタート: ユニバーサル Windows プラットフォーム アプリでユーザーのサインインと Microsoft Graph の呼び出しを行う

ご不便をおかけして申し訳ありませんが、問題が解決するまで今しばらくお待ちください。

このクイックスタートでは、ユニバーサル Windows プラットフォーム (UWP) アプリケーションでユーザーをサインインし、アクセス トークンを取得して Microsoft Graph API を呼び出す方法を示すコード サンプルをダウンロードして実行します。

図については、「このサンプルのしくみ」を参照してください。

前提条件

手順 1: アプリケーションの構成

このクイックスタートのコード サンプルを動作させるには、リダイレクト URI (https://login.microsoftonline.com/common/oauth2/nativeclient) を追加します。

Already configuredアプリケーションはこれらの属性で構成されています。

手順 2:Visual Studio プロジェクトのダウンロード

Visual Studio 2019 を使用してプロジェクトを実行します。

ヒント

Windows におけるパスの長さの制限に起因したエラーを防ぐため、ドライブのルートに近いディレクトリをアーカイブの展開先またはリポジトリのクローン先とすることをお勧めします。

手順 3:アプリが構成され、実行準備ができる

アプリのプロパティの値を使用してプロジェクトを構成したら、実行する準備は完了です。

手順 4:アプリケーションの実行

ローカル コンピューターでサンプル アプリケーションを実行するには、次の手順に従います。

  1. Visual Studio ツールバーで、適切なプラットフォーム (おそらく ARM ではなく、x64 または x86) を選択します。 ターゲット デバイスが [デバイス] から [ローカル コンピューター] に変わります。

  2. [デバッグ]>[デバッグなしで開始] を選択します。

    開発者モードを有効にするよう求められた場合は、まず開発者モードを有効にしたうえで、 [デバッグなしで開始] を再度選択し、アプリを起動してください。

アプリのウィンドウが表示されたら、 [Call Microsoft Graph API](Microsoft Graph API を呼び出す) ボタンを選択し、資格情報を入力して、アプリケーションから要求されたアクセス許可に同意してください。 成功した場合、Microsoft Graph API を呼び出すことによって取得したデータとトークン情報が表示されます。

このサンプルのしくみ

Shows how the sample app generated by this quickstart works

MSAL.NET

MSAL (Microsoft.Identity.Client) は、ユーザーをサインインし、セキュリティ トークンを要求するために使用されるライブラリです。 セキュリティ トークンは、Microsoft ID プラットフォームによって保護されている API にアクセスするために使用されます。 MSAL は、Visual Studio の "パッケージ マネージャー コンソール" で次のコマンドを実行してインストールできます。

Install-Package Microsoft.Identity.Client

MSAL の初期化

MSAL への参照を追加するには、次のコードを追加します。

using Microsoft.Identity.Client;

その後、MSAL は次のコードを使用して初期化されます。

public static IPublicClientApplication PublicClientApp;
PublicClientApp = PublicClientApplicationBuilder.Create(ClientId)
                                                .WithRedirectUri("https://login.microsoftonline.com/common/oauth2/> nativeclient")
                                                    .Build();

ClientId の値は、Azure portal で登録したアプリのアプリケーション (クライアント) ID です。 この値は、Azure portal のアプリの [概要] ページで確認できます。

トークンの要求

MSAL には、UWP アプリでトークンを取得するための 2 つのメソッド AcquireTokenInteractive および AcquireTokenSilent があります。

ユーザー トークンを対話形式で取得する

ユーザーは Microsoft ID プラットフォームの操作を強制される場合があります。その場合、各自の資格情報の検証または同意を行うポップアップ ウィンドウが表示されます。 次に例をいくつか示します。

  • ユーザーが初めてアプリケーションにサインインした場合
  • パスワードの有効期限が切れているため、ユーザーが資格情報を再入力する必要がある場合
  • ご使用のアプリケーションが、ユーザーによる同意が必要なリソースへのアクセスを要求している場合
  • 2 要素認証が必須である場合
authResult = await App.PublicClientApp.AcquireTokenInteractive(scopes)
                      .ExecuteAsync();

scopes パラメーターには、要求するスコープが格納されます (Microsoft Graph の { "user.read" }、カスタム Web API の { "api://<Application ID>/access_as_user" } など)。

ユーザー トークンを自動で取得する

最初の AcquireTokenInteractive メソッドを呼び出した後、AcquireTokenSilent メソッドを使用して、保護されたリソースにアクセスするためのトークンを取得します。 リソースへのアクセスを必要とするたびに自分の資格情報を確認するようユーザーに要求したくありません。 ほとんどの場合は、ユーザーの操作なしにトークンの取得や更新を求めます。

var accounts = await App.PublicClientApp.GetAccountsAsync();
var firstAccount = accounts.FirstOrDefault();
authResult = await App.PublicClientApp.AcquireTokenSilent(scopes, firstAccount)
                                      .ExecuteAsync();
  • scopes には、要求するスコープが格納されます (Microsoft Graph の { "user.read" }、カスタム Web API の { "api://<Application ID>/access_as_user" } など)。
  • firstAccount は、キャッシュ内の最初のユーザー アカウントを指定します (MSAL は、1 つのアプリで複数のユーザーをサポート)。

ヘルプとサポート

サポートが必要な場合、問題をレポートする場合、またはサポート オプションについて知りたい場合は、開発者向けのヘルプとサポートに関するページを参照してください。

次のステップ

アプリケーションや新機能の構築についての完全なステップ バイ ステップ ガイドは、Windows デスクトップ チュートリアルをお試しください。このクイック スタートの完全な説明も含まれています。