Azure Logic Apps でマネージド ID を使用して認証し、リソースにアクセスするAuthenticate and access resources with managed identities in Azure Logic Apps

サインインすることなく他の Azure Active Directory (Azure AD) テナント内のリソースへのアクセスと ID の認証を行うために、ロジック アプリは、資格情報やシークレットではなく マネージド ID (以前はマネージド サービス ID (MSI) と呼ばれていました) を使用できます。To access resources in other Azure Active Directory (Azure AD) tenants and authenticate your identity without signing in, your logic app can use a managed identity (formerly known as Managed Service Identity or MSI), rather than credentials or secrets. この ID は、ユーザーの代わりに Azure で管理されます。ユーザーがシークレットを提供したりローテーションしたりする必要がないため、資格情報の保護に役立ちます。Azure manages this identity for you and helps secure your credentials because you don't have to provide or rotate secrets. この記事では、ロジック アプリのためにシステム割り当てのマネージド ID を設定して使用する方法を示します。This article shows how you can set up and use a system-assigned managed identity for your logic app. マネージド ID の詳細については、「Azure リソースのマネージド ID とは」を参照してください。For more information about managed identities, see What is managed identities for Azure resources?

注意

ロジック アプリでは、マネージド ID をサポートするコネクタでのみマネージド ID を使用できます。Your logic app can use managed identities only with connectors that support managed identities. 現時点では、HTTP コネクタのみがマネージド ID をサポートしています。Currently, only the HTTP connector supports managed identities.

現在、システム割り当てのマネージド ID は、各 Azure サブスクリプションで最大 10 個までのロジック アプリ ワークフローに割り当てることができます。You can currently have up to 10 logic app workflows with system-assigned managed identities in each Azure subscription.

前提条件Prerequisites

マネージド ID の有効化Enable managed identity

システム割り当てマネージド ID の場合、その ID を手動で作成する必要はありません。For system-assigned managed identities, you don't have to manually create that identity. ロジック アプリのシステム割り当て ID を設定するには、次の方法を使用できます。To set up a system-assigned managed identity for your logic app, you can use these ways:

Azure ポータルAzure portal

Azure portal から、ロジック アプリ用のシステム割り当てのマネージド ID を有効にするには、目的のロジック アプリの ID 設定で、 [システム割り当て済み] 設定をオンにします。To enable a system-assigned managed identity for your logic app through the Azure portal, turn on the System assigned setting in your logic app's identity settings.

  1. Azure Portal のロジック アプリ デザイナーでロジック アプリを開きます。In the Azure portal, open your logic app in Logic App Designer.

  2. ロジック アプリのメニューの [設定] で、 [ID] を選択します。On the logic app menu, under Settings, select Identity.

  3. [システム割り当て済み] > [状態] で、 [オン] を選択します。Under System assigned > Status, choose On. 次に、 [保存] > [はい] を選択します。Then, choose Save > Yes.

    マネージド ID 設定をオンにする

    これでロジック アプリに、Azure Active Directory に登録された、システム割り当てのマネージド ID が割り当てられました。Your logic app now has a system-assigned managed identity registered in Azure Active Directory:

    オブジェクト ID の GUID

    プロパティProperty Value 説明Description
    オブジェクト IDObject ID <identity-resource-ID><identity-resource-ID> Azure AD テナント内のロジック アプリのシステム割り当てのマネージド ID を表すグローバル一意識別子 (GUID)A Globally Unique Identifier (GUID) that represents the system-assigned managed identity for your logic app in an Azure AD tenant

Azure Resource Manager テンプレートAzure Resource Manager template

ロジック アプリなどの Azure リソースの作成とデプロイを自動化するときには、Azure Resource Manager テンプレートを利用できます。When you want to automate creating and deploying Azure resources such as logic apps, you can use Azure Resource Manager templates. テンプレートを使ってロジック アプリ用のシステム割り当てマネージド ID を作成するには、デプロイ テンプレートで、ロジック アプリのワークフロー定義に "identity" 要素と "type" プロパティを追加します。To create a system-assigned managed identity for your logic app through a template, add the "identity" element and "type" property to your logic app workflow definition in your deployment template:

"identity": {
   "type": "SystemAssigned"
}

例:For example:

{
   "apiVersion": "2016-06-01", 
   "type": "Microsoft.logic/workflows", 
   "name": "[variables('logicappName')]", 
   "location": "[resourceGroup().location]", 
   "identity": { 
      "type": "SystemAssigned" 
   }, 
   "properties": { 
      "definition": { 
         "$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#", 
         "actions": {}, 
         "parameters": {}, 
         "triggers": {}, 
         "contentVersion": "1.0.0.0", 
         "outputs": {} 
   }, 
   "parameters": {}, 
   "dependsOn": [] 
}

Azure でロジック アプリを作成すると、そのロジック アプリのワークフロー定義には、これらの追加プロパティが含まれます。When Azure creates your logic app, that logic app's workflow definition includes these additional properties:

"identity": {
   "type": "SystemAssigned",
   "principalId": "<principal-ID>",
   "tenantId": "<Azure-AD-tenant-ID>"
}
プロパティProperty Value 説明Description
principalIdprincipalId <principal-ID><principal-ID> Azure AD テナント内のロジック アプリを表し、"オブジェクト ID" や objectID として表示されることもあるグローバル一意識別子 (GUID)A Globally Unique Identifier (GUID) that represents the logic app in the Azure AD tenant and sometimes appears as an "object ID" or objectID
tenantIdtenantId <Azure-AD-tenant-ID><Azure-AD-tenant-ID> ロジック アプリが現在メンバーとなっている Azure AD テナントを表すグローバル一意識別子 (GUID)。A Globally Unique Identifier (GUID) that represents the Azure AD tenant where the logic app is now a member. Azure AD テナント内では、サービス プリンシパルは、ロジック アプリ インスタンスと同じ名前を持ちます。Inside the Azure AD tenant, the service principal has the same name as the logic app instance.

マネージド ID を使用してリソースにアクセスするAccess resources with managed identity

ロジック アプリ用にシステム割り当てマネージド ID を作成すると、その ID に他の Azure リソースへのアクセスを与えることができます。After you create a system-assigned managed identity for your logic app, you can give that identity access to other Azure resources. その後は、他のサービス プリンシパルと同様に、その ID を認証に使用できます。You can then use that identity for authentication, just like any other service principal.

注意

アクセスを割り当てるシステム割り当てマネージド ID とリソースの両方が、同じ Azure サブスクリプションを持っている必要があります。Both the system-assigned managed identity and the resource where you want to assign access must have the same Azure subscription.

マネージド ID にアクセスを割り当てるAssign access to managed identity

ロジック アプリのシステム割り当てマネージド ID に別の Azure リソースへのアクセスを付与するには、以下の手順に従います。To give access to another Azure resource for your logic app's system-assigned managed identity, follow these steps:

  1. Azure portal で、マネージド ID にアクセスを割り当てる Azure リソースに移動します。In the Azure portal, go to the Azure resource where you want to assign access for your managed identity.

  2. リソースのメニューから [アクセス制御 (IAM)] を選択します。From the resource's menu, select Access control (IAM). ツール バーで、 [追加] > [ロールの割り当ての追加] の順に選択します。On the toolbar, choose Add > Add role assignment.

    ロールの割り当ての追加

  3. [ロールの割り当ての追加] で、その ID のロールを選択します。Under Add role assignment, select the Role you want for the identity.

  4. [アクセスの割り当て先] プロパティで、まだ選択されていなければ、 [Azure AD のユーザー、グループ、サービス プリンシパル] を選択します。In the Assign access to property, select Azure AD user, group, or service principal, if not already selected.

  5. [選択] ボックスで、ロジック アプリの名前の入力を、ロジック アプリの名前の最初の文字で始めます。In the Select box, starting with the first character in your logic app's name, enter your logic app's name. 目的のロジック アプリが表示されたら、そのロジック アプリを選択します。When your logic app appears, select the logic app.

    マネージド ID を使用するロジック アプリを選択する

  6. 完了したら、 [保存] を選択します。When you're done, choose Save.

ロジック アプリでマネージド ID を使用して認証するAuthenticate with managed identity in logic app

システム割り当てのマネージド ID を使用してロジック アプリを設定し、必要なリソースへのアクセスをその ID に割り当てたら、認証のためにその ID を使用できるようになっています。After you set up your logic app with a system-assigned managed identity and assigned access to the resource you want for that identity, you can now use that identity for authentication. たとえば、ロジック アプリでそのリソースに HTTP の要求や呼び出しを送信できるようにする HTTP アクションを使用できます。For example, you can use an HTTP action so your logic app can send an HTTP request or call to that resource.

  1. ロジック アプリで、HTTP アクションを追加します。In your logic app, add the HTTP action.

  2. 呼び出すリソースの要求メソッドURI の場所など、そのアクションに必要な詳細を提供します。Provide the necessary details for that action, such as the request Method and URI location for the resource you want to call.

    たとえば、Azure AD をサポートする次の Azure サービスのいずれかで Azure Active Directory (Azure AD) 認証を使用しているとします。For example, suppose you're using Azure Active Directory (Azure AD) authentication with one of these Azure services that support Azure AD. [URI] ボックスに、その Azure サービスのエンドポイント URL を入力します。In the URI box, enter the endpoint URL for that Azure service. つまり、Azure Resource Manager を使用している場合、 [URI] プロパティにこの値を入力します。So, if you're using Azure Resource Manager, enter this value in the URI property:

    https://management.azure.com/subscriptions/<Azure-subscription-ID>?api-version=2016-06-01

  3. HTTP アクションで、 [詳細オプションの表示] を選択します。In the HTTP action, choose Show advanced options.

  4. [認証] 一覧から、 [マネージド ID] を選択します。From the Authentication list, select Managed Identity. この認証を選択後、 [対象ユーザー] プロパティが既定のリソース ID 値で表示されます。After you select this authentication, the Audience property appears with the default resource ID value:

    [マネージド ID] を選択します

    重要

    [対象ユーザー] プロパティで、リソース ID 値は、必須の末尾のスラッシュも含めて Azure AD で予想される値に正確に一致している必要があります。In the Audience property, the resource ID value must exactly match what Azure AD expects, including any required trailing slashes. これらのリソース ID 値は、この Azure AD をサポートする Azure サービスについて説明する表で確認できます。You can find these resource ID values in this table describing Azure services that support Azure AD. たとえば、Azure Resoruce Manager のリソース ID を使用している場合、URI の末尾にスラッシュがあることを確認します。For example, if you're using the Azure Resoruce Manager resource ID, make sure the URI has a trailing slash.

  5. ご希望の方法でロジック アプリのビルドを続行します。Continue building the logic app the way you want.

マネージド ID の削除Remove managed identity

Azure portal、Azure Resource Manager デプロイ テンプレート、または Azure PowerShell から ID を設定した方法と同様の手順に従えば、ロジック アプリでシステム割り当てのマネージド ID を無効にできます。To disable a system-assigned managed identity on your logic app, you can follow the steps similar to how you set up the identity through the Azure portal, Azure Resource Manager deployment templates, or Azure PowerShell.

ロジック アプリを削除すると、Azure によってロジック アプリのシステム割り当て ID が Azure AD から自動的に削除されます。When you delete your logic app, Azure automatically removes your logic app's system-assigned identity from Azure AD.

Azure ポータルAzure portal

Azure portal から、ロジック アプリ用のシステム割り当てのマネージド ID を削除するには、目的のロジック アプリの ID 設定で、 [システム割り当て済み] 設定をオフにします。To remove a system-assigned managed identity for your logic app through the Azure portal, turn off the System assigned setting in your logic app's identity settings.

  1. Azure Portal のロジック アプリ デザイナーでロジック アプリを開きます。In the Azure portal, open your logic app in Logic App Designer.

  2. ロジック アプリのメニューの [設定] で、 [ID] を選択します。On the logic app menu, under Settings, select Identity.

  3. [システム割り当て済み] > [状態] で、 [オフ] を選択します。Under System assigned > Status, choose Off. 次に、 [保存] > [はい] を選択します。Then, choose Save > Yes.

    マネージド ID 設定をオフにする

デプロイ テンプレートDeployment template

Azure Resource Manager デプロイ テンプレートを使用してロジック アプリのシステム割り当てマネージド ID を作成した場合は、"identity" 要素の "type" プロパティを "None" に設定します。If you created the logic app's system-assigned managed identity with an Azure Resource Manager deployment template, set the "identity" element's "type" property to "None". このアクションにより、プリンシパル ID も Azure AD から削除されます。This action also deletes the principal ID from Azure AD.

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

サポートを受けるGet support