Sdílet prostřednictvím


Nasazení aplikace Service Fabric se spravovanou identitou User-Assigned

Pokud chcete nasadit aplikaci Service Fabric se spravovanou identitou, je potřeba ji nasadit prostřednictvím Azure Resource Manager, obvykle pomocí šablony Azure Resource Manager. Další informace o nasazení aplikace Service Fabric prostřednictvím Azure Resource Manager najdete v tématu Správa aplikací a služeb jako prostředků Azure Resource Manager.

Poznámka

Aplikace, které nejsou nasazené jako prostředek Azure , nemohou mít spravované identity.

Verze rozhraní API "2019-06-01-preview"podporuje nasazení aplikace Service Fabric se spravovanou identitou. Stejnou verzi rozhraní API můžete použít také pro typ aplikace, verzi typu aplikace a prostředky služby.

User-Assigned Identita

Pokud chcete aplikaci povolit s User-Assigned identitou, přidejte nejprve vlastnost identity do prostředku aplikace s typem userAssigned a odkazovanými identitami přiřazenými uživatelem. Pak do oddílu vlastností pro prostředek aplikace přidejte část managedIdentities, která obsahuje seznam popisných názvů na mapování principalId pro každou identitu přiřazenou uživatelem. Další informace o identitách přiřazených uživatelem najdete v tématu Vytvoření, výpis nebo odstranění spravované identity přiřazené uživatelem.

Šablona aplikace

Pokud chcete aplikaci povolit s identitou přiřazenou uživatelem, nejprve přidejte vlastnost identity do prostředku aplikace s typem userAssigned a odkazovanými identitami přiřazenými uživatelem a pak přidejte objekt managedIdentities do oddílu vlastností , který obsahuje seznam popisných názvů mapování na objekt principalId pro každou identitu přiřazenou uživatelem.

{
  "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'))]",
    "[resourceId('Microsoft.ManagedIdentity/userAssignedIdentities/', parameters('userAssignedIdentityName'))]"
  ],
  "identity": {
    "type" : "userAssigned",
    "userAssignedIdentities": {
        "[resourceId('Microsoft.ManagedIdentity/userAssignedIdentities/', parameters('userAssignedIdentityName'))]": {}
    }
  },
  "properties": {
    "typeName": "[parameters('applicationTypeName')]",
    "typeVersion": "[parameters('applicationTypeVersion')]",
    "parameters": {
    },
    "managedIdentities": [
      {
        "name" : "[parameters('userAssignedIdentityName')]",
        "principalId" : "[reference(resourceId('Microsoft.ManagedIdentity/userAssignedIdentities/', parameters('userAssignedIdentityName')), '2018-11-30').principalId]"
      }
    ]
  }
}

Ve výše uvedeném příkladu se jako popisný název spravované identity pro aplikaci používá název prostředku identity přiřazené uživatelem. Následující příklady předpokládají, že skutečný popisný název je AdminUser.

Balíček aplikace

  1. Pro každou identitu definovanou managedIdentities<ManagedIdentity> v oddílu šablony Azure Resource Manager přidejte značku do manifestu aplikace v části Objekty zabezpečení. Atribut Name musí odpovídat name vlastnosti definované v oddílu managedIdentities .

    ApplicationManifest.xml

      <Principals>
        <ManagedIdentities>
          <ManagedIdentity Name="AdminUser" />
        </ManagedIdentities>
      </Principals>
    
  2. V části ServiceManifestImport přidejte IdentityBindingPolicy pro službu, která používá spravovanou identitu. Tato zásada mapuje AdminUser identitu na název identity specifické pro službu, který je potřeba přidat do manifestu služby později.

    ApplicationManifest.xml

      <ServiceManifestImport>
        <Policies>
          <IdentityBindingPolicy ServiceIdentityRef="WebAdmin" ApplicationIdentityRef="AdminUser" />
        </Policies>
      </ServiceManifestImport>
    
  3. Aktualizujte manifest služby tak, aby do části Resources přidal managedIdentity s názvem, který odpovídá ServiceIdentityRef názvu v IdentityBindingPolicy manifestu aplikace:

    ServiceManifest.xml

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

Další kroky