Azure Logic Apps でマネージド ID を使用して Azure リソースへのアクセスと接続を認証する

適用対象: Azure Logic Apps (従量課金プラン + Standard)

マネージド ID を使用して、ロジック アプリ ワークフローから Microsoft Entra で保護されたリソースへのアクセスまたは接続を認証する場合、資格情報、シークレット、または Microsoft Entra トークンを指定する必要はありません。 Azure Logic Apps では、Microsoft Entra ID で保護されているリソースへのアクセスを認証する必要がある場合、一部のコネクタ操作ではマネージド ID の使用がサポートされます。 この ID は Azure で管理され、認証情報が安全に保たれます。この機密情報をユーザー側で管理する必要がないからです。 詳細については、「Azure リソースのマネージド ID とは」を参照してください。

Azure Logic Apps は、システム割り当てマネージド IDユーザー割り当てマネージド ID をサポートします。 次の一覧では、これらのマネージド ID の種類の違いについて説明します。

  • ロジック アプリ リソースでは、一意のシステム割り当て ID を 1 つのみ有効にして使用できます。

  • ロジック アプリ リソースは、他のロジック アプリ リソースのグループ間で同じユーザー割り当て ID を共有できます。

このガイドでは、次のタスクを完了する方法について説明します。

  • ロジック アプリ リソースのシステム割り当てマネージド ID を有効にして設定します。 このガイドでは、認証に ID を使用する方法を示す例を示します。

  • ユーザー割り当て ID を作成して設定します。 このガイドでは、Azure portal と Azure Resource Manager テンプレート (ARM テンプレート) を使用してユーザー割り当て ID を作成する方法と、認証に ID を使用する方法について説明します。 Azure PowerShell、Azure CLI、および Azure REST API については、次のドキュメントを参照してください。

ツール ドキュメント
Azure PowerShell ユーザー割り当て ID を作成する
Azure CLI ユーザー割り当て ID を作成する
Azure REST API ユーザー割り当て ID を作成する

従量課金制と Standard ロジック アプリ

ロジック アプリのリソースの種類に基づいて、システム割り当て ID、ユーザー割り当て ID のいずれか、または両方を同時に有効にできます。

ロジック アプリ 環境 マネージド ID のサポート
従量課金 - マルチテナント Azure Logic Apps

- 統合サービス環境 (ISE)
- ロジック アプリでは、システム割り当て ID またはユーザー割り当て ID のいずれかを有効にできます。

- ロジック アプリのリソース レベルと接続レベルでマネージド ID を使用できます。

- ユーザー割り当て ID を有効にした場合、ロジック アプリで一度に 1 つのみのユーザー割り当て ID を持つことができます。
Standard - シングルテナントの Azure Logic Apps

- App Service Environment v3 (ASEv3)

- Azure Arc 対応 Logic Apps
- 既定で有効になっているシステム割り当て ID とユーザー割り当て ID の両方を同時に有効にすることができます。

- ロジック アプリのリソース レベルと接続レベルでマネージド ID を使用できます。

- ユーザー割り当て ID を有効にした場合、ロジック アプリ リソースは複数のユーザー割り当て ID を同時に持つことができます。

Azure Logic Apps でのマネージド ID の制限については、「ロジック アプリのマネージド ID の制限」を参照してください。 従量課金および標準ロジック アプリのリソースの種類と環境の詳細については、次のドキュメントを参照してください。

マネージド ID を使用できる場合

Azure Logic Apps では、Microsoft Entra ID で OAuth をサポートする特定の組み込みおよびマネージド コネクタ操作のみが、認証にマネージド ID を使用できます。 次の表では、サンプルの選択のみを示します。 詳細な一覧については 、認証をサポート するトリガーとアクションの認証の種類と 、マネージド ID を使用した Microsoft Entra 認証をサポートする Azure サービスに関するページを参照してください

従量課金ロジック アプリ ワークフローの場合、次の表に、マネージド ID 認証をサポートするコネクタを示します。

コネクタの種類 サポートされているコネクタ
組み込み - Azure API Management
- Azure App Services
- Azure Functions
- HTTP
- HTTP および Webhook

: HTTP 操作では、システム割り当て ID を使用して Azure ファイアウォールの内側にある Azure Storage アカウントへの接続を認証できます。 ただし、同じ接続の認証に、ユーザー割り当てマネージド ID はサポートされていません。

マネージド - Azure App Service
- Azure Automation
- Azure Blob Storage
- Azure Container Instance
- Azure Cosmos DB
- Azure Data Explorer
- Azure Data Factory
- Azure Data Lake
- Azure Event Grid
- Azure Event Hubs
- Azure IoT Central V2
- Azure IoT Central V3
- Azure Key Vault
- Azure Log Analytics
- Azure キュー
- Azure Resource Manager
- Azure Service Bus
- Azure Sentinel
- Azure Table Storage
- Azure VM
- Microsoft Entra ID を使用した HTTP
- SQL Server

前提条件

  • Azure アカウントとサブスクリプション。 サブスクリプションをお持ちでない場合には、無料の Azure アカウントにサインアップしてください。 マネージド ID とアクセスする必要があるターゲット Azure リソースの両方で、同じ Azure サブスクリプションを使用する必要があります。

  • アクセスするターゲット Azure リソース。 このリソースでは、マネージド ID がロジック アプリまたは接続の代わりにそのリソースにアクセスするために必要なロールを追加します。 ロールをマネージド ID に追加するには、対応する Microsoft Entra テナント内の ID にロールを割り当てることができる、Microsoft Entra 管理者のアクセス許可が必要です。

  • マネージド ID がサポートされているトリガーまたはアクションを使用するロジック アプリのリソースおよびワークフロー。

