Azure API Management で Microsoft Entra ID を使用して開発者アカウントを承認する

この記事では、次の方法について学習します。

  • Microsoft Entra ID 内のユーザーに対して開発者ポータルへのアクセスを有効にする。
  • Microsoft Entra ユーザーが含まれた外部グループを追加することでそれらのユーザーのグループを管理する。

開発者ポータルをセキュリティで保護するためのオプションの概要については、API Management 開発者ポータルへのアクセスをセキュリティで保護するをご覧ください。

重要

  • この記事は、Microsoft Authentication Library (MSAL) を使用して Microsoft Entra アプリを構成する手順で更新されました。
  • Azure AD Authentication ライブラリ (ADAL) を使用してユーザー サインイン用に Microsoft Entra アプリを前に構成した場合は、MSAL に移行することをお勧めします。

前提条件

  • Azure Cloud Shell で Bash 環境を使用します。 詳細については、「Azure Cloud Shell の Bash のクイックスタート」を参照してください。

  • CLI リファレンス コマンドをローカルで実行する場合、Azure CLI をインストールします。 Windows または macOS で実行している場合は、Docker コンテナーで Azure CLI を実行することを検討してください。 詳細については、「Docker コンテナーで Azure CLI を実行する方法」を参照してください。

    • ローカル インストールを使用する場合は、az login コマンドを使用して Azure CLI にサインインします。 認証プロセスを完了するには、ターミナルに表示される手順に従います。 その他のサインイン オプションについては、Azure CLI でのサインインに関するページを参照してください。

    • 初回使用時にインストールを求められたら、Azure CLI 拡張機能をインストールします。 拡張機能の詳細については、Azure CLI で拡張機能を使用する方法に関するページを参照してください。

    • az version を実行し、インストールされているバージョンおよび依存ライブラリを検索します。 最新バージョンにアップグレードするには、az upgrade を実行します。

可用性

重要

この機能は、API Management の PremiumStandardDeveloper レベルで使用できます。

v2 レベル (プレビュー) での機能の利用可能性については、v2 レベルの概要を参照してください。

API Management インスタンスに移動します。

  1. Azure portal で、[API Management サービス] を検索して選択します。

    Select API Management services

  2. [API Management サービス] ページで、ご自身の API Management インスタンスを選択します。

    Select your API Management instance

Microsoft Entra ID を使用してユーザーのサインインを有効にする - ポータル

構成を簡略化するために、API Management では、開発者ポータルのユーザーに対して Microsoft Entra アプリケーションと ID プロバイダーを自動的に有効にできます。 また、Microsoft Entra アプリケーションと ID プロバイダーを手動で有効にすることもできます。

Microsoft Entra アプリケーションと ID プロバイダーを自動的に有効にする

  1. API Management インスタンスの左側にあるメニューの [開発者ポータル] で、[ポータルの概要] を選択します。

  2. [ポータルの概要] ページで、[Microsoft Entra ID を使用してユーザー サインインを有効にする] まで下にスクロールします。

  3. [Microsoft Entra ID を有効にする] を選択します。

  4. [Microsoft Entra ID を有効にする] ページで、[Microsoft Entra ID を有効にする] を選択します。

  5. [閉じる] を選択します。

    Screenshot of enabling Microsoft Entra ID in the developer portal overview page.

Microsoft Entra プロバイダーが有効になった後:

  • 指定した Microsoft Entra インスタンス内のユーザーが、Microsoft Entra アカウントを使用して開発者ポータルにサインインできます。
  • Microsoft Entra の構成は、ポータルの [開発者ポータル]>[ID] ページで管理できます。
  • 必要に応じて、[ID]>[設定] を選択して他のサインイン設定を構成します。 たとえば、匿名ユーザーをサインイン ページにリダイレクトしたい場合があります。
  • 構成の変更があれば、開発者ポータルを再発行します。

