クイック スタート: トークンを取得し、Windows デスクトップ アプリケーションから Microsoft Graph API を呼び出す
ようこそ。 ご要望のページを表示できません。 問題の修正に取り組んでいますが、次のリンクから目的の記事にアクセスできるかお試しください。
クイック スタート: Windows デスクトップ アプリでユーザーのサインインと Microsoft Graph の呼び出しを行う
ご不便をおかけして申し訳ありませんが、問題が解決するまで今しばらくお待ちください。
このクイックスタートでは、Windows Presentation Foundation (WPF) アプリケーションでユーザーをサインインし、アクセス トークンを取得して Microsoft Graph API を呼び出す方法を示すコード サンプルをダウンロードして実行します。
図については、「このサンプルのしくみ」を参照してください。
手順 1:Azure portal でのアプリケーションの構成
このクイックスタートのコード サンプルを動作させるには、リダイレクト URI (https://login.microsoftonline.com/common/oauth2/nativeclient
および ms-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 つのメソッド 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 デスクトップ チュートリアルをお試しください。このクイック スタートの完全な説明も含まれています。