Azure portal でシステム割り当て ID を有効にする

  1. Azure portal で、ロジック アプリ リソースを開きます。

  2. ロジック アプリのメニューの [設定] で、 [ID] を選択します。

  3. [ID] ページの [システム割り当て済み] で、[保存時>] を選択します。 確認を求めるメッセージが表示されたら、 [はい] を選択します。

    Screenshot shows Azure portal, Consumption logic app, Identity page, and System assigned tab with selected options, On and Save.

    Note

    マネージド ID を 1 つだけ持つことができるというエラーが表示される場合、ロジック アプリのリソースは既にユーザー割り当て ID に関連付けられています。 システム割り当て ID を追加する前に、まずロジック アプリ リソースからユーザー割り当て ID を削除する必要があります。

    これで、ロジック アプリ リソースでシステム割り当て ID を使用できます。 この ID は、Microsoft Entra ID に登録され、オブジェクト ID で表されます。

    Screenshot shows Consumption logic app, Identity page, and object ID for system-assigned identity.

    プロパティ 説明
    オブジェクト (プリンシパル) ID <identity-resource-ID> Microsoft Entra テナント内のロジック アプリのシステム割り当て ID を表すグローバル一意識別子 (GUID)。
  4. 次に、このガイドの 後半でリソース へのアクセス権をその ID に付与する手順に従います。

ARM テンプレートでシステム割り当て ID を有効にする

ロジック アプリの作成とデプロイを自動化するために、ARM テンプレートを使用できます。 テンプレートでロジック アプリのリソースのシステム割り当て ID を有効にするには、次のように、テンプレートのロジック アプリのリソース定義に identity オブジェクトと type 子プロパティを追加します。

{
   "apiVersion": "2016-06-01",
   "type": "Microsoft.logic/workflows",
   "name": "[variables('logicappName')]",
   "location": "[resourceGroup().location]",
   "identity": {
      "type": "SystemAssigned"
   },
   "properties": {},
   <...>
}

Azure によってロジック アプリのリソース定義が作成されると、identity オブジェクトでこれらの他のプロパティが取得されます。

"identity": {
   "type": "SystemAssigned",
   "principalId": "<principal-ID>",
   "tenantId": "<Azure-AD-tenant-ID>"
}
プロパティ (JSON) 説明
principalId <principal-ID> Microsoft Entra テナント内のロジック アプリを表すマネージド ID のサービス プリンシパル オブジェクトのグローバル一意識別子 (GUID)。 この GUID は、"オブジェクト ID" (objectID) として表されることがあります。
tenantId <Azure-AD-tenant-ID> ロジック アプリが現在メンバーとなっている Microsoft Entra テナントを表すグローバル一意識別子 (GUID)。 Microsoft Entra テナント内では、サービス プリンシパルはロジック アプリ インスタンスと同じ名前です。

Azure portal でユーザー割り当て ID を作成する

従量課金ロジック アプリ リソースまたは Standard ロジック アプリ リソースでユーザー割り当て ID を有効にするには、その ID を別の Azure リソースとして作成する必要があります。

  1. Azure portal の検索ボックスに「マネージド ID」と入力し、[マネージド ID] を選択します

    Screenshot shows Azure portal with selected option named Managed Identities.

  2. [マネージド ID] ページで、[作成] を選択します

    Screenshot shows Managed Identities page and selected option for Create.

  3. マネージド ID に関する情報を入力し、[確認と作成] を選択します。次に例を示します。

    Screenshot shows page named Create User Assigned Managed Identity, with managed identity details.

    プロパティ 必要 説明
    サブスクリプション はい <Azure サブスクリプション名> Azure サブスクリプション名
    リソース グループ はい <Azure リソース グループ名>< Azure リソース グループ名です。 新しいグループを作成するか、既存のグループを選択します。 この例では、fabrikam-managed-identities-RG という名前の新しいグループを作成します。
    リージョン はい <Azure リージョン>< リソースに関する情報の保存先となる Azure リージョン。 この例では米国西部を使用します。
    名前 はい <user-assigned-identity-name> ユーザー割り当て ID に付与する名前。 この例では、Fabrikam-user-assigned-identity を使用 します

    Azure は、情報を検証した後、マネージド ID を作成します。 これで、ユーザー割り当て ID をロジック アプリ リソースに追加できるようになりました。

ユーザー割り当て ID を Azure portal のロジック アプリに追加する

  1. Azure portal で、ロジック アプリ リソースを開きます。

  2. ロジック アプリのメニューの [設定] で、 [ID] を選択します。

  3. [ID] ページで、[ユーザー割り当て追加>] を選択します。

    Screenshot shows Consumption logic app and Identity page with selected option for Add.

  4. [ユーザー割り当てマネージド ID の追加] ペインで、こちらの手順を実行します。

    1. [サブスクリプション] の一覧から、Azure サブスクリプションを選択します。

    2. サブスクリプション内のすべてのマネージド ID を含む一覧から、必要なユーザー割り当て ID を選択します。 一覧をフィルター処理するには、 [ユーザー割り当て済みマネージド ID] 検索ボックスに、ID またはリソース グループの名前を入力します。

      Screenshot shows Consumption logic app and selected user-assigned identity.

    3. 終了したら、 [追加] を選択します。

      Note

      マネージド ID を 1 つだけ持つことができるというエラーが表示される場合、ロジック アプリは既にシステム割り当て ID に関連付けられています。 ユーザー割り当て ID を追加できるようにするには、まず、システム割り当て ID を無効にする必要があります。

    これで、ロジック アプリがユーザー割り当てのマネージド ID に関連付けられました。

    Screenshot shows Consumption logic app with associated user-assigned identity.

  5. 次に、このガイドの 後半でリソース へのアクセス権をその ID に付与する手順に従います。

ARM テンプレートでユーザー割り当て ID を作成する

ロジック アプリの作成とデプロイを自動化するために、ARM テンプレートを使用できます。 これらのテンプレートでは、認証に対してユーザー割り当て ID がサポートされます。

テンプレートの resources セクションでは、ロジック アプリのリソース定義に次の項目が必要です。

  • type プロパティが UserAssigned に設定されている identity オブジェクト

  • ユーザー割り当てリソースと名前が指定されている子 userAssignedIdentities オブジェクト

