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


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

Примечание

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

Чтобы получить доступ к функции управляемого удостоверения для приложений Azure Service Fabric, сначала включите Службу токенов управляемого удостоверения в кластере. Эта служба отвечает за проверку подлинности приложений Service Fabric с помощью их управляемых удостоверений, а также за получение токенов от их имени. После включения службы она отобразится в Service Fabric Explorer в разделе Система на левой панели; выполняется под именем fabric:/System/ManagedIdentityTokenService рядом с другими системными службами.

Примечание

Развертывание приложений Service Fabric с управляемыми удостоверениями поддерживается начиная с API версии "2019-06-01-preview". Вы также можете использовать одинаковую версию API для типа приложения, версии типа приложения и ресурсов службы. Минимальное поддерживаемое время выполнения Service Fabric составляет 6,5 CU2. Кроме того, в среде сборки или пакета также должен быть пакет SDK для Service Fabric для .NET с накопительным пакетом обновления 2 (CU2) или более поздней версии.

Управляемое удостоверение, назначаемое системой

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

Для включения приложения с удостоверением, назначаемым системой, добавьте свойство удостоверение в ресурс приложения с типом systemAssigned, как показано в примере ниже:

    {
      "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 и Поставщикам управляемых удостоверений и ресурсов Service Fabric, соответственно) о наличии у этого ресурса управляемого удостоверения, предоставленного (system assigned).

Приложение и пакет службы

  1. Обновите манифест приложения, чтобы добавить элемент ManagedIdentity в раздел Субъекты, содержащий одну запись, как показано ниже:

    ApplicationManifest.xml

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

    Это сопоставит удостоверение, назначенное приложению, как ресурс с понятным именем для дальнейшего назначения службам, составляющим приложение.

  2. В разделе ServiceManifestImport, соответствующем службе, которой назначается управляемое удостоверение, добавьте элемент IdentityBindingPolicy, как указано ниже:

    ApplicationManifest.xml

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

    Этот элемент назначает удостоверение приложения службе; без такого назначения служба не сможет получить доступ к удостоверению приложения. В приведенном выше фрагменте SystemAssigned удостоверение (которое является зарезервированным ключевым словом) сопоставляется с определением службы с понятным именем WebAdmin.

  3. Обновите манифест службы, чтобы элемент ManagedIdentity внутри раздела Ресурсы с именем, соответствующим значению параметра ServiceIdentityRef из определения IdentityBindingPolicy в манифесте приложения:

    ServiceManifest.xml

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

    Это эквивалентное сопоставление службы, как описано выше, но с точки зрения определения службы. На удостоверение указывает здесь понятное имя (WebAdmin), как объявлено в манифесте приложения.

Next Steps