クイック スタート:Web API にアクセスするためのクライアント アプリケーションの構成Quickstart: Configure a client application to access web APIs

このクイックスタートでは、アプリケーションの Web API にアクセスするためのリダイレクト URI、資格情報、またはアクセス許可を追加します。In this quickstart, you add redirect URIs, credentials, or permissions to access web APIs for your application. Web または機密クライアント アプリケーションでは、認証を必要とする承認付与フローに参加するために、セキュリティで保護された資格情報を確立する必要があります。A web or confidential client application needs to establish secure credentials to participate in an authorization grant flow that requires authentication. Azure portal でサポートされている既定の認証方法は、クライアント ID と秘密鍵の組み合わせです。The default authentication method supported by the Azure portal is client ID + secret key. このプロセス中にアプリによってアクセス トークンが取得されます。The app obtains an access token during this process.

Microsoft Graph API などのリソース アプリケーションによって公開されている Web API にクライアントがアクセスできるようにするため、先に同意フレームワークによって、クライアントが要求されたアクセス許可に必要なアクセス許可を確実に取得することが保証されます。Before a client can access a web API exposed by a resource application, such as Microsoft Graph API, the consent framework ensures the client obtains the permission grant required for the permissions requested. 既定では、すべてのアプリケーションが Microsoft Graph API にアクセス許可を要求できます。By default, all applications can request permissions from the Microsoft Graph API.

前提条件Prerequisites

Azure portal にサインインしてアプリを選択するSign in to the Azure portal and select the app

  1. 職場または学校アカウントか、個人の Microsoft アカウントを使用して、Azure portal にサインインします。Sign in to the Azure portal using either a work or school account or a personal Microsoft account.
  2. お使いのアカウントで複数のテナントにアクセスできる場合は、右上隅で自分のアカウントをクリックします。If your account gives you access to more than one tenant, select your account in the upper right corner. ポータル セッションを目的の Azure AD テナントに設定します。Set your portal session to the Azure AD tenant that you want.
  3. Azure Active Directory を検索して選択します。Search for and select Azure Active Directory. [管理][アプリの登録] を選択します。Under Manage, select App registrations.
  4. 構成するアプリケーションを探して選択します。Find and select the application you want to configure. アプリを選択すると、アプリケーションの [概要] またはメイン登録ページが表示されます。After you select the app, you see the application's Overview or main registration page.

Web API にアクセスするようにアプリケーションを構成するには、以下の手順を使用します。Use the following procedures to configure your application to access web APIs.

リダイレクト URI をアプリケーションに追加するAdd redirect URIs to your application

カスタム リダイレクト URI と推奨されるリダイレクト URI をアプリケーションに追加できます。You can add custom redirect URIs and suggested redirect URIs to your application. Web およびパブリック クライアント アプリケーションにカスタム リダイレクト URI を追加するには:To add a custom redirect URI for web and public client applications:

  1. アプリの [概要] ページで、 [認証] を選択します。From the app Overview page, select Authentication.

  2. リダイレクト URI を特定します。Locate Redirect URIs. 場合によっては、 [前のエクスペリエンスに切り替える] を選択する必要があります。You may need to select Switch to the old experience.

  3. ビルドしているアプリケーションの種類を選択します。Web または パブリック クライアント/ネイティブ (モバイルとデスクトップ)Select the type of application you're building: Web or Public client/native (mobile & desktop).

  4. アプリケーションのリダイレクト URI を入力します。Enter the Redirect URI for your application.

    • Web アプリケーションの場合は、アプリケーションのベース URL を指定します。For web applications, provide the base URL of your application. ローカル コンピューターで実行されている Web アプリケーションの URL であれば、たとえば http://localhost:31544 のようになります。For example, http://localhost:31544 might be the URL for a web application running on your local machine. ユーザーはこの URL を使用して、Web クライアント アプリケーションにサインインすることになります。Users would use this URL to sign into a web client application.
    • パブリック アプリケーションの場合は、トークン応答を返すために Azure AD に使用される URI を指定します。For public applications, provide the URI used by Azure AD to return token responses. https://MyFirstApp など、ご自分のアプリケーションに固有の値を入力してください。Enter a value specific to your application, for example: https://MyFirstApp.
  5. [保存] を選択します。Select Save.