この例では、パラメーター化されていない identity オブジェクトを含む HTTP PUT 要求の従量課金ロジック アプリ リソースとワークフロー定義を示します。 PUT 要求とその後の GET 操作に対する応答には、次 identity のオブジェクトも含まれます。

{
   "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
   "contentVersion": "1.0.0.0",
   "parameters": {<template-parameters>},
   "resources": [
      {
         "apiVersion": "2016-06-01",
         "type": "Microsoft.logic/workflows",
         "name": "[variables('logicappName')]",
         "location": "[resourceGroup().location]",
         "identity": {
            "type": "UserAssigned",
            "userAssignedIdentities": {
               "/subscriptions/<Azure-subscription-ID>/resourceGroups/<Azure-resource-group-name>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<user-assigned-identity-name>": {}
            }
         },
         "properties": {
            "definition": {<logic-app-workflow-definition>}
         },
         "parameters": {},
         "dependsOn": []
      },
   ],
   "outputs": {}
}

テンプレートにマネージド ID のリソース定義も含まれている場合は、identity オブジェクトをパラメーター化できます。 次の例は、子userAssignedIdentitiesオブジェクトがテンプレートのvariablesセクションで定義した変数を参照userAssignedIdentityNameする方法を示しています。 この変数は、ユーザー割り当て ID のリソース ID を参照しています。

{
   "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
   "contentVersion": "1.0.0.0",
   "parameters": {
      "Template_LogicAppName": {
         "type": "string"
      },
      "Template_UserAssignedIdentityName": {
         "type": "securestring"
      }
   },
   "variables": {
      "logicAppName": "[parameters(`Template_LogicAppName')]",
      "userAssignedIdentityName": "[parameters('Template_UserAssignedIdentityName')]"
   },
   "resources": [
      {
         "apiVersion": "2016-06-01",
         "type": "Microsoft.logic/workflows",
         "name": "[variables('logicAppName')]",
         "location": "[resourceGroup().location]",
         "identity": {
            "type": "UserAssigned",
            "userAssignedIdentities": {
               "[resourceId('Microsoft.ManagedIdentity/userAssignedIdentities/', variables('userAssignedIdentityName'))]": {}
            }
         },
         "properties": {
            "definition": {<logic-app-workflow-definition>}
         },
         "parameters": {},
         "dependsOn": [
            "[resourceId('Microsoft.ManagedIdentity/userAssignedIdentities/', variables('userAssignedIdentityName'))]"
         ]
      },
      {
         "apiVersion": "2018-11-30",
         "type": "Microsoft.ManagedIdentity/userAssignedIdentities",
         "name": "[parameters('Template_UserAssignedIdentityName')]",
         "location": "[resourceGroup().location]",
         "properties": {}
      }
  ]
}

ID にリソースへのアクセス権を付与する

ロジック アプリのマネージド ID を認証に使用する前に、ID を使用する Azure リソースで ID のアクセスを設定します。 アクセスの設定方法は、ID にアクセスするリソースによって異なります。

Note

あるマネージド ID が同じサブスクリプション内のある Azure リソースにアクセスできる場合、その ID はそのリソースにのみアクセスできます。 ただし、マネージド ID をサポートする一部のトリガーとアクションでは、ターゲット リソースが含まれている Azure リソース グループを最初に選ぶ必要があります。 ID にそのリソース グループ レベルでのアクセス権がない場合は、ターゲット リソースへのアクセス権があっても、そのグループ内のリソースは表示されません。

この動作に対応するには、リソースだけではなく、リソース グループにも ID アクセス権を付与する必要があります。 同様に、ターゲット リソースを選ぶ前にサブスクリプションを選ぶ必要がある場合は、そのサブスクリプションへの ID アクセス権を付与する必要があります。

場合によっては、関連付けられているリソースにアクセスするために ID が必要な場合があります。 たとえば、ロジック アプリのマネージド ID があり、ワークフローから同じロジック アプリのアプリケーション設定を更新するためにアクセス権を必要としているとします。 関連付けられているロジック アプリへのアクセス権をその ID に付与する必要があります。

たとえば、マネージド ID を使用して Azure Blob Storage アカウントにアクセスするには、Azure ロールベースのアクセス制御 (Azure RBAC) を使用してアクセスを設定し、その ID に適切なロールをストレージ アカウントに割り当てる必要があります。 このセクションの手順では、Azure portalAzure Resource Manager テンプレート (ARM テンプレート) を使用してこのタスクを完了する方法について説明します。 Azure PowerShell、Azure CLI、および Azure REST API については、次のドキュメントを参照してください。

ツール ドキュメント
Azure PowerShell ロールの割り当てを追加する
Azure CLI ロールの割り当てを追加する
Azure REST API ロールの割り当てを追加する

ただし、マネージド ID を使用して Azure のキー コンテナーにアクセスするには、その ID のアクセス ポリシーをキー コンテナーに作成し、そのキー コンテナー上のその ID に適切なアクセス許可を割り当てる必要があります。 このセクションの後の手順では、Azure portal を使用してこのタスクを完了する方法について説明します。 Resource Manager テンプレート、PowerShell、Azure CLI については、次のドキュメントを参照してください。

ツール ドキュメント
Azure Resource Manager テンプレート (ARM テンプレート) Key Vault アクセス ポリシー リソースの定義
Azure PowerShell Key Vault アクセス ポリシーを割り当てる
Azure CLI Key Vault アクセス ポリシーを割り当てる

Azure portal でマネージド ID のロールベースのアクセスを割り当てる

