Azure API Management の OAuth 2.0 を使用して開発者アカウントを認証する方法How to authorize developer accounts using OAuth 2.0 in Azure API Management

多くの API では、OAuth 2.0 がサポートされています。OAuth 2.0 を使用すると、API をセキュリティで保護して、有効なユーザーのみにアクセスが許可されること、および有効なユーザーが許可されたリソースのみにアクセスできることを保証できます。Many APIs support OAuth 2.0 to secure the API and ensure that only valid users have access, and they can only access resources to which they're entitled. Azure API Management では、対話型の開発者コンソールでそのような API を使用できるようにするために、OAuth 2.0 に対応する API を使用するサービス インスタンスを構成できます。In order to use Azure API Management's interactive Developer Console with such APIs, the service allows you to configure your service instance to work with your OAuth 2.0 enabled API.

前提条件 Prerequisites

このガイドでは、開発者アカウントに OAuth 2.0 認証を使用するように API Management サービス インスタンスを構成する方法を説明していますが、OAuth 2.0 プロバイダーを構成する方法は説明していません。This guide shows you how to configure your API Management service instance to use OAuth 2.0 authorization for developer accounts, but does not show you how to configure an OAuth 2.0 provider. 手順は似ていて、API Management サービス インスタンスでの OAuth 2.0 の構成に使用される情報は同じですが、各 OAuth 2.0 プロバイダーの構成は異なっています。The configuration for each OAuth 2.0 provider is different, although the steps are similar, and the required pieces of information used in configuring OAuth 2.0 in your API Management service instance are the same. このトピックは、Azure Active Directory を OAuth 2.0 プロバイダーとして使用する例を示しています。This topic shows examples using Azure Active Directory as an OAuth 2.0 provider.

注意

Azure Active Directory を使用して OAuth 2.0 を構成する方法について詳しくは、WebApp-GraphAPI-DotNet のサンプルを参照してください。For more information on configuring OAuth 2.0 using Azure Active Directory, see the WebApp-GraphAPI-DotNet sample.

API Management で OAuth 2.0 認証サーバーを構成する Configure an OAuth 2.0 authorization server in API Management

まず、ご利用の API Management サービスの Azure Portal で [パブリッシャー ポータル] をクリックします。To get started, click Publisher portal in the Azure Portal for your API Management service.

発行者ポータル

注意

API Management サービス インスタンスをまだ作成していない場合は、API Management サービス インスタンスの作成に関するページを参照してください。If you have not yet created an API Management service instance, see Create an API Management service instance.

左側の [API Management] メニューで [セキュリティ] をクリックし、[OAuth 2.0] をクリックしてから、[Add authorization server (認証サーバーの追加)] をクリックします。Click Security from the API Management menu on the left, click OAuth 2.0, and then click Add authorization server.

OAuth 2.0

[認証サーバーの追加 (Add authorization server)] をクリックした後に、新しい認証サーバーのフォームが表示されます。After clicking Add authorization server, the new authorization server form is displayed.

新しいサーバー

[名前] フィールドと [説明] フィールドに、名前とオプションの説明を入力します。Enter a name and an optional description in the Name and Description fields.

注意

これらのフィールドは、OAuth 2.0 認証サーバーを現在の API Management サービス インスタンス内で識別するために使用されるもので、それらの値が OAuth 2.0 サーバーによって自動入力されることはありません。These fields are used to identify the OAuth 2.0 authorization server within the current API Management service instance and their values do not come from the OAuth 2.0 server.