Microsoft Entra アプリケーションと ID プロバイダーを手動で有効にする

  1. API Management インスタンスの左側にあるメニューの [開発者ポータル] で、[ID] を選択します。

  2. 上部から [+ 追加] を選択して、右側に [ID プロバイダーの追加] ウィンドウを開きます。

  3. [種類] の下で、ドロップダウン メニューから [Microsoft Entra ID] を選択します。 選択すると、他の必要な情報を入力できます。

    • [クライアント ライブラリ] ドロップダウンで、[MSAL] を選択します。
    • [クライアント ID][クライアント シークレット] を追加するには、この記事の後半の手順を参照してください。
  4. 後で使用するためにリダイレクト URL を保存します。

    Screenshot of adding identity provider in Azure portal.

    Note

    2 つのリダイレクト URL があります。

    • リダイレクト URL は、API Management の最新の開発者ポータルを指し示します。
    • リダイレクト URL (非推奨のポータル) は、API Management の非推奨の開発者ポータルを指し示します。

    最新の開発者ポータルのリダイレクト URL を使用することをお勧めします。

  5. ブラウザーの新しいタブで、Azure portal を開きます。

  6. Active Directory にアプリを登録するために、[アプリの登録] に移動します。

  7. [新規登録] を選択します。 [アプリケーションの登録] ページで、次のように値を設定します。

    • [名前] は、"開発者ポータル" などのわかりやすい名前に設定します
    • [サポートされているアカウントの種類][任意の組織のディレクトリ内のアカウント] に設定します。
    • [リダイレクト URI][シングルページ アプリケーション (SPA)] を選択し、前の手順で保存したリダイレクト URL を貼り付けます。
    • [登録] を選択します。
  8. アプリケーションを登録したら、 [概要] ページから [アプリケーション (クライアント) ID] をコピーします。

  9. API Management インスタンスが含まれているブラウザー タブに切り替えます。

  10. [ID プロバイダーの追加] ウィンドウで、 [クライアント ID] ボックスに [アプリケーション (クライアント) ID] の値を貼り付けます。

  11. [アプリの登録] が含まれているブラウザー タブに切り替えます。

  12. 適切なアプリの登録を選択します。

  13. サイド メニューの [管理] セクションで、[証明書とシークレット] を選択します。

  14. [証明書とシークレット] ページの [クライアント シークレット] で、[新しいクライアント シークレット] を選択します。

    • [Description](説明) を入力します。
    • [有効期限] のオプションを選択します。
    • [追加] をクリックします。
  15. ページから離れる前に、クライアント シークレット値をコピーします。 この情報は後で必要になります。

  16. サイド メニューの [管理] で、 [認証] を選択します。

    1. [暗黙的な許可およびハイブリッド フロー] セクションで、[ID トークン] チェックボックスを選択します。
    2. [保存] を選択します。
  17. サイド メニューの [管理] で、[トークン構成]>[+ オプション要求の追加] を選択します。

    1. [トークンの種類][ID] を選択します。
    2. 要求として、[メール][family_name][given_name] を選択します (オンにします)。
    3. [追加] を選択します。 メッセージが表示されたら、[Microsoft Graph メールを有効にする] プロファイルのアクセス許可を選択します。
  18. API Management インスタンスが含まれているブラウザー タブに切り替えます。

  19. シークレットを [ID プロバイダーの追加] ウィンドウの [クライアント シークレット] フィールドに貼り付けます。

    重要

    キーの有効期限が切れる前に、クライアント シークレットを更新します。

  20. [ID プロバイダーの追加] ペインの [許可されているテナント] フィールドで、API Management サービス インスタンスの API へのアクセス許可を付与する Microsoft Entra インスタンスのドメインを指定します。

    • 複数のドメインを指定する場合は、改行文字、スペース、またはコンマで区切ります。

    Note

    [許可されているテナント] セクションには、複数のドメインを指定できます。 グローバル管理では、ユーザーが元のアプリの登録ドメインとは異なるドメインからサインインする前に、アプリケーションにディレクトリ データへのアクセス許可を付与する必要があります。 アクセス許可を付与するために、全体管理者は次の操作を行う必要があります。

    1. https://<URL of your developer portal>/aadadminconsent に移動します (例: https://contoso.portal.azure-api.net/aadadminconsent)。
    2. アクセス許可を付与する Microsoft Entra テナントのドメイン名を入力します。
    3. 送信を選択します。
  21. 必要な構成を指定したら、 [追加] を選択します。

  22. Microsoft Entra 構成を有効にするため、開発者ポータルを再発行します。 左側のメニューの [開発者ポータル] で、[ポータルの概要]>[発行] を選択します。

Microsoft Entra プロバイダーが有効になった後:

  • 指定した Microsoft Entra インスタンス内のユーザーが、Microsoft Entra アカウントを使用して開発者ポータルにサインインできます。
  • Microsoft Entra の構成は、ポータルの [開発者ポータル]>[ID] ページで管理できます。
  • 必要に応じて、[ID]>[設定] を選択して他のサインイン設定を構成します。 たとえば、匿名ユーザーをサインイン ページにリダイレクトしたい場合があります。
  • 構成の変更があれば、開発者ポータルを再発行します。

