次の方法で共有


クイック スタート: トークンを取得し、Windows デスクトップ アプリケーションから Microsoft Graph API を呼び出す

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

クイック スタート: Windows デスクトップ アプリでユーザーをサインインさせ、Microsoft Graph を呼び出す

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

このクイック スタートでは、Windows Presentation Foundation (WPF) アプリケーションがユーザーをサインインさせ、Microsoft Graph API を呼び出すアクセス トークンを取得する方法を示すコード サンプルをダウンロードして実行します。

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

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

このクイックスタートのコード サンプルを機能させるには、https://login.microsoftonline.com/common/oauth2/nativeclientms-appx-web://microsoft.aad.brokerplugin/{client_id}追加します。

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

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

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

ヒント

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

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

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

Enter_the_Supported_Account_Info_Here

詳細情報

このサンプルのしくみ

このクイック スタートで生成されたサンプル アプリの動作の紹介

MSAL.NET

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

Install-Package Microsoft.Identity.Client -IncludePrerelease

MSAL の初期化

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

using Microsoft.Identity.Client;

続いて、次のコードを使用して MSAL を初期化します。

IPublicClientApplication publicClientApp = PublicClientApplicationBuilder.Create(ClientId)
                .WithRedirectUri("https://login.microsoftonline.com/common/oauth2/nativeclient")
                .WithAuthority(AzureCloudInstance.AzurePublic, Tenant)
                .Build();
場所は: 説明
ClientId Azure portal に登録されているアプリケーションの "アプリケーション (クライアント) ID"。 この値は、Azure portal のアプリの [概要] ページで確認できます。

トークンの要求

MSAL には、トークンを取得するための 2 つの方法 ( AcquireTokenInteractiveAcquireTokenSilent) があります。

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

状況によっては、ユーザーが資格情報を検証したり同意したりするために、ポップアップ ウィンドウを介して Microsoft ID プラットフォームとやり取りする必要があります。 いくつかの例を次に示します。

  • ユーザーが初めてアプリケーションにサインインした場合
  • パスワードの有効期限が切れているため、ユーザーが資格情報を再入力する必要がある場合
  • アプリケーションが、ユーザーが同意する必要があるリソースへのアクセスを要求している場合
  • 2 要素認証が必須である場合
authResult = await App.PublicClientApp.AcquireTokenInteractive(_scopes)
                                      .ExecuteAsync();
場所は: 説明
_scopes 要求するスコープを含む (Microsoft Graph 用の { "user.read" } またはカスタム Web API 用の { "api://<Application ID>/access_as_user" } など)

ユーザートークンを静かに取得する

リソースにアクセスする必要があるたびに、ユーザーに資格情報の検証を要求する必要はありません。 ほとんどの場合、ユーザーの操作なしでトークンの取得と更新を行う必要があります。 AcquireTokenSilent メソッドを使用すると、最初のAcquireTokenInteractiveメソッドの後に、保護されたリソースにアクセスするためのトークンを取得できます。

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 デスクトップ チュートリアルをお試しください。このクイック スタートの完全な説明も含まれています。