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 つのエントリを含む ManagedIdentity 要素を Principals セクションに追加します。
ApplicationManifest.xml
<Principals> <ManagedIdentities> <ManagedIdentity Name="SystemAssigned" /> </ManagedIdentities> </Principals>
これにより、アプリケーションを構成するサービスへの今後の割り当てについては、リソースとしてアプリケーションに割り当てられた ID がフレンドリ名にマップされます。
以下に示すように、マネージド ID を割り当てるサービスに対応する ServiceManifestImport セクションに IdentityBindingPolicy 要素を追加します。
ApplicationManifest.xml
<ServiceManifestImport> <Policies> <IdentityBindingPolicy ServiceIdentityRef="WebAdmin" ApplicationIdentityRef="SystemAssigned" /> </Policies> </ServiceManifestImport>
この要素は、アプリケーションの ID をサービスに割り当てます。この割り当てがないと、サービスはアプリケーションの ID にアクセスできなくなります。 上記のスニペットで、
SystemAssigned
ID (予約済みキーワード) は、フレンドリ名WebAdmin
でサービスの定義にマップされています。サービス マニフェストを更新して、アプリケーション マニフェストの
IdentityBindingPolicy
定義のServiceIdentityRef
設定の値に一致する名前を使用して、ManagedIdentity 要素を Resources セクション内に追加します。ServiceManifest.xml
<Resources> ... <ManagedIdentities DefaultIdentity="WebAdmin"> <ManagedIdentity Name="WebAdmin" /> </ManagedIdentities> </Resources>
これは、前述の ID からサービスへのマッピングと同等ですが、サービス定義の観点からのものになります。 ID は、アプリケーション マニフェストで宣言されているように、ここではフレンドリ名 (
WebAdmin
) で参照されます。
次の手順
- Azure Service Fabric でのマネージド ID のサポートを確認します
- マネージド ID サポートを備えた新しい Azure Service Fabric クラスターをデプロイする
- 既存の Azure Service Fabric クラスターでマネージド ID を有効にする
- ソース コードから Service Fabric アプリケーションのマネージド ID を活用する
- ユーザー割り当てのマネージド ID を持つ Azure Service Fabric アプリケーションをデプロイする
- Azure Service Fabric アプリケーションに他の Azure リソースへのアクセス権を付与する