MSAL に移行する

ADAL を使用してユーザー サインイン用に Microsoft Entra アプリを以前に構成した場合は、ポータルを使用してアプリを MSAL に移行し、API Management で ID プロバイダーを更新できます。

MSAL 互換性のために Microsoft Entra アプリを更新する

手順については、リダイレクト URI のシングルページ アプリケーションの種類への切り替えに関する記事を参照してください。

ID プロバイダーの構成を更新する

  1. API Management インスタンスの左側にあるメニューの [開発者ポータル] で、[ID] を選択します。
  2. リストから Microsoft Entra ID を選択します。
  3. [クライアント ライブラリ] ドロップダウンで、[MSAL] を選択します。
  4. [更新] を選択します。
  5. 開発者ポータルを再発行します

外部の Microsoft Entra グループを追加する

Microsoft Entra テナント内のユーザーに対するアクセス許可を有効にしたら、次のことが可能になります。

  • Microsoft Entra グループを API Management に追加する。
  • Microsoft Entra グループを使用して製品の可視性を制御する。
  1. 前のセクションで登録したアプリケーションのアプリ登録ページに移動します。
  2. [API のアクセス許可] を選択します。
  3. Microsoft Graph API 用に、次の最小アプリケーション アクセス許可を追加します。
    • User.Read.All アプリケーションのアクセス許可 – API Management でユーザーのグループ メンバーシップを読み取って、ユーザーのログイン時点にグループ同期を実行できるようにします。
    • Group.Read.All アプリケーションのアクセス許可 – 管理者がポータルの [グループ] ブレードを使用してグループを API Management に追加しようとしたときに、API Management が Microsoft Entra グループを読み取ることができるようにします。
  4. [Grant admin consent for {tenantname}]({テナント名} に対する管理者の同意を与える) を選択して、このディレクトリ内のすべてのユーザーに対するアクセスを許可します。

これで、外部の Microsoft Entra グループを、API Management インスタンスの [グループ] タブから追加できるようになります。

  1. サイド メニューの [開発者ポータル][グループ] を選択します。

  2. [Microsoft Entra グループの追加] ボタンを選択します。

    Screenshot showing Add Microsoft Entra group button in the portal.

  3. ドロップダウン リストから [テナント] を選択します。

  4. 追加するグループを検索して、選択します。

  5. [選択] ボタンを押します。

外部 Microsoft Entra グループを追加した後、次のようにしてそのプロパティを確認および構成できます。

  1. [グループ] タブからグループの名前を選択します。
  2. グループの [名前][説明] の情報を編集します。

これで、構成された Microsoft Entra インスタンスのユーザーが次のことができるようになります。

  • 開発者ポータルにサインインする。
  • 可視性があるすべてのグループを表示し、サブスクライブする。

Note

Microsoft ID プラットフォームでのアクセス許可と同意」の記事で、委任されたアクセス許可とアプリケーションのアクセス許可の種類の違いについて詳細情報をご覧ください。

Microsoft Entra グループを API Management の同期

Microsoft Entra で構成されたグループは、インスタンスに追加できるように API Management と同期する必要があります。 グループが自動的に同期されない場合は、次のいずれかの操作を行ってグループ情報を手動で同期してください。

  • サインアウトし、Microsoft Entra ID にサインインします。 通常、このアクティビティはグループの同期をトリガーします。
  • API Management の構成設定で、Microsoft Entra サインイン テナントが (テナント ID またはドメイン名のいずれかを使用して) 同じ方法で指定されていることを確認します。 API Management に Micorsoft Entra グループを追加するときに、開発者ポータルの Microsoft Entro ID の ID プロバイダーでサインイン テナントを指定します。

開発者ポータル: Microsoft Entra アカウント認証を追加する

開発者ポータルでは、既定の開発者ポータル コンテンツのサインイン ページに含まれるサインイン ボタン: OAuth ウィジェットを使用して Microsoft Entra ID でサインインできます。

Screenshot showing OAuth widget in developer portal.

新しいユーザーが Microsoft Entra ID を使用してサインインするときに新しいアカウントが自動的に作成されますが、サインアップ ページに同じウィジェットを追加することを検討できます。 サインアップ フォーム:OAuth ウィジェットでは、OAuth によるサインアップに使用されるフォームが示されます。

重要

Microsoft Entra ID の変更を有効にするには、ポータルを再発行する必要があります。