Sdílet prostřednictvím


Nasazení aplikace Service Fabric se spravovanou identitou přiřazenou uživatelem

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

Poznámka:

Aplikace, které nejsou nasazené jako prostředek Azure, nemůžou mít spravované identity.

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

Identita přiřazená uživatelem

Pokud chcete povolit aplikaci 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. Potom do oddílu vlastností pro prostředek aplikace přidejte oddíl 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

Chcete-li povolit aplikaci s identitou přiřazenou uživatelem, nejprve přidejte vlastnost identity do prostředku aplikace s typem userAssigned a odkazované identity přiřazené uživatelem a pak přidejte objekt managedIdentities v části vlastností , který obsahuje seznam popisného názvu na mapování principalId pro každou z identit přiřazených 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]"
      }
    ]
  }
}

V příkladu nad názvem prostředku identity přiřazené uživatelem se používá jako popisný název spravované identity pro aplikaci. 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 v oddílu managedIdentities v šabloně Azure Resource Manageru přidejte <ManagedIdentity> značku v 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 IdentituBindingPolicy 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 v části Resources přidal managedIdentity název odpovídající ServiceIdentityRef názvu v IdentityBindingPolicy manifestu aplikace:

    ServiceManifest.xml

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

Další kroky