認証にマネージド ID を使用するには、Azure ストレージ アカウントなどの一部の Azure リソースで、その ID をターゲット リソースに対する適切なアクセス許可を持つロールに割り当てる必要があります。 Azure キー コンテナーなどの他の Azure リソースでは、その ID のターゲット リソースに対する適切なアクセス許可を持つアクセス ポリシーを作成する必要があります。

  1. Azure portalで、ID を使用する予定のリソースを開きます。

  2. リソース メニューで、アクセス制御 (IAM)> [ロールの割り当ての追加]>を選択します。

    Note

    [ロールの割り当ての追加] オプションが無効な場合は、ロールを割り当てるためのアクセス許可がありません。 詳細については、「Microsoft Entra 組み込みロール」を参照してください。

  3. ここで、必要なロールをマネージド ID に割り当てます。 [ロール] タブで、現在のリソースへの必要なアクセス権を自分の ID に付与するロールを割り当てます。

    この例では、ストレージ BLOB データ共同作成者という名前のロールを割り当てます。これには、Azure Storage コンテナー内の BLOB への書き込みアクセスが含まれます。 特定のストレージ コンテナー ロールの詳細については、「Azure Storage コンテナー内の BLOB にアクセスできるロール」を参照してください

  4. 次に、ロールを割り当てるマネージド ID を選択します。 [アクセスの割り当て先] で、[マネージド ID]>[メンバーを追加する] を選択します。

  5. マネージド ID の種類に基づいて、次の値を選択または指定します。

    Azure サービス インスタンス サブスクリプション メンバー
    システム割り当て ロジック アプリ <Azure サブスクリプション名> <your-logic-app-name>
    ユーザー割り当て 該当なし <Azure サブスクリプション名> <your-user-assigned-identity-name>

    ロールの割り当ての詳細については、「Azure portal を使用したロールの割り当て」を参照してください

  6. 完了したら、その ID を使用して、マネージド ID をサポートするトリガーとアクションのアクセスを認証できます

このタスクの一般的な情報については、「Azure RBAC を使用して別のリソースにマネージド ID アクセスを割り当てる」を参照してください

Azure portal でアクセス ポリシーを作成する

認証にマネージド ID を使用するには、Azure キー コンテナーなどの一部の Azure リソースで、その ID のターゲット リソースに対する適切なアクセス許可を持つアクセス ポリシーを作成する必要があります。 Azure ストレージ アカウントなどの他の Azure リソースでは、ターゲット リソースに対する適切なアクセス許可を持つロールに、その ID を割り当 てる必要があります。

  1. Azure portal で、ID を使用するターゲット リソースを開きます。 この例では、ターゲット リソースとして Azure キー コンテナーを使用します。

  2. リソースのメニューで、[アクセス ポリシー]>[作成] を選択し[アクセス ポリシーの作成] ペインを開きます。

    Note

    リソースに [アクセス ポリシー] オプションがない場合、代わりに、ロールの割り当てを割り当ててください

    Screenshot shows Azure portal and key vault example with open pane named Access policies.

  3. [アクセス許可] タブで、ID がターゲット リソースにアクセスするために必要なアクセス許可を選択します。

    たとえば、マネージド Azure Key Vault コネクタの シークレットを一覧表示する 操作でIDを使用するためには、ID は [一覧表示] のアクセス許可が必要です。 そのため、[シークレットのアクセス許可] 列で [一覧表示] を選択します。

    Screenshot shows Permissions tab with selected List permissions.

  4. 準備ができたら、 [次へ] を選択します。 [プリンシパル] タブで、この例のユーザー割り当て ID であるマネージド ID を見つけて選択します。

  5. 省略可能な [アプリケーション] ステップをスキップし、[次へ] を選択して、アクセス ポリシーの作成を完了します。

次のセクションでは、マネージド ID を使用してトリガーまたはアクションへのアクセスを認証する方法について説明します。 例では、RBAC を使用してマネージド ID へのアクセスを設定し、例として Azure Key Vault を使用しない前のセクションの手順を引き続き使用します。 ただし、認証にマネージド ID を使用する一般的な手順は同じです。

マネージド ID を利用してアクセスを認証する

ロジック アプリのリソースに対してマネージド ID を有効にし、その ID にターゲット リソースまたはエンティティへのアクセス権を付与したら、その ID をマネージド ID がサポートされているトリガーとアクションで使用できます。

重要

システム割り当て ID を使用する Azure 関数がある場合は、先に Azure Functions の認証を有効にします。

次の手順では、Azure portal を通じて、トリガーまたはアクションでマネージド ID を使用する方法を示します。 トリガーまたはアクションの基になる JSON 定義でマネージド ID を指定する方法については、「マネージド ID 認証」をご覧ください。

  1. Azure portal で、ロジック アプリ リソースを開きます。

  2. まだ行っていない場合は、マネージド ID がサポートされているトリガーまたはアクションを追加します。

    Note

    すべてのコネクタ操作で認証の種類を追加できるわけではありません。 詳細については、「認証がサポートされているトリガーおよびアクションの認証の種類」を参照してください。

  3. 追加したトリガーまたはアクションで、次の手順に従います。

    • マネージド ID 認証をサポートする組み込みのコネクタ操作

      1. [新しいパラメーターの追加] の一覧で、"認証" プロパティがまだ表示されていない場合はこのプロパティを追加します。

        Screenshot shows Consumption workflow with built-in action and opened list named Add new parameter, with selected option for Authentication.

      2. [認証タイプ] 一覧から、 [マネージド ID] を選びます。

        Screenshot shows Consumption workflow with built-in action and opened list named Authentication type, with selected option for Managed identity.

      詳細については、「 例: マネージド ID を使用して組み込みのトリガーまたはアクションを認証する」を参照してください。

    • マネージド ID 認証をサポートするマネージド コネクタの操作

      1. テナントの選択ページで、[マネージド ID を使用して接続する] を選択します。例:

        Screenshot shows Consumption workflow with Azure Resource Manager action and selected option for Connect with managed identity.

      2. 次のページで、 [接続名] に、接続に使用する名前を入力します。

      3. 認証タイプには、マネージド コネクタに基づいて次のいずれかのオプションを選びます。

        • [Single-authentication](単一認証) : これらのコネクタは、認証の種類を 1 つだけサポートします。 [マネージド ID] の一覧から、現在有効なマネージド ID を選びます (まだ選択されていない場合)。次に、 [作成] を選びます。次に例を示します。

          Screenshot shows Consumption workflow, connection name box, and selected option for system-assigned managed identity.

        • 複数認証: これらのコネクタには複数の認証の種類が表示されますが、選択できるのは 1 種類のみです。 [認証タイプ] 一覧から、[Logic Apps Managed Identity]\(Logic Apps マネージド ID\)>[作成] を選びます。次に例を示します。

          Screenshot shows Consumption workflow, connection name box, and selected option for Logic Apps Managed Identity.

        詳細については、「 例: マネージド ID を使用してマネージド コネクタのトリガーまたはアクションを認証する」を参照してください。

