次の方法で共有


Microsoft Entra アプリケーション プロキシを使用して Azure Logic Apps をオンプレミス API に安全に統合する

Azure Logic Apps は、コードなしの環境でマネージド ワークフローを簡単に作成できるようにするサービスであり、さまざまな外部サービスやシステムと統合できます。 ワークフローにより、データ統合、データ処理、イベントドリブン シナリオなど、幅広いビジネス プロセスを自動化できます。 Logic Apps は、他のパブリック サービスおよびクラウドベースのサービスと統合されています。 または、 Logic Apps をオンプレミスのアプリケーションとサービスで併用することもできます。 プライベート ネットワーク統合では、ポート転送や従来のリバース プロキシを使用してサービスをパブリックに公開することはありません。

この記事では、Microsoft Entra アプリケーション プロキシ ソリューションを利用してロジック アプリに安全にアクセスできるようにし、望ましくないアクターから内部アプリケーションを保護するために必要な手順について説明します。 プロセスと最終的な結果は、Microsoft Entra アプリケーション プロキシを使用してオンプレミス API にアクセスする場合に似ています。この場合、ロジック アプリ内から API を利用することに特に注意を払います。

概要

次の図は、Azure Logic Apps からアクセスするためにオンプレミス API を公開する従来の方法を示しています。 この方法では、API サービスに対して受信伝送制御プロトコル (TCP) ポート 80 または 443 を開く必要があります。

Logic App から API への直接接続を示す図。

次の図は、Microsoft Entra アプリケーション プロキシを使用してどのように、受信ポートを開くことなく Logic Apps (またはその他の Azure Cloud サービス) で使用する API を安全に公開するかを示しています。

Azure アプリケーション プロキシを介した Logic App から API への接続を示す図。

Microsoft Entra アプリケーション プロキシおよび関連するコネクタを使用すると、ネットワーク セキュリティ インフラストラクチャに追加の構成を行わずに、オンプレミス サービスに対する承認と統合を安全に行うことができます。

前提条件

このチュートリアルを実行するには、次が必要です。

Note

ユーザー エンタイトルメントを付与し、サインオンをテストすることをお勧めしていますが、このガイドでは必須ではありません。

アプリケーション アクセスの構成

新しいエンタープライズ アプリケーションが作成されると、一致するアプリ登録も作成されます。 アプリ登録を使用すると、証明書、シークレット、またはフェデレーション資格情報を使用して、セキュリティで保護された、プログラムによるアクセスを構成できます。 ロジック アプリと統合するには、クライアント シークレット キーを構成し、API のアクセス許可を構成します。

  1. アプリケーション管理者以上の権限で Microsoft Entra 管理センターにサインインします。

  2. [ID]>[アプリケーション]>[アプリの登録] を参照します。

  3. [アプリの登録] ウィンドウから、[すべてのアプリケーション] タブ オプションを選択します。

  4. デプロイされたアプリケーション プロキシ アプリケーションに一致する名前のアプリケーションに移動します。 たとえば、サンプル アプリ 1 をエンタープライズ アプリケーションとしてデプロイした場合は、サンプル アプリ 1 という登録項目を選びます。

    Note

    関連するアプリケーションが見つからない場合は、自動的に作成されていないか削除された可能性があります。 登録は、[New Registration] (新規登録) ボタンを使用して作成できます。

  5. サンプル アプリ 1 の詳細ページで、[アプリケーション (クライアント) ID] および [ディレクトリ (テナント) ID] フィールドを記録します。

    Microsoft Entra の [アプリの登録] の詳細のスクリーンショット。

  6. ナビゲーション ウィンドウから [API のアクセス許可] メニュー項目を選択します。

    Microsoft Entra の [アプリの登録] の [API のアクセス許可] メニュー項目のスクリーンショット。

    1. [アクセス許可の追加] ボタンを選択します。

      1. [所属する組織で使用している API] タブを選択します。

      2. アプリを名前 (例: サンプル アプリ 1) で検索し、その項目を選択します。

      3. [委任されたアクセス許可]選択されていることを確認し、[user_impersonation] のチェック ボックスをオンにします。

      4. アクセス許可の追加 を選択します。

    2. 構成されたアクセス許可が表示されていることを確認します。

      Microsoft Entra の [アプリの登録] の [API のアクセス許可] の詳細のスクリーンショット。

  7. ナビゲーション ウィンドウから [証明書とシークレット] メニュー項目を選択します。

    Microsoft Entra の [アプリの登録] の [証明書とシークレット] メニュー項目のスクリーンショット。

    1. [クライアント シークレット] タブ項目を選択します。

    2. [New client secret]\(新しいクライアント シークレット\) ボタンを選択します。

    3. [クライアント シークレットの追加] ポップアップで、次のようにします。

      1. [説明] と必要な有効期限を入力します。

      2. [追加] を選択します。

    4. 新しいクライアント シークレットが表示されていることを確認します。

    5. 新しく作成したシークレットの [値] の [コピー] ボタンを選びます。 後で使用するためにこのシークレットを安全に保存します。この値は 1 回だけ表示されます。

      Microsoft Entra の [アプリの登録] のクライアント シークレットの詳細のスクリーンショット。

