次の方法で共有


システム割り当てのマネージド ID を持つ Service Fabric アプリケーションをデプロイする

Note

Azure コマンドレットを使用して最初にデプロイされた既存のアプリの ID の有効化はサポートされていません。

Azure Service Fabric アプリケーションのマネージド ID 機能にアクセスするには、まずクラスターでマネージド ID トークン サービスを有効にする必要があります。 このサービスは、マネージド ID を使用して Service Fabric アプリケーションの認証を実行し、アクセス トークンを代理で取得します。 サービスが有効になると、Service Fabric Explorer の左側のウィンドウの [システム] セクションに表示され、他のシステム サービスの横で fabric:/System/ManagedIdentityTokenService という名前で実行されます。

Note

マネージ ID を持つ Service Fabric アプリケーションのデプロイは、API バージョン "2019-06-01-preview" 以降でサポートされています。 アプリケーションの種類、アプリケーションの種類のバージョン、サービス リソースに対しても同じ API バージョンを使用できます。 サポートされている Service Fabric ランタイムの最小バージョンは 6.5 CU2 です。 さらに、ビルド/パッケージ環境には CU2 以上の Service Fabric .NET SDK も含まれている必要があります

システム割り当てマネージド ID

アプリケーション テンプレート

システム割り当てのマネージド ID を持つアプリケーションを有効にするには、以下の例に示すように、systemAssigned の種類で、identity プロパティをアプリケーション リソースに追加します。

    {
      "apiVersion": "2019-06-01-preview",
      "type": "Microsoft.ServiceFabric/clusters/applications",
      "name": "[concat(parameters('clusterName'), '/', parameters('applicationName'))]",
      "location": "[resourceGroup().location]",
      "dependsOn": [
        "[concat('Microsoft.ServiceFabric/clusters/', parameters('clusterName'), '/applicationTypes/', parameters('applicationTypeName'), '/versions/', parameters('applicationTypeVersion'))]"
      ],
      "identity": {
        "type" : "systemAssigned"
      },
      "properties": {
        "typeName": "[parameters('applicationTypeName')]",
        "typeVersion": "[parameters('applicationTypeVersion')]",
        "parameters": {
        }
      }
    }

このプロパティは、Azure Resource Manager、および Managed Identity プロバイダーと Service Fabric Resource プロバイダーのそれぞれに対して、このリソースが暗黙的な (system assigned) マネージド ID を持つことを宣言します。

アプリケーションとサービス パッケージ

  1. 以下に示すように、アプリケーション マニフェストを更新して、1 つのエントリを含む ManagedIdentity 要素を Principals セクションに追加します。

    ApplicationManifest.xml

    <Principals>
      <ManagedIdentities>
        <ManagedIdentity Name="SystemAssigned" />
      </ManagedIdentities>
    </Principals>
    

    これにより、アプリケーションを構成するサービスへの今後の割り当てについては、リソースとしてアプリケーションに割り当てられた ID がフレンドリ名にマップされます。

  2. 以下に示すように、マネージド ID を割り当てるサービスに対応する ServiceManifestImport セクションに IdentityBindingPolicy 要素を追加します。

    ApplicationManifest.xml

      <ServiceManifestImport>
        <Policies>
          <IdentityBindingPolicy ServiceIdentityRef="WebAdmin" ApplicationIdentityRef="SystemAssigned" />
        </Policies>
      </ServiceManifestImport>
    

    この要素は、アプリケーションの ID をサービスに割り当てます。この割り当てがないと、サービスはアプリケーションの ID にアクセスできなくなります。 上記のスニペットで、SystemAssigned ID (予約済みキーワード) は、フレンドリ名 WebAdmin でサービスの定義にマップされています。

  3. サービス マニフェストを更新して、アプリケーション マニフェストの IdentityBindingPolicy 定義の ServiceIdentityRef 設定の値に一致する名前を使用して、ManagedIdentity 要素を Resources セクション内に追加します。

    ServiceManifest.xml

      <Resources>
        ...
        <ManagedIdentities DefaultIdentity="WebAdmin">
          <ManagedIdentity Name="WebAdmin" />
        </ManagedIdentities>
      </Resources>
    

    これは、前述の ID からサービスへのマッピングと同等ですが、サービス定義の観点からのものになります。 ID は、アプリケーション マニフェストで宣言されているように、ここではフレンドリ名 (WebAdmin) で参照されます。

次の手順