例:マネージド ID を使用して組み込みのトリガーまたはアクションを認証する

組み込みの HTTP トリガーまたはアクションでは、ロジック アプリのリソースに対して有効にしたシステム割り当て ID を使用できます。 一般に、HTTP トリガーまたはアクションでは、次のプロパティを使用して、アクセスするリソースまたはエンティティを指定します。

プロパティ Required 説明
方法 はい 実行する操作によって使用される HTTP メソッド
URI はい ターゲットの Azure リソースまたはエンティティにアクセスするためのエンドポイント URL。 URI 構文には、通常、Azure リソースまたはサービスのリソース ID が含まれています。
ヘッダー いいえ コンテンツ タイプなど、送信要求に含める必要がある (または含めたい) ヘッダーの値
クエリ いいえ 要求に含める必要がある任意のクエリ パラメーター。 たとえば、特定の操作または実行する操作の API バージョンのクエリ パラメーターなどです。
認証 はい ターゲット リソースまたはエンティティへのアクセスの認証に使用する認証の種類

具体的な例として、以前に ID 用のアクセスを設定した Azure Storage アカウントの BLOB に対して Snapshot Blob 操作を実行するとします。 しかし、Azure Blob Storage コネクタでは現在、この操作が提供されていません。 代わりに、HTTP アクションまたは別の BLOB サービス REST API 操作を使用して、この操作を実行できます。

重要

Azure Blob コネクタとマネージド ID を使ってファイアウォールの内側にある Azure Storage アカウントにアクセスするには、信頼された Microsoft サービスによるアクセスを許可する例外を使ってストレージ アカウントを設定する必要もあります。

Snapshot Blob 操作を実行するには、HTTP アクションで次のプロパティを指定します。

プロパティ 必須 値の例 説明
方法 はい PUT Snapshot Blob 操作で使用する HTTP メソッド
URI はい https://<storage-account-name>/<folder-name>/{name} この構文を使用する Azure Global (パブリック) 環境内の Azure Blob Storage ファイルのリソース ID
ヘッダー Azure Storage の場合 x-ms-blob-type = BlockBlob

x-ms-version = 2019-02-02

x-ms-date = @{formatDateTime(utcNow(),'r')}

Azure Storage の操作には、x-ms-blob-typex-ms-version、および x-ms-date ヘッダー値が必要です。

重要: Azure Storage の発信 HTTP トリガーおよびアクションの要求では、ヘッダーに x-ms-version プロパティと実行する操作の API バージョンが必要です。 x-ms-date は現在の日付である必要があります。 それ以外の場合、ワークフローは 403 FORBIDDEN エラーで失敗します。 現在の日付を必要な形式で取得するには、例の値で式を使用します。

詳しくは、次のドキュメントをご覧ください。

- 要求ヘッダー - Snapshot Blob
- Azure Storage サービスのバージョン管理

クエリ スナップショット BLOB 操作の場合のみ comp = snapshot 操作のクエリ パラメーターの名前と値。

次の例では、BLOB のスナップショット操作に使用する、前述のすべてのプロパティ値を使用したサンプル HTTP アクションを示します。

Screenshot shows Azure portal, Consumption workflow, and HTTP action set up to access resources.

  1. HTTP アクションを追加した後、HTTP アクションに Authentication プロパティを追加します。 [新しいパラメーターの追加] 一覧で [認証] を選択します。

    Screenshot shows Consumption workflow with HTTP action and opened Add new parameter list with selected property named Authentication.

    Note

    すべてのトリガーとアクションで認証の種類を追加できるわけではありません。 詳細については、「認証がサポートされているトリガーおよびアクションの認証の種類」を参照してください。

  2. [認証タイプ] 一覧から、 [マネージド ID] を選びます。

    Screenshot shows Consumption workflow, HTTP action, and Authentication property with selected option for Managed identity.

  3. マネージド ID の一覧から、シナリオに基づいて使用可能なオプションを選択します。

    • システム割り当て ID を設定した場合は、 [システム割り当てマネージド ID] を選びます (まだ選択されていない場合)。

      Screenshot shows Consumption workflow, HTTP action, and Managed identity property with selected option for System-assigned managed identity.

    • ユーザー割り当て ID を設定した場合は、その ID を選択します (まだ選択されていない場合)。

      Screenshot shows Consumption workflow, HTTP action, and Managed identity property with selected user-assigned identity.

    この例では、 [システム割り当てマネージド ID] を使用して先に進みます。

  4. 一部のトリガーとアクションでは、ターゲット リソース ID を設定するために [対象ユーザー] プロパティも表示されます。 [対象ユーザー] プロパティはターゲット リソースまたはサービスのリソース ID に設定します。 そうしないと、既定では、[対象ユーザー] プロパティに Azure Resource Manager のリソース ID である https://management.azure.com/ リソース ID が使用されます。

    たとえば、グローバル Azure クラウド内の Key Vault リソースへのアクセスを認証するには、Audience プロパティを、"正確に" このリソース ID https://vault.azure.net のように設定する必要があります。 この特定のリソース ID には、末尾のスラッシュが含まれて "いません"。 実際、末尾にスラッシュを含めると、400 Bad Request エラーまたは 401 Unauthorized エラーが発生する可能性があります。

    重要

    ターゲット リソース ID は、必要な末尾のスラッシュも含めて、Microsoft Entra ID で予想される値と正確に一致するようにします。 たとえば、すべての Azure Blob Storage アカウントのリソース ID には、末尾のスラッシュが必要です。 ただし、特定のストレージ アカウントのリソース ID については、末尾のスラッシュは必要ありません。 Microsoft Entra ID をサポートしている Azure サービスのリソース ID に関する記事をご覧ください。

    この例では、[対象ユーザー] プロパティを https://storage.azure.com/ に設定して、認証に使用されるアクセス トークンをすべてのストレージ アカウントに対して有効にしています。 ただし、特定のストレージ アカウントに対してルート サービス URL (https://<your-storage-account>.blob.core.windows.net) を指定することもできます。

    Screenshot shows Consumption workflow, HTTP action, and Audience

    Azure Storage の Microsoft Entra ID を使用したアクセスの承認の詳細については、次のドキュメントを参照してください。

  5. 必要な方法でワークフローの構築を続行します。