パブリック クライアントに推奨されるリダイレクト URI の中から選択するには:To choose from suggested redirect URIs for public clients, follow these steps:

  1. アプリの [概要] ページで、 [認証] を選択します。From the app Overview page, select Authentication.
  2. パブリック クライアント (モバイル、デスクトップ) に推奨されるリダイレクト URI を特定します。Locate Suggested Redirect URIs for public clients (mobile, desktop). 場合によっては、 [前のエクスペリエンスに切り替える] を選択する必要があります。You may need to select Switch to the old experience.
  3. アプリケーションのリダイレクト URI を 1 つ以上選択します。Select one or more redirect URIs for your application. カスタム リダイレクト URI を入力することもできます。You can also enter a custom redirect URI. 何を使えばよいかわからない場合は、ライブラリのドキュメントを参照してください。If you're not sure what to use, see the library documentation.
  4. [保存] を選択します。Select Save.

リダイレクト URI には、特定の制限が適用されます。Certain restrictions apply to redirect URIs. 詳細については、「リダイレクト URI および応答 URL に関する制約と制限」を参照してください。For more information, see Redirect URI/reply URL restrictions and limitations.

注意

新しい認証設定エクスペリエンスを試してみてください。このエクスペリエンスでは、対象とするプラットフォームまたはデバイスに基づいてアプリケーションの設定を構成できます。Try out the new Authentication settings experience where you can configure settings for your application based on the platform or device that you want to target.

このビューを表示するには、 [認証] ページで [新しいエクスペリエンスを試す] を選択します。To see this view, select Try out the new experience from the Authentication page.

[新しいエクスペリエンスを試す] をクリックして、[プラットフォーム構成] ビューを表示する

この操作により、新しい [プラットフォーム構成] ページが表示されます。This takes you to the new Platform configurations page.

アプリケーションの詳細設定を構成するConfigure advanced settings for your application

登録するアプリケーションに応じて、次のようないくつかの追加設定を構成する必要があります。Depending on the application you're registering, there are some additional settings that you may need to configure, such as:

  • [ログアウト URL]Logout URL.
  • シングルページ アプリの場合は、 [暗黙の付与] を有効にし、承認エンドポイントによって発行されるトークンを選択できます。For single-page apps, you can enable Implicit grant and select the tokens that you'd like the authorization endpoint to issue.
  • 統合 Windows 認証、デバイス コード フロー、または [既定のクライアントの種類] セクションのユーザー名およびパスワードを使用してトークンを取得しているデスクトップ アプリの場合は、 [アプリケーションは、パブリック クライアントとして扱います] 設定を [はい] に設定します。For desktop apps that acquire tokens by using Integrated Windows Authentication, device code flow, or username/password in the Default client type section, set the Treat application as public client setting to Yes.
  • Live SDK を使用して Microsoft アカウント サービスと統合していたレガシ アプリの場合は、 [Live SDK サポート] を構成します。For legacy apps that were using the Live SDK to integrate with the Microsoft account service, configure Live SDK support. 新しいアプリでは、この設定は必要ありません。New apps don't need this setting.
  • 既定のクライアントの種類Default client type.
  • サポートされているアカウントの種類Supported account types.

サポートされるアカウントの種類を変更するModify supported account types

[サポートされているアカウントの種類] では、アプリケーションを使用できるユーザーまたは API にアクセスできるユーザーを指定します。The Supported account types specify who can use the application or access the API.

アプリケーションの登録時にサポートされているアカウントの種類を構成した場合は、次の場合にのみ、アプリケーション マニフェスト エディターを使用してこの設定を変更できます。If you configured the supported account types when you registered the application, you can only change this setting using the application manifest editor if:

  • アカウントの種類を AzureADMyOrg または AzureADMultipleOrgs から AzureADandPersonalMicrosoftAccount に、またはその逆に変更する場合。You change account types from AzureADMyOrg or AzureADMultipleOrgs to AzureADandPersonalMicrosoftAccount, or the other way around, or
  • アカウントの種類を AzureADMyOrg から AzureADMultipleOrgs に、またはその逆に変更する場合。You change account types from AzureADMyOrg to AzureADMultipleOrgs, or the other way around.

既存のアプリの登録に対して、サポートされているアカウントの種類を変更するには、signInAudience キーを更新します。To change the supported account types for an existing app registration, update the signInAudience key. 詳細については、アプリケーション マニフェストの構成に関するページを参照してください。For more information, see Configure the application manifest.

