シナリオ:Web API を呼び出すデスクトップ アプリScenario: Desktop app that calls web APIs

Web API を呼び出すデスクトップ アプリを構築するために必要なすべてのことについて説明します。Learn all you need to build a desktop app that calls web APIs.

はじめにGet started

初めてのアプリケーションをまだ作成していない場合、クイック スタートを完了して作成してください。If you haven't already, create your first application by completing a quickstart:

概要Overview

デスクトップ アプリケーションを作成して、ユーザーをアプリケーションにサインインさせ、Microsoft Graph、他の Microsoft API、または独自の Web API などの Web API を呼び出します。You write a desktop application, and you want to sign in users to your application and call web APIs such as Microsoft Graph, other Microsoft APIs, or your own web API. いくつかのオプションがあります。You have several options:

  • 対話型トークン取得を使用できます。You can use the interactive token acquisition:

    • ご利用のデスクトップ アプリケーションでグラフィカル コントロールがサポートされている場合 (たとえば、Windows.Form アプリケーション、WPF アプリケーション、macOS ネイティブ アプリケーションなどの場合)。If your desktop application supports graphical controls, for instance, if it's a Windows.Form application, a WPF application, or a macOS native application.
    • または、.NET Core アプリケーションであり、システム ブラウザーで Azure Active Directory (Azure AD) との認証のやり取りが発生することに同意している場合。Or, if it's a .NET Core application and you agree to have the authentication interaction with Azure Active Directory (Azure AD) happen in the system browser.
    • または、Chromium インスタンスで実行される Node.js Electron アプリケーションの場合。Or, if it's a Node.js Electron application, which runs on a Chromium instance.
  • Windows でホストされているアプリケーションの場合、Windows ドメインに参加しているコンピューター、または Azure AD に参加しているコンピューターで実行されているアプリケーションが、統合 Windows 認証を使用して自動的にトークンを取得することも可能です。For Windows hosted applications, it's also possible for applications running on computers joined to a Windows domain or Azure AD joined to acquire a token silently by using Integrated Windows Authentication.

  • 最後に、推奨されていませんが、パブリック クライアント アプリケーションではユーザー名とパスワードを使用することができます。Finally, and although it's not recommended, you can use a username and a password in public client applications. DevOps などの一部のシナリオではまだこれが必要になります。It's still needed in some scenarios like DevOps. これを使用すると、アプリケーションに制約が発生します。Using it imposes constraints on your application. たとえば、多要素認証 (条件付きアクセス) を実行する必要があるユーザーはサインインさせることができません。For instance, it can't sign in a user who needs to perform multi-factor authentication (conditional access). また、アプリケーションはシングル サインオン (SSO) のメリットを受けられません。Also, your application won't benefit from single sign-on (SSO).

    さらに、先進認証の原則に反しており、これはレガシの理由のためにのみ提供されています。It's also against the principles of modern authentication and is only provided for legacy reasons.

    デスクトップ アプリケーション

  • 移植可能なコマンド ライン ツール (おそらく、Linux または Mac で実行される .NET Core アプリケーション) を作成している場合、認証がシステム ブラウザーに委任されることに同意すると、対話式認証を使用できます。If you write a portable command-line tool, probably a .NET Core application that runs on Linux or Mac, and if you accept that authentication will be delegated to the system browser, you can use interactive authentication. .NET Core は Web ブラウザーを提供しないため、システム ブラウザーで認証が行われます。.NET Core doesn't provide a web browser, so authentication happens in the system browser. それ以外の場合、そのケースの最善の選択肢は、デバイス コード フローを使用することです。Otherwise, the best option in that case is to use device code flow. このフローは、IoT アプリケーションなどのブラウザーがないアプリケーションにも使用されます。This flow is also used for applications without a browser, such as IoT applications.

    ブラウザーレス アプリケーション

詳細Specifics

デスクトップ アプリケーションには、いくつかの特異な点があります。Desktop applications have a number of specificities. これらは主に、アプリケーションが対話型認証を使用するかどうかによって異なります。They depend mainly on whether your application uses interactive authentication or not.

OAuth 2.0 と OpenID Connect を使用した ID およびアクセス管理 (IAM) を初めて使用する場合、または Microsoft ID プラットフォームの IAM を初めて使用する場合は、次の一連の記事をお読みください。If you're new to identity and access management (IAM) with OAuth 2.0 and OpenID Connect, or even just new to IAM on the Microsoft identity platform, the following set of articles should be high on your reading list.

これらは、最初のクイックスタートまたはチュートリアルを完了する前に読む必要はありませんが、プラットフォームに不可欠なトピックについて説明しており、これらをよく知ると、より複雑なシナリオを構築する際に役立ちます。Although not required reading before completing your first quickstart or tutorial, they cover topics integral to the platform, and familiarity with them will help you on your path as you build more complex scenarios.

次のステップNext steps

このシナリオの次の記事「アプリの登録」に進みます。Move on to the next article in this scenario, App registration.