Web API を呼び出すデスクトップ アプリ:トークンを取得する

パブリック クライアント アプリケーションのインスタンスを構築したら、それを使用して、トークンを取得します。これは、Web API を呼び出すために後で使用します。

Web API はそのスコープによって定義されます。 どのようなエクスペリエンスをアプリケーション内で提供する場合でも、使用するパターンは次のようになります。

  • AcquireTokenSilent を呼び出すことで、トークン キャッシュからのトークンの取得を体系的に試行します。
  • この呼び出しが失敗した場合は、使用したい AcquireToken フローを使用します (ここでは AcquireTokenXX で表されています)。

MSAL.NET の場合

AuthenticationResult result;
var accounts = await app.GetAccountsAsync();
IAccount account = ChooseAccount(accounts); // for instance accounts.FirstOrDefault
                                            // if the app manages is at most one account
try
{
 result = await app.AcquireTokenSilent(scopes, account)
                   .ExecuteAsync();
}
catch(MsalUiRequiredException ex)
{
  result = await app.AcquireTokenXX(scopes, account)
                    .WithOptionalParameterXXX(parameter)
                    .ExecuteAsync();
}

デスクトップ アプリケーション内でトークンを取得するさまざまな方法があります。


重要

ユーザーが多要素認証 (MFA) を使用してアプリケーションにログインすると、ログインできずにブロックされます。

次のステップ

このシナリオの次の記事である「デスクトップ アプリから Web API を呼び出す」に進みます。