クライアント登録ページ URL を入力します。Enter the Client registration page URL. このページでは、ユーザーがアカウントを作成して管理できます。このページは使用される OAuth 2.0 プロバイダーによって異なります。This page is where users can create and manage their accounts, and varies depending on the OAuth 2.0 provider used. [クライアント登録ページ URL] では、ユーザーによるアカウント管理をサポートする OAuth 2.0 プロバイダーについて、ユーザーが自身のアカウントを作成および構成するために使用できるページを指定します。The Client registration page URL points to the page that users can use to create and configure their own accounts for OAuth 2.0 providers that support user management of accounts. この機能を OAuth 2.0 プロバイダーがサポートしている場合でも、組織によってはこの機能を構成または使用していない場合があります。Some organizations do not configure or use this functionality even if the OAuth 2.0 provider supports it. OAuth 2.0 プロバイダーでユーザーによるアカウント管理が構成されていない場合は、会社の URL、https://placeholder.contoso.com のような URL などのプレースホルダー URL を入力してください。If your OAuth 2.0 provider does not have user management of accounts configured, enter a placeholder URL here such as the URL of your company, or a URL such as https://placeholder.contoso.com.

フォームの次のセクションには、[Authorization code grant types (認証コード付与タイプ)][Authorization endpoint URL (認証エンドポイント URL)]、および [Authorization request method (認証要求方式)] 設定が含まれます。The next section of the form contains the Authorization code grant types, Authorization endpoint URL, and Authorization request method settings.

新しいサーバー

必要なタイプにチェックマークを入れて、 [認証コード付与タイプ (Authorization code grant types)] を指定します。Specify the Authorization code grant types by checking the desired types. [認証コード] が既定で指定されています。Authorization code is specified by default.

[Authorization endpoint URL (認証エンドポイント URL)] を入力します。Enter the Authorization endpoint URL. Azure Active Directory では、この URL は以下の URL のようになります。ここで、<client_id> は、使用するアプリケーションを OAuth 2.0 サーバーが識別するためのクライアント ID に置き換えてください。For Azure Active Directory, this URL will be similar to the following URL, where <client_id> is replaced with the client id that identifies your application to the OAuth 2.0 server.

https://login.microsoftonline.com/<client_id>/oauth2/authorize

[認証要求方式 (Authorization request method)] は、認証要求が OAuth 2.0 サーバーに送信される方法を指定します。The Authorization request method specifies how the authorization request is sent to the OAuth 2.0 server. 既定では [GET] が選択されています。By default GET is selected.

次のセクションでは、[Token endpoint URL (トークン エンドポイント URL)][Client authentication methods (クライアント認証方式)][Access token sending method (アクセス トークン送信方式)]、および [Default scope (既定のスコープ)] を指定します。The next section is where the Token endpoint URL, Client authentication methods, Access token sending method, and Default scope are specified.

新しいサーバー

Azure Active Directory OAuth 2.0 サーバーでは、[Token endpoint URL (トークン エンドポイント URL)] の形式が以下のようになります。ここで、<APPID> の形式は yourapp.onmicrosoft.com です。For an Azure Active Directory OAuth 2.0 server, the Token endpoint URL will have the following format, where <APPID> has the format of yourapp.onmicrosoft.com.

https://login.microsoftonline.com/<APPID>/oauth2/token

既定の設定は、[Client authentication methods (クライアント認証方式)][Basic (基本)][Access token sending method (アクセス トークン送信方式)][Authorization header (承認ヘッダー)] です。The default setting for Client authentication methods is Basic, and Access token sending method is Authorization header. これらの値は、 [既定のスコープ (Default scope)] と共に、フォームのこのセクションで構成されます。These values are configured on this section of the form, along with the Default scope.

[クライアントの資格情報] セクションには [クライアント ID][クライアント シークレット] が含まれます。これらは OAuth 2.0 サーバーの作成と構成のプロセスで取得されます。The Client credentials section contains the Client ID and Client secret, which are obtained during the creation and configuration process of your OAuth 2.0 server. [クライアント ID][クライアント シークレット] が指定された後に、[認証コード]redirect_uri が生成されます。Once the Client ID and Client secret are specified, the redirect_uri for the authorization code is generated. この URI は、OAuth 2.0 サーバー構成で応答 URL を構成するために使用されます。This URI is used to configure the reply URL in your OAuth 2.0 server configuration.

新しいサーバー