アプリケーションのプラットフォーム設定を構成するConfigure platform settings for your application

プラットフォームまたはデバイスに基づいてアプリの設定を構成する

プラットフォームまたはデバイスに基づいてアプリケーション設定を構成するには、以下のものが対象になります。To configure application settings based on the platform or device, you're targeting:

  1. [プラットフォーム構成] ページで、 [プラットフォームを追加] を選択し、使用可能なオプションを選択します。In the Platform configurations page, select Add a platform and choose from the available options.

    [プラットフォームの構成] ページを表示

  2. 選択したプラットフォームに基づいて設定情報を入力します。Enter the settings info based on the platform you selected.

    プラットフォームPlatform 構成設定Configuration settings
    WebWeb アプリケーションのリダイレクト URI を入力します。Enter the Redirect URI for your application.
    iOS / macOSiOS / macOS アプリのバンドル ID を入力します。これは、Info.plist の XCode または [ビルド設定] で見つけることができます。Enter the app Bundle ID, which you can find in XCode in Info.plist, or Build Settings. バンドル ID を追加すると、アプリケーションのリダイレクト URI が自動的に作成されます。Adding the bundle ID automatically creates a redirect URI for the application.
    AndroidAndroid アプリのパッケージ名を指定します。これは、AndroidManifest.xml ファイルで見つけることができます。Provide the app Package name, which you can find in the AndroidManifest.xml file.
    署名ハッシュを生成して入力します。Generate and enter the Signature hash. 署名ハッシュを追加すると、アプリケーションのリダイレクト URI が自動的に作成されます。Adding the signature hash automatically creates a redirect URI for the application.
    モバイル アプリケーションとデスクトップ アプリケーションMobile and desktop applications 省略可能。Optional. デスクトップとデバイス用のアプリを構築している場合は、 [推奨されるリダイレクト URI] でいずれかを選択します。Select one of the recommended Suggested redirect URIs if you're building apps for desktop and devices.
    省略可能。Optional. カスタム リダイレクト URI を入力します。これは、Azure AD が認証要求に応答してユーザーをリダイレクトする場所として使用されます。Enter a Custom redirect URI, which is used as the location where Azure AD will redirect users in response to authentication requests. たとえば、対話が必要な .NET Core アプリケーションの場合、http://localhost を使用します。For example, for .NET Core applications where you want interaction, use http://localhost.

    注意

    Active Directory フェデレーション サービス (AD FS) および Azure AD B2C では、ポート番号も指定する必要があります。On Active Directory Federation Services (AD FS) and Azure AD B2C, you must also specify a port number. (例: http://localhost:1234)。For example: http://localhost:1234.

    重要

    最新の Microsoft Authentication Library (MSAL) を使用していない、またはブローカーを使用していないモバイル アプリケーションでは、これらのアプリケーションのリダイレクト URI を [デスクトップとデバイス] で構成する必要があります。For mobile applications that aren't using the latest Microsoft Authentication Library (MSAL) or not using a broker, you must configure the redirect URIs for these applications in Desktop + devices.

選択したプラットフォームによっては、構成できる追加の設定がある場合があります。Depending on the platform you chose, there may be additional settings that you can configure. Web アプリの場合は、以下のことができます。For Web apps, you can:

  • さらにリダイレクト URI を追加するAdd more redirect URIs

  • 暗黙的な許可を構成して、次のように、承認エンドポイントによって発行されるトークンを選択する。Configure Implicit grant to select the tokens you'd like to be issued by the authorization endpoint:

    • シングルページ アプリの場合は、 [アクセス トークン][ID トークン] の両方を選択しますFor single-page apps, select both Access tokens and ID tokens
    • Web アプリの場合は、 [ID トークン] を選択しますFor web apps, select ID tokens

資格情報を Web アプリケーションに追加するAdd credentials to your web application

Web アプリケーションに資格情報を追加するには、証明書を追加するか、クライアント シークレットを作成します。To add a credential to your web application, either add a certificate or create a client secret. 証明書を追加するには:To add a certificate:

  1. アプリの [概要] ページで、 [証明書とシークレット] セクションを選択します。From the app Overview page, select the Certificates & secrets section.
  2. [証明書のアップロード] を選択します。Select Upload certificate.
  3. アップロードするファイルを選択します。Select the file you'd like to upload. ファイルの種類は .cer、.pem、.crt のいずれかである必要があります。It must be one of the following file types: .cer, .pem, .crt.
  4. [追加] を選択します。Select Add.

クライアントシークレットを追加するには:To add a client secret:

  1. アプリの [概要] ページで、 [証明書とシークレット] セクションを選択します。From the app Overview page, select the Certificates & secrets section.
  2. [新しいクライアント シークレット] を選択します。Select New client secret.
  3. クライアント シークレットの説明を追加します。Add a description for your client secret.
  4. 期間を選択します。Select a duration.
  5. [追加] を選択します。Select Add.

注意

構成の変更を保存すると、右端の列にクライアント シークレットの値が格納されます。After you save the configuration changes, the right-most column will contain the client secret value. クライアント アプリケーションのコードで使用するので、必ず値をコピーしておいてください。このページを一度閉じると、値にアクセスできなくなります。Be sure to copy the value for use in your client application code as it's not accessible once you leave this page.

Web API にアクセスするためのアクセス許可を追加するAdd permissions to access web APIs

Graph API のサインインとユーザー プロファイルの読み取りアクセス許可が既定で選択されています。The Graph API sign-in and read user profile permission is selected by default. Web API ごとに 2 種類のアクセス許可から選択できます。You can select from two types of permissions for each web API:

  • アプリケーションのアクセス許可Application permissions. クライアント アプリケーションは、アプリケーション自体として (ユーザー コンテキストなしで) Web API に直接アクセスする必要があります。Your client application needs to access the web API directly as itself, without user context. この種類のアクセス許可には、管理者の同意が必要です。This type of permission requires administrator consent. このアクセス許可は、デスクトップおよびモバイルのクライアント アプリケーションでは使用できません。This permission isn't available for desktop and mobile client applications.

  • 委任されたアクセス許可Delegated permissions. クライアント アプリケーションは、サインインしているユーザーとして Web API にアクセスする必要があります。アクセスにあたっては、選択されているアクセス許可に応じて制限が適用されます。Your client application needs to access the web API as the signed-in user, but with access limited by the selected permission. この種類のアクセス許可は、管理者の同意が必要でない限り、ユーザーが付与できます。This type of permission can be granted by a user unless the permission requires administrator consent.

    注意

    委任されたアクセス許可をアプリケーションに追加しても、テナント内のユーザーに対して自動的に同意が与えられるわけではありません。Adding a delegated permission to an application does not automatically grant consent to the users within the tenant. 管理者がすべてのユーザーに代わって同意を許可しない限り、ユーザーはやはり追加された委任されたアクセス許可に実行時に手動で同意する必要があります。Users must still manually consent for the added delegated permissions at runtime, unless the administrator grants consent on behalf of all users.

クライアントからリソース API にアクセスするためのアクセス許可を追加するには:To add permissions to access resource APIs from your client:

  1. アプリの [概要] ページで、 [API のアクセス許可] を選択します。From the app Overview page, select API permissions.

  2. [構成されたアクセス許可] の下で [アクセス許可の追加] を選択します。Under Configured permissions, select Add a permission.

  3. 既定では、ビューで [Microsoft API] から選択することができます。By default, the view allows you to select from Microsoft APIs. 次の中から、目的の API のセクションを選択します。Select the section of APIs that you're interested in:

    • Microsoft APIMicrosoft APIs. Microsoft Graph などの Microsoft API のアクセス許可を選択することができます。Lets you select permissions for Microsoft APIs such as Microsoft Graph.
    • 所属する組織で使用している APIAPIs my organization uses. 組織によって公開されている API、または組織が統合した API のアクセス許可を選択することができます。Lets you select permissions for APIs that your organization exposes, or APIs that your organization has integrated with.
    • 自分の APIMy APIs. 自分で公開した API のアクセス許可を選択することができます。Lets you select permissions for APIs that you expose.
  4. API を選択すると、 [API アクセス許可の要求] ページが表示されます。Once you've selected the APIs, you'll see the Request API Permissions page. 委任されたアクセス許可とアプリケーションのアクセス許可の両方を API が公開している場合は、アプリケーションに必要なアクセス許可の種類を選択します。If the API exposes both delegated and application permissions, select which type of permission your application needs.

  5. 完了したら、 [アクセス許可の追加] を選択します。When finished, select Add permissions.

[API のアクセス許可] ページに戻ります。You return to the API permissions page. アクセス許可が保存され、テーブルに追加されています。The permissions have been saved and added to the table.

構成されたアクセス許可Configured permissions

このセクションでは、アプリケーション オブジェクトで明示的に構成されたアクセス許可を示します。This section shows the permissions that have been explicitly configured on the application object. これらのアクセス許可は、アプリの必須リソース アクセス リストの一部です。These permissions are part of the app's required resource access list. この表のアクセス許可を追加または削除できます。You may add or remove permissions from this table. 管理者はまた、一連の API のアクセス許可または個々のアクセス許可に管理者の同意を付与したり、取り消したりすることもできます。As an admin, you can also grant or revoke admin consent for a set of an API's permissions or individual permissions.

付与されたその他のアクセス許可Other permissions granted

アプリケーションがテナントで登録されている場合は、 [Other permissions granted for Tenant] (テナントに付与されたその他のアクセス許可) というタイトルの追加のセクションが表示されることがあります。If your application is registered in a tenant, you may see an additional section titled Other permissions granted for Tenant. このセクションでは、アプリケーション オブジェクトで明示的に構成されていないテナントに付与されたアクセス許可を示します。This section shows permissions granted for the tenant that haven't been explicitly configured on the application object. これらのアクセス許可は動的に要求され、同意されます。These permissions were dynamically requested and consented. このセクションは、適用されるアクセス許可が少なくとも 1 つ存在する場合にのみ表示されます。This section only appears if there is at least one permission that applies.

このセクションに表示される一連の API のアクセス許可または個々のアクセス許可を [構成されたアクセス許可] セクションに追加できます。You may add a set of an API's permissions or individual permissions that appear in this section to the Configured permissions section. 管理者はまた、このセクションの個々の API またはアクセス許可への管理者の同意を取り消すこともできます。As an admin, you can also revoke admin consent for individual APIs or permissions in this section.

アプリケーションがテナントで登録されている場合は、 [Grant admin consent for Tenant](テナントに管理者の同意を付与する) ボタンが表示されます。If your application is registered in a tenant, you see a Grant admin consent for Tenant button. これは、管理者でない場合、またはアプリケーションにアクセス許可が構成されていない場合は無効になります。It's disabled if you aren't an admin, or if no permissions have been configured for the application. 管理者は、このボタンを使用して、アプリケーションに対して構成されたアクセス許可に管理者の同意を付与できます。This button allows an admin to grant admin consent to the permissions configured for the application. 管理者の同意のボタンをクリックすると、新しいウィンドウが開き、すべての構成されたアクセス許可を示す同意プロンプトが表示されます。Clicking the admin consent button launches a new window with a consent prompt showing all the configured permissions.

注意

アクセス許可がアプリケーションに対して構成されてから、同意プロンプトに表示されるまでには遅延が発生します。There is a delay between permissions being configured for the application and them appearing on the consent prompt. 同意プロンプトにすべての構成されたアクセス許可が表示されない場合は、それを閉じて再度起動してください。If you do not see all the configured permissions in the consent prompt, close it and launch it again.

アクセス許可が付与されていても構成されていない場合、管理者の同意ボタンをクリックすると、これらのアクセス許可を処理するように求められます。If you have permissions that have been granted but not configured, the admin consent button prompts you to handle these permissions. 構成されたアクセス許可に追加するか、または削除することができます。You may add them to configured permissions or you may remove them.

同意プロンプトには、 [許可] または [キャンセル] のオプションが表示されます。The consent prompt provides the option to Accept or Cancel. 管理者の同意を付与するには [同意する] を選択します。Select Accept to grant admin consent. [キャンセル] を選択すると、管理者の同意は付与されません。If you select Cancel, admin consent isn't granted. 同意が拒否されたことを示すエラー メッセージが表示されます。An error message states that consent has been declined.

注意

同意プロンプトで [同意する] を選択して管理者の同意を付与してから、ポータルに管理者の同意の状態が反映されるまでには遅延が発生します。There is a delay between granting admin consent by selecting Accept on the consent prompt and the status of admin consent being reflected in the portal.

次のステップNext steps

次の記事に進んで、Web API の公開方法を学習してください。Advance to the next article to learn how to expose web APIs.