例:マネージド ID を使用してマネージド コネクタのトリガーまたはアクションを認証する

Azure Resource Manager のマネージド コネクタには、ロジック アプリのリソースに対して有効にしたマネージド ID を使用できるリソースの読み取りという名前のアクションがあります。 この例では、システム割り当てマネージド ID を使用する方法を示します。

  1. ワークフローにアクションを追加し、Microsoft Entra のテナントを選択したら、[マネージド ID を使用して接続する] を選択します。

    Screenshot shows Consumption workflow, Azure Resource Manager action, and selected option for Connect with managed identity.

  2. 接続名のページで、接続の名前を指定し、使用するマネージド ID を選びます。

    Azure Resource Manager アクションは単一認証アクションであるため、接続情報ボックスには、ロジック アプリ リソースで現在有効になっているマネージド ID を自動的に選択するマネージド ID の一覧が表示されます。 システム割り当てマネージド ID を有効にした場合、 [マネージド ID] の一覧では [システム割り当てマネージド ID] が選ばれます。 代わりにユーザー割り当てマネージド ID を有効にした場合は、その ID が代わりに選ばれます。

    Azure Blob Storage などの複数認証トリガーまたはアクションを使用している場合、接続情報ボックスには、他の認証の種類の間で Logic Apps マネージド ID オプションを含む認証の種類の一覧が表示されます。

    この例では、 [システム割り当てマネージド ID] だけを選ぶことができます。

    Screenshot shows Consumption workflow and Azure Resource Manager action with connection name entered and selected option for System-assigned managed identity.

    Note

    接続を作成しようとしたとき、接続を変更したとき、またはマネージド ID がまだ存在する状態で削除されたときにマネージド ID が有効になっていない場合、ID を有効にし、ターゲット リソースへのアクセスを許可する必要があるというエラーが表示されます。

  3. 準備ができたら、 [作成] を選択します。

  4. デザイナーは、接続を正常に作成すると、マネージド ID 認証を使用して動的な値、コンテンツ、またはスキーマをフェッチすることができます。

  5. 必要な方法でワークフローの構築を続行します。

マネージド ID を使用するロジック アプリのリソース定義と接続

マネージド ID を有効にして、使用する接続は、マネージ ID を使用する場合のみ動作する特殊な接続の種類です。 実行時には、ロジック アプリのリソースで有効になっているマネージド ID がその接続で使用されます。 実行時には、ロジック アプリのワークフロー内のすべてのマネージド コネクタのトリガーおよびアクションでマネージド ID が使用されるように設定されているかどうかと、必要なすべてのアクセス許可が、トリガーとアクションで指定されたターゲット リソースにアクセスするためにマネージド ID を使用するように設定されているかが確認されます。 成功した場合、Azure Logic Apps でマネージド ID に関連付けられている Microsoft Entra トークンが取得され、その ID を使用してターゲット リソースへのアクセスが認証され、トリガーとアクション内の構成済み操作が実行されます。

従量課金ロジック アプリ リソースでは、接続構成はロジック アプリ リソース定義の parameters オブジェクトに保存されます。これには、ユーザー割り当て ID が有効になっている場合、接続のリソース ID へのポインターと ID のリソース ID へのポインターを含むオブジェクトが含 $connections まれます。

この例は、ロジック アプリでシステム割り当てマネージド ID を有効にした場合の構成内容を示しています。

"parameters": {
   "$connections": {
      "value": {
         "<action-name>": {
            "connectionId": "/subscriptions/{Azure-subscription-ID}/resourceGroups/{resource-group-name}/providers/Microsoft.Web/connections/{connection-name}",
            "connectionName": "{connection-name}",
            "connectionProperties": {
               "authentication": {
                  "type": "ManagedServiceIdentity"
               }
            },
            "id": "/subscriptions/{Azure-subscription-ID}/providers/Microsoft.Web/locations/{Azure-region}/managedApis/{managed-connector-type}"
         }
      }
   }
}

この例は、ロジック アプリでユーザー割り当てマネージド ID を有効にした場合の構成内容を示しています。

"parameters": {
   "$connections": {
      "value": {
         "<action-name>": {
            "connectionId": "/subscriptions/{Azure-subscription-ID}/resourceGroups/{resource-group-name}/providers/Microsoft.Web/connections/{connection-name}",
            "connectionName": "{connection-name}",
            "connectionProperties": {
               "authentication": {
                  "type": "ManagedServiceIdentity",
                  "identity": "/subscriptions/{Azure-subscription-ID}/resourceGroups/{resourceGroupName}/providers/microsoft.managedidentity/userassignedidentities/{managed-identity-name}"
               }
            },
            "id": "/subscriptions/{Azure-subscription-ID}/providers/Microsoft.Web/locations/{Azure-region}/managedApis/{managed-connector-type}"
         }
      }
   }
}

API 接続とマネージド ID の ARM テンプレート

ARM テンプレートを使用してデプロイを自動化し、ワークフローにマネージド ID を使用する Office 365 Outlook、Azure Key Vault などのマネージド コネクタによって作成される API 接続が含まれる場合、追加のステップを実行します。

ARM テンプレートでは、基になるコネクタのリソース定義は、お使いのロジック アプリが従量課金か Standard か、および、コネクタに表示されるオプションが単一認証かまたは複数認証かによって異なります。

