クイック スタート:Web API にアクセスするようにクライアント アプリケーションを構成する
このクイック スタートでは、Microsoft ID プラットフォームに登録されたクライアント アプリに、独自の Web API へのスコープ指定されたアクセス許可ベースのアクセスを提供します。 また、クライアント アプリに Microsoft Graph へのアクセスを提供します。
クライアント アプリの登録時に Web API のスコープを指定することにより、それらのスコープを含むアクセス トークンを Microsoft ID プラットフォームからクライアント アプリに取得できます。 次にそのコード内で、Web API により、アクセス トークンにあるスコープに基づいて、リソースに対するアクセス許可ベースのアクセスを提供できます。
前提条件
- アクティブなサブスクリプションが含まれる Azure アカウント。 無料でアカウントを作成できます。
- 次の項目の完了: 「クイックスタート: アプリケーションを登録する」
- 次の項目の完了: 「クイックスタート: Web API を公開するようにアプリケーションを構成する」
Web API にアクセスするためのアクセス許可を追加する
ヒント
この記事の手順は、開始するポータルによって若干異なる場合があります。
API へのアクセスには、アクセス スコープとロールの構成が必要です。 リソース アプリケーション Web API をクライアント アプリケーションに公開する場合は、API のアクセス スコープとアクセス ロールを構成できます。 クライアント アプリケーションから Web API にアクセスする場合は、アプリの登録で API にアクセスするためのアクセス許可を構成します。
クライアント アプリケーションに独自の Web API へのアクセスを許可するには、次の 2 つのアプリ登録が必要です。
- クライアント アプリ登録
- 公開されたスコープを使用した Web API 登録
この図は、2 つのアプリ登録が相互にどのように関連しているかを示しています。クライアント アプリのアクセス許可の種類が異なり、Web API では、クライアント アプリケーションがアクセスできるスコープが異なります。 このセクションでは、クライアント アプリの登録にアクセス許可を追加します。
クライアント アプリと Web API の両方を登録し、スコープを作成して API を公開したら、次の手順に従って、API に対するクライアントのアクセス許可を構成できます。
クラウド アプリケーション管理者以上として Microsoft Entra 管理センターにサインインします。
複数のテナントにアクセスできる場合は、上部のメニューの [設定] アイコン を使用し、[ディレクトリとサブスクリプション] メニューからアプリケーション登録が含まれるテナントに切り替えます。
[ID]>[アプリケーション]>[アプリの登録] の順に移動し、クライアント アプリケーション (Web API では "ありません") を選びます。
[API のアクセス許可] を選択してから、[アクセス許可の追加] を選択し、サイドバーで [自分の API] を選択します。
前提条件の一部として登録した Web API を選択し、[委任されたアクセス許可] を選択します。
[委任されたアクセス許可] は、サインインしたユーザーとして Web API にアクセスするクライアント アプリに適しています。そのアクセスは、次のステップで選択するアクセス許可に限定する必要があります。 この例では、 [委任されたアクセス許可] を選択したままにします。
[アプリケーションのアクセス許可] は、サインインや同意のためのユーザー操作なしに、それら自体として Web API にアクセスする必要があるサービスまたはデーモン タイプのアプリケーションを対象としています。 Web API のアプリケーション ロールを定義していない限り、このオプションは無効になります。
[アクセス許可の選択] で、Web API 用にスコープを定義したリソースを展開し、サインインしたユーザーの代わりとしてのクライアント アプリに必要なアクセス許可を選択します。
- 前のクイック スタートで指定したスコープ名の例を使用した場合、Employees.Read.All と
Employees.Write.All
が表示されます。
- 前のクイック スタートで指定したスコープ名の例を使用した場合、Employees.Read.All と
前提条件の作業の完了時に作成したアクセス許可を選択します (例:
Employees.Read.All
)。[アクセス許可の追加] を選択してプロセスを完了します。
ご自身の API にアクセス許可を追加した後、選択したアクセス許可が [構成されたアクセス許可] に表示されます。 次の図では、Employees.Read.All の委任されたアクセス許可の例をクライアント アプリの登録に追加しています。
Microsoft Graph API に対する User.Read アクセス許可も表示されています。 このアクセス許可は、Azure portal にアプリを登録すると自動的に追加されます。
Microsoft Graph にアクセスするためのアクセス許可を追加する
アプリケーションでは、サインインしたユーザーの代わりに独自の Web API にアクセスすることに加えて、Microsoft Graph に格納されているユーザーの (またはその他の) データにアクセスしたり、そのデータを変更したりすることが必要な場合があります。 または、サービスまたはデーモン アプリがそれ自体として Microsoft Graph にアクセスし、ユーザーによる操作なしで操作を実行することが必要な場合があります。
Microsoft Graph への委任されたアクセス許可
Microsoft Graph に対する委任されたアクセス許可を構成することで、クライアント アプリケーションがログインしたユーザーの代わりに操作を実行できるようになり、たとえば、電子メールを読んだり、プロファイルを変更したりできます。 既定では、クライアント アプリのユーザーは、構成済みの委任されたアクセス許可への同意をログイン時に求められます。
クライアント アプリケーションの [概要] ページで、[API のアクセス許可]>[アクセス許可の追加]>[Microsoft Graph] を選択します
[委任されたアクセス許可] を選択します。 Microsoft Graph には多くのアクセス許可が公開されており、最もよく使用されるものが一覧の一番上に表示されます。
[アクセス許可の選択] で次のアクセス許可を選択します。
権限 説明 email
ユーザーの電子メール アドレスの表示 offline_access
アクセス権を付与したデータへのアクセスの管理 openid
ユーザーをサインインする profile
ユーザーの基本プロファイルの表示 [アクセス許可の追加] を選択してプロセスを完了します。
アクセス許可を構成すると常に、アプリのユーザーは、アプリが彼らに代わってリソース API にアクセスできるようにするための同意をサインイン時に求められます。
管理者は、ユーザーがそうすることを求められることがないように、"すべての" ユーザーに代わって同意を与えることもできます。 管理者の同意については、この記事の「API のアクセス許可と管理者の同意に関する詳細」で後ほど説明します。
Microsoft Graph へのアプリケーションのアクセス許可
ユーザーによる操作や同意なしにそれ自体として認証される必要があるアプリケーション用に、アプリケーションのアクセス許可を構成します。 アプリケーションのアクセス許可は、通常、API に "ヘッドレス" 方式でアクセスするバックグラウンド サービスやデーモン アプリ、および別の (ダウンストリーム) API にアクセスする Web API によって使用されます。
以下の手順では、例として、Microsoft Graph に Files.Read.All アクセス許可を付与します。
- クラウド アプリケーション管理者以上として Microsoft Entra 管理センターにサインインします。
- 複数のテナントにアクセスできる場合は、上部のメニューの [設定] アイコン を使用し、[ディレクトリとサブスクリプション] メニューからアプリケーション登録が含まれるテナントに切り替えます。
- [ID]>[アプリケーション]>[アプリの登録] の順に移動し、クライアント アプリケーションを選びます。
- [API のアクセス許可]>[アクセス許可の追加]>[Microsoft Graph]>[アプリケーションのアクセス許可] を選択します。
- Microsoft Graph によって公開されているすべてのアクセス許可が、 [アクセス許可の選択] に表示されます。
- アプリケーションに付与する 1 つ以上のアクセス許可を選択します。 たとえば、組織内のファイルをスキャンし、特定のファイルの種類または名前について警告するデーモン アプリがあるとします。 [アクセス許可の選択] で、[ファイル] を展開し、
Files.Read.All
アクセス許可を選択します。 - [アクセス許可の追加] を選択します.
- Microsoft Graph の Files.Read.All アクセス許可など、一部のアクセス許可では、管理者の同意が必要です。 管理者の同意を付与するには、 [管理者の同意の付与] ボタンを選択します。これについては、後ほど「管理者の同意のボタン」セクションで説明します。
クライアントの資格情報を構成する
アプリケーションのアクセス許可を使用するアプリは、独自の資格情報を使用してそれ自体として認証を行い、ユーザーによる操作を必要としません。 アプリケーション (または API) がアプリケーションのアクセス許可を使用して、Microsoft Graph、独自の Web API、または別の API にアクセスできるようにするには、そのクライアント アプリの資格情報を構成する必要があります。
アプリの資格情報の構成の詳細については、「資格情報の追加」のセクションが含まれる「クイックスタート: Microsoft ID プラットフォームにアプリケーションを登録する」を参照してください。
API のアクセス許可と管理者の同意に関する詳細
アプリ登録の [API のアクセス許可] ウィンドウには、次のセクションで説明する [構成されたアクセス許可] テーブルと [管理者の同意のボタン] が含まれています。
構成されたアクセス許可
[API のアクセス許可] ウィンドウの [構成されたアクセス許可] テーブルには、基本操作のためにアプリケーションに必要なアクセス許可の一覧 ("必須リソース アクセス" (RRA) リスト) が表示されます。 ユーザーまたは管理者は、アプリを使用する前に、これらのアクセス許可に同意する必要があります。 その他のオプションのアクセス許可は、後から (動的な同意を使用して) 実行時に要求できます。
これは、ユーザーがアプリに関して同意する必要がある最小限のアクセス許可の一覧です。 他にもある可能性がありますが、これらは常に必要です。 セキュリティのため、およびユーザーと管理者がアプリをより快適に使用できるようにするため、必要のないことは要求しないでください。
このテーブルに表示されるアクセス許可を追加または削除するには、前述の手順を使用します。 管理者は、テーブルに表示される API のアクセス許可の完全なセットに対して管理者の同意を付与し、個々のアクセス許可の同意を取り消すことができます。
管理者の同意のボタン
管理者は、 [{お使いのテナント} に管理者の同意を与えます] ボタンを使用して、アプリケーションに対して構成されたアクセス許可に管理者の同意を付与できます。 このボタンを選択すると、同意アクションの確認を求めるダイアログが表示されます。
同意を付与すると、管理者の同意が必要なアクセス許可が、同意付与済みとして表示されます。
管理者の同意を付与するボタンは、管理者でない場合、またはアプリケーションにアクセス許可が構成されていない場合は "無効" になります。 アクセス許可が付与されていてもまだ構成されていない場合、管理者の同意ボタンをクリックすると、これらのアクセス許可を処理するように求められます。 構成されたアクセス許可にそれらを追加するか、それらを削除することができます。
アプリケーションのアクセス許可を削除する
アプリケーションに必要以上に多くのアクセス許可を付与しないことが重要です。 アプリケーションでアクセス許可に対する管理者の同意を取り消すには、次のようにします。
- アプリケーションに移動し、[API のアクセス許可] を選択します。
- [構成されたアクセス許可] で、削除するアクセス許可の横にある 3 つのドットを選択し、[アクセス許可の削除] を選択します
- 表示されたポップアップで、[はい、削除します] を選択して、アクセス許可に対する管理者の同意を取り消します。
関連するコンテンツ
このシリーズの次のクイックスタートに進んで、アプリケーションにアクセスできるアカウントの種類を構成する方法を確認してください。 たとえば、組織内のユーザーのみにアクセスを制限したり (シングルテナント)、他の Microsoft Entra テナントのユーザーを許可したり (マルチテナント)、個人用 Microsoft アカウントを持つユーザーを許可したり (MSA) することができます。