ロジック アプリを構成する

  1. Logic App から デザイナー ビューを開きます。

  2. 目的のトリガーを選択します (プロンプトが表示された場合)。

  3. 新しいステップを追加し、HTTP 操作を選択します。

    Azure Logic App のトリガー オプション ペインのスクリーンショット。

    1. [メソッド]: 内部 API に送信する目的の HTTP メソッドを選択します。

    2. URI: Microsoft Entra ID に登録されているアプリケーションのパブリック完全修飾ドメイン名 (FQDN) と、API アクセスに必要な他の URI (例: sampleapp1.msappproxy.net/api/1/status) を入力します。

      Note

      API の具体的な値は、内部アプリケーションによって異なります。

    3. [ヘッダー]: 内部 API に送信する、目的のヘッダーを入力します。

    4. [クエリ]: 内部 API に送信する、目的のクエリを入力します。

    5. [本体]: 内部 API に送信する、目的の本文の内容を入力します。

    6. [Cookie]: 内部 API に送信する、目的の Cookie を入力します。

    7. [新しいパラメーターの追加] を選び、[認証] をオンにします。

    8. [認証の種類] ドロップダウンから [Microsoft Entra ID OAuth] を選択します。

    9. 認証では、次の詳細を入力します。

      1. [権限]: 「https://login.windows.net」と入力します。

      2. [テナント]: 「アプリケーション アクセスの構成」でメモしたディレクトリ (テナント) ID を入力します。

      3. [対象ユーザー]: Microsoft Entra ID に登録されているアプリケーションのパブリック FQDN (例: sampleapp1.msappproxy.net) を入力します。

      4. [クライアント ID]: 「アプリケーション アクセスの構成」でメモしたアプリケーション (クライアント) ID を入力します。

      5. [資格情報の種類]: シークレット

      6. [シークレット]: 「アプリケーション アクセスの構成」でメモしたシークレット値を入力します。

      Azure Logic App の HTTP ActionConfiguration のスクリーンショット。

  4. ロジック アプリを保存し、トリガーでテストします。

注意事項

認証/承認を必要とする API では、この方法を使用する際は特別な処理が必要です。 Microsoft Entra ID OAuth がアクセスに使用されているため、送信される要求には内部 API では利用できない Authorization フィールドが既に含まれています (シングル サインオンが構成されている場合を除く)。 回避策として、一部のアプリケーションには、Authorization ヘッダー以外の方法を使用する認証または承認が用意されています。 たとえば、GitLab では PRIVATE-TOKEN というタイトルのヘッダーを使用でき、Atlassian JIRA では後の要求で使用できる Cookie を要求できます。

ロジック アプリの HTTP アクションにはクリア テキスト値が表示されます。 ただし、アプリ登録シークレット キーを Azure Key Vault に格納し、安全に取得および使用できるようにしてください。

関連項目