Поделиться через


Развертывание приложения Service Fabric с назначенным пользователем управляемым удостоверением

Чтобы развернуть приложение Service Fabric с поддержкой управляемой идентификации, его нужно развернуть посредством Azure Resource Manager, обычно с использованием шаблона Azure Resource Manager. Дополнительные сведения о развертывании приложения Service Fabric с помощью Azure Resource Manager см. в статье "Управление приложениями и службами в качестве ресурсов Azure Resource Manager".

Примечание.

Приложения, которые не развернуты в качестве ресурса Azure , не могут иметь управляемые удостоверения.

Развертывание приложения Service Fabric с управляемым удостоверением поддерживается версией API "2019-06-01-preview". Вы также можете использовать ту же версию API для типа приложения, версии приложения и ресурсов службы.

удостоверение User-Assigned

Чтобы включить приложение с удостоверением User-Assigned, добавьте сначала свойство удостоверения в ресурс приложения с типом userAssigned и ссылаемыми назначенными пользователем удостоверениями. Затем добавьте раздел managedIdentities в раздел свойств ресурса приложения, который содержит список сопоставлений понятных имен с principalId для каждого из пользовательских назначаемых удостоверений. Дополнительные сведения о назначенных пользователем удостоверениях см. в статье "Создание, перечисление или удаление управляемого удостоверения, назначаемого пользователем".

Шаблон приложения

Чтобы включить приложение с удостоверением, назначаемым пользователем, сначала добавьте свойство identity в ресурс приложения типа userAssigned с указанными назначенными пользователем удостоверениями, а затем добавьте объект managedIdentities в раздел properties, содержащий список отображения понятных имен на идентификаторы principalId для каждого назначенного пользователем удостоверения.

{
  "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]"
      }
    ]
  }
}

В указанном выше примере имя ресурса удостоверения, назначенного пользователем, используется в качестве понятного имени управляемого идентификатора для приложения. В следующих примерах предполагается, что текущее дружественное имя — AdminUser.

Пакет приложения

  1. Для каждого удостоверения, определенного в разделе managedIdentities шаблона Azure Resource Manager, добавьте тег <ManagedIdentity> в манифест приложения в разделе Субъекты. Атрибут Name должен соответствовать свойству name, определённому в разделе managedIdentities.

    ApplicationManifest.xml

      <Principals>
        <ManagedIdentities>
          <ManagedIdentity Name="AdminUser" />
        </ManagedIdentities>
      </Principals>
    
  2. В разделе ServiceManifestImport добавьте IdentityBindingPolicy для службы, которая использует управляемое удостоверение. Эта политика сопоставляет AdminUser удостоверение с именем удостоверения для конкретной службы, которое необходимо добавить в манифест службы позже.

    ApplicationManifest.xml

      <ServiceManifestImport>
        <Policies>
          <IdentityBindingPolicy ServiceIdentityRef="WebAdmin" ApplicationIdentityRef="AdminUser" />
        </Policies>
      </ServiceManifestImport>
    
  3. Обновите манифест службы, чтобы добавить ManagedIdentity в раздел Resources с именем, соответствующим ServiceIdentityRef в IdentityBindingPolicy манифесте приложения:

    ServiceManifest.xml

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

Дальнейшие действия