[Authorization code grant types (認証コード付与タイプ)][Resource owner password (リソース所有者パスワード)] に設定された場合、[Resource owner password credentials (リソース所有者パスワードの資格情報)] セクションがそれらの資格情報の指定に使用されます。そうでない場合は、そのセクションを空白のままにすることができます。If Authorization code grant types is set to Resource owner password, the Resource owner password credentials section is used to specify those credentials; otherwise you can leave it blank.

新しいサーバー

このフォームが完了したら、 [保存] をクリックして API Management OAuth 2.0 認証サーバーの構成を保存します。Once the form is complete, click Save to save the API Management OAuth 2.0 authorization server configuration. サーバーの構成が保存された後、次のセクションで説明されているように、この構成を使用するように API を構成できます。Once the server configuration is saved, you can configure APIs to use this configuration, as shown in the next section.

OAuth 2.0 ユーザー認証を使用するように API を構成する Configure an API to use OAuth 2.0 user authorization

左側の [API Management] メニューで [API] をクリックし、必要な API の名前をクリックし、[セキュリティ] をクリックしてから、[OAuth 2.0] のボックスにチェックマークを入れます。Click APIs from the API Management menu on the left, click the name of the desired API, click Security, and then check the box for OAuth 2.0.

ユーザー認証

必要な [Authorization server (認証サーバー)] をドロップダウン リストで選択して、[保存] をクリックします。Select the desired Authorization server from the drop-down list, and click Save.

ユーザー認証

開発者ポータルで OAuth 2.0 ユーザー認証をテストする Test the OAuth 2.0 user authorization in the Developer Portal

OAuth 2.0 認証サーバーを構成して、そのサーバーを使用するように API を構成した後、開発者ポータルに移動して API を呼び出すことにより、そのサーバーをテストできます。Once you have configured your OAuth 2.0 authorization server and configured your API to use that server, you can test it by going to the Developer Portal and calling an API. 右上のメニューで、 [開発者ポータル] をクリックします。Click Developer portal in the top right menu.

[開発者ポータル]

上部のメニューで [API] をクリックし、[Echo API] を選択します。Click APIs in the top menu and select Echo API.

[Echo API]

注意

アカウントに対して構成されている (またはアカウントから見える) API が 1 つしかない場合、[API] をクリックすると、その API の操作に直接誘導されます。If you have only one API configured or visible to your account, then clicking APIs takes you directly to the operations for that API.

[GET Resource] 操作を選択し、[コンソールを開く] をクリックして、ドロップダウンで [認証コード] を選択します。Select the GET Resource operation, click Open Console, and then select Authorization code from the drop-down.

コンソールを開く

[認証コード] が選択されると、OAuth 2.0 プロバイダーのサインイン フォームがあるポップアップ ウィンドウが表示されます。When Authorization code is selected, a pop-up window is displayed with the sign-in form of the OAuth 2.0 provider. この例では、サインイン フォームは Azure Active Directory によって提供されています。In this example the sign-in form is provided by Azure Active Directory.

注意

ポップアップが無効になっている場合は、それを有効にするように伝えるプロンプトがブラウザーによって出されます。If you have pop-ups disabled you will be prompted to enable them by the browser. ポップアップを有効にした後に、再び [認証コード] を選択すると、サインイン フォームが表示されます。After you enable them, select Authorization code again and the sign-in form will be displayed.

[サインイン]

サインインした後、[要求ヘッダー] には、要求を認証するための Authorization : Bearer ヘッダーが取り込まれます。Once you have signed in, the Request headers are populated with an Authorization : Bearer header that authorizes the request.

要求ヘッダー トークン

これで、残りのパラメーター用に必要な値を構成して、要求を送信できます。At this point you can configure the desired values for the remaining parameters, and submit the request.

次の手順Next steps

OAuth 2.0 と API Management の詳細については、次のビデオとこの 記事をご覧ください。For more information about using OAuth 2.0 and API Management, see the following video and accompanying article.