次の例は、従量課金ロジック アプリ リソースに適用され、基になるコネクタ リソース定義が、Azure Automation などの単一認証コネクタと、Azure Blob Storage などの複数認証コネクタ間でどのように異なるかを示しています。

単一認証

この例は、マネージド ID を使用する従量課金ロジック アプリで Azure Automation アクションの基になる接続リソース定義を示しています。この定義には、次の属性が含まれます。

  • 従量課金ロジック アプリの場合、kind プロパティは V1 に設定されます。
  • parameterValueType プロパティが Alternative に設定されている。
{
    "type": "Microsoft.Web/connections",
    "apiVersion": "[providers('Microsoft.Web','connections').apiVersions[0]]",
    "name": "[variables('connections_azureautomation_name')]",
    "location": "[parameters('location')]",
    "kind": "V1",
    "properties": {
        "alternativeParameterValues": {},
        "api": {
            "id": "[subscriptionResourceId('Microsoft.Web/locations/managedApis', parameters('location'), 'azureautomation')]"
        },
        "authenticatedUser": {},
        "connectionState": "Enabled",
        "customParameterValues": {},
        "displayName": "[variables('connections_azureautomation_name')]",
        "parameterValueSet": {},
        "parameterValueType": "Alternative"
    }
},

複数認証

この例は、マネージド ID を使用する従量課金ロジック アプリで Azure Blob Storage アクションの基になる接続リソース定義を示しています。この定義には、次の属性が含まれます。

  • 従量課金ロジック アプリの場合、kind プロパティは V1 に設定されます。
  • parameterValueSet オブジェクトには、managedIdentityAuth に設定された name プロパティと、空のオブジェクトに設定された values プロパティが含まれます。
{
    "type": "Microsoft.Web/connections",
    "apiVersion": "[providers('Microsoft.Web','connections').apiVersions[0]]",
    "name": "[variables('connections_azureblob_name')]",
    "location": "[parameters('location')]",
    "kind": "V1",
    "properties": {
        "alternativeParameterValues":{},
        "api": {
            "id": "[subscriptionResourceId('Microsoft.Web/locations/managedApis', parameters('location'), 'azureblob')]"
        },
        "authenticatedUser": {},
        "connectionState": "Enabled",
        "customParameterValues": {},
        "displayName": "[variables('connections_azureblob_name')]",
        "parameterValueSet":{
            "name": "managedIdentityAuth",
            "values": {}
        },
        "parameterValueType": "Alternative"
    }
}

API 接続の認証に対する高度な制御を設定する

ワークフローで、Office 365 Outlook、Azure Key Vault などのマネージド コネクタによって作成された API 接続を使用する場合、Azure Logic Apps サービスは、次の 2 つの接続を使用して、メール アカウント、キー コンテナーなどのターゲット リソースと通信します。

Conceptual diagram showing first connection with authentication between logic app and token store plus second connection between token store and target resource.

  • 接続 1 は、内部トークン ストアの認証を使用して設定されます。

  • 接続 2 は、ターゲット リソースの認証を使用して設定されます。

Consumption ロジック アプリ リソースでは、接続 1 は構成オプションなしで抽象化されます。 Standard ロジック アプリのリソースの種類では、ロジック アプリを詳細に制御できます。 既定では、接続 1 は、システム割り当て ID を使用するために自動的に設定されます。

ただし、シナリオで API 接続の認証を細かく制御する必要がある場合は、必要に応じて、接続 1 の認証を既定のシステム割り当て ID から、ロジック アプリに追加したユーザー割り当て ID に変更できます。 この認証は各 API 接続に適用されます。そのため、システム割り当て ID とユーザー割り当て ID を、異なる接続で同じターゲット リソースへ混在させることができます。

各 API 接続に関する情報を格納する Standard ロジック アプリ connections.json ファイルでは、次のように各接続定義に 2 つの authentication セクションがあります。

"keyvault": {
   "api": {
      "id": "/subscriptions/{Azure-subscription-ID}/providers/Microsoft.Web/locations/{region}/managedApis/keyvault"
   },
   "authentication": {
      "type": "ManagedServiceIdentity",
   },
   "connection": {
      "id": "/subscriptions/{Azure-subscription-ID}/resourceGroups/{resource-group-name}/providers/Microsoft.Web/connections/<connection-name>"
   },
   "connectionProperties": {
      "authentication": {
         "audience": "https://vault.azure.net",
         "type": "ManagedServiceIdentity"
      }
   },
   "connectionRuntimeUrl": "<connection-runtime-URL>"
}
  • 最初の authentication セクションは、接続番号 1 にマップされます。 このセクションには、内部トークン ストアとの通信に使用される認証を記述します。 以前は、このセクションは Azure にデプロイされ構成可能なオプションがないアプリに対して常に ManagedServiceIdentity に設定されていました。

  • 2 番めの authentication セクションは、接続番号 2 にマップされます。 このセクションには、その接続に対して選択した認証の種類に基づいて変動する、ターゲット リソースとの通信に使用される認証を記述します。

トークン ストアの認証を変更する理由

シナリオによっては、複数のロジック アプリ間で同じ API 接続を共有して使用しますが、各ロジック アプリのシステム割り当て ID をターゲット リソースのアクセス ポリシーに追加しない場合があります。

その他のシナリオでは、ロジック アプリにシステム割り当て ID を完全に設定したくない場合があります。そのため、認証をユーザー割り当て ID に変更し、システム割り当て ID を完全に無効にできます。

トークン ストアの認証を変更する

  1. Azure portal で、Standard ロジック アプリ リソースを開きます。

  2. リソース メニューで、[ワークフロー]の下の [接続] を選択します。

  3. [接続 ] ペインで [JSON ビュー] を選択します。

    Screenshot showing the Azure portal, Standard logic app resource,

  4. JSON エディターで、managedApiConnections セクションを探します。このセクションには、ロジック アプリ リソース内のすべてのワークフローにわたる API 接続が含まれています。

  5. ユーザー割り当てマネージド ID を追加する接続を見つけます。 たとえば、ワークフローに Azure Key Vault 接続があるとします。

    "keyvault": {
       "api": {
          "id": "/subscriptions/{Azure-subscription-ID}/providers/Microsoft.Web/locations/{region}/managedApis/keyvault"
       },
       "authentication": {
          "type": "ManagedServiceIdentity"
       },
       "connection": {
          "id": "/subscriptions/{Azure-subscription-ID}/resourceGroups/{resource-group-name}/providers/Microsoft.Web/connections/<connection-name>"
       },
       "connectionProperties": {
          "authentication": {
             "audience": "https://vault.azure.net",
             "type": "ManagedServiceIdentity"
          }
       },
       "connectionRuntimeUrl": "<connection-runtime-URL>"
    }
    
  6. 接続定義で、次の手順を実行します。

    1. 最初の authentication セクションを見つけます。 authentication セクションにまだ identity プロパティが存在しない場合、ロジック アプリはシステム割り当て ID を暗黙的に使用します。

    2. この手順の例を使用して、identity プロパティを追加します。

    3. プロパティ値を、ユーザー割り当て ID のリソース ID に設定します。

    "keyvault": {
       "api": {
          "id": "/subscriptions/{Azure-subscription-ID}/providers/Microsoft.Web/locations/{region}/managedApis/keyvault"
       },
       "authentication": {
          "type": "ManagedServiceIdentity",
          // Add "identity" property here
          "identity": "/subscriptions/{Azure-subscription-ID}/resourcegroups/{resource-group-name}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identity-resource-ID}" 
       },
       "connection": {
          "id": "/subscriptions/{Azure-subscription-ID}/resourceGroups/{resource-group-name}/providers/Microsoft.Web/connections/<connection-name>"
       },
       "connectionProperties": {
          "authentication": {
             "audience": "https://vault.azure.net",
             "type": "ManagedServiceIdentity"
          }
       },
       "connectionRuntimeUrl": "<connection-runtime-URL>"
    }
    
  7. Azure portal でターゲット リソースに移動し、ターゲット リソースのニーズに基づいてユーザー割り当てマネージド ID へのアクセスを許可します

    たとえば、Azure Key Vault の場合、キー コンテナーのアクセス ポリシーに ID を追加します。 Azure Blob Storage の場合、ID に必要なロールをストレージ アカウントに割り当てます。

マネージド ID を無効にする

認証にマネージド ID の使用することを止めるには、まず、ターゲット リソースに対する ID のアクセス権を削除します。 次に、ロジック アプリのリソースで、システム割り当て ID をオフにするか、ユーザー割り当て ID を削除します。

ロジック アプリのリソースでマネージド ID を無効にすると、その ID がアクセス権を持っていた Azure リソースへのアクセスを要求する機能がその ID から削除されます。

Note

システム割り当て ID を無効にした場合、そのロジック アプリのワークフローが使用していたすべての接続は、直ちにその ID を再び有効にした場合でも、実行時に機能しなくなります。 このような動作が生じるのは、ID を無効にするとそのオブジェクト ID が削除されるためです。 ID を有効にするたびに、異なる一意のオブジェクト ID を持つ ID が Azure によって生成されます。 この問題を解決するには、現在のシステム割り当て ID に対する現在のオブジェクト ID を使用するように、接続を再作成する必要があります。

システム割り当て ID を無効にするのは、できるだけ避けてください。 Azure リソースへの ID のアクセス権を削除する場合は、ターゲット リソースから ID のロールの割り当てを削除します。 ロジック アプリのリソースを削除すると、マネージド ID が Microsoft Entra ID から自動的に削除されます。

このセクションの手順では、Azure portalAzure Resource Manager テンプレート (ARM テンプレート) を使用する方法について説明します。 Azure PowerShell、Azure CLI、および Azure REST API については、次のドキュメントを参照してください。

ツール ドキュメント
Azure PowerShell 1. ロールの割り当てを削除する
2. ユーザー割り当て ID を削除する
Azure CLI 1. ロールの割り当てを削除する
2. ユーザー割り当て ID を削除する
Azure REST API 1. ロールの割り当てを削除する
2. ユーザー割り当て ID を削除する

Azure portal でマネージド ID を無効にする

マネージド ID のアクセス権を削除するには、ターゲット リソースから ID のロールの割り当てを削除してから、マネージド ID を無効にします。

ロールの割り当てを削除する

次の手順では、マネージド ID からターゲット リソースへのアクセス権を削除します。

  1. Azure portal で、マネージド ID のアクセス権を削除するターゲット Azure リソースに移動します。

  2. ターゲット リソースのメニューから [アクセス制御 (IAM)] を選択します。 ツール バーで、 [ロールの割り当て] を選択します。

  3. ロールの一覧で、削除するマネージド ID を選択します。 ツール バーの [削除] を選択します。

    ヒント

    [削除] オプションが無効になっている場合は、ご自分にアクセス許可がない可能性があります。 リソースのロールを管理できるアクセス許可の詳細については、「Microsoft Entra ID の管理istrator ロールのアクセス許可」を参照してください

ロジック アプリのリソースのマネージド ID を無効にする

  1. Azure portal で、ロジック アプリ リソースを開きます。

  2. ロジック アプリのナビゲーション メニューの [設定] で、 [ID] を選んでから、お使いの ID の手順に従います。

    • [システム割り当て済み]>[オン]>[保存] を選択します。 確認を求めるメッセージが表示されたら、 [はい] を選択します。

    • [ユーザー割り当て済み] とマネージド ID を選択し、 [削除] を選択します。 確認を求めるメッセージが表示されたら、 [はい] を選択します。

ARM テンプレートでマネージド ID を無効にする

ARM テンプレートを使用してロジック アプリのマネージド ID を作成した場合は、identity オブジェクトの type 子プロパティを None に設定します。

"identity": {
   "type": "None"
}

次のステップ