Bereitstellen einer Service Fabric-Anwendung mit einer benutzerseitig zugewiesenen verwalteten Identität

Zum Bereitstellen einer Service Fabric Anwendung mit verwalteter Identität muss die Anwendung über Azure Resource Manager bereitgestellt werden – in der Regel mit einer Azure Resource Manager-Vorlage. Weitere Informationen zum Bereitstellen von Service Fabric Anwendung über Azure Resource Manager finden Sie unter Verwalten von Anwendungen und Diensten als Azure Resource Manager-Ressourcen.

Hinweis

Anwendungen, die nicht als Azure-Ressource bereitgestellt werden, können keine verwalteten Identitäten besitzen.

Die Bereitstellung von Service Fabric-Anwendungen mit verwalteten Identitäten wird mit der API-Version "2019-06-01-preview" unterstützt. Sie können auch die gleiche API-Version für den Anwendungstyp, die Anwendungstypversion und die Dienstressourcen verwenden.

Vom Benutzer zugewiesene Identität

Wenn Sie die Anwendung mit einer vom Benutzer zugewiesenen Identität aktivieren möchten, fügen Sie zunächst der Anwendungsressource mit dem Typ userAssigned und den referenzierten benutzerseitig zugewiesenen Identitäten die identity-Eigenschaft hinzu. Fügen Sie dann im Abschnitt properties für die Anwendungsressource einen Abschnitt managedIdentities ein, der eine Liste von Zuordnungen von Anzeigename zu principalId für jede vom Benutzer zugewiesenen Identität enthält. Weitere Informationen zu benutzerseitig zugewiesenen Identitäten finden Sie unter Erstellen, Auflisten oder Löschen einer benutzerseitig zugewiesenen verwalteten Identität.

Anwendungsvorlage

Wenn Sie die Anwendung mit einer vom Benutzer zugewiesenen Identität aktivieren möchten, fügen Sie zunächst der Anwendungsressource mit dem Typ userAssigned und den referenzierten vom Benutzer zugewiesenen Identitäten die identity-Eigenschaft hinzu. Fügen Sie dann ein managedIdentities-Objekt innerhalb des Abschnitts properties hinzu, das eine Liste der Zuordnungen von Anzeigename zu principalId für jede vom Benutzer zugewiesene Identität enthält.

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

Im Beispiel oben wird der Ressourcenname der vom Benutzer zugewiesenen Identität als Anzeigename der verwalteten Identität für die Anwendung verwendet. In den folgenden Beispielen wird davon ausgegangen, dass der tatsächliche Anzeigename „AdminUser“ lautet.

Anwendungspaket

  1. Fügen Sie für jede Identität, die im Abschnitt managedIdentities der Azure Resource Manager-Vorlage definiert ist, im Anwendungsmanifest im Abschnitt Principals ein <ManagedIdentity>-Tag hinzu. Das Name-Attribut muss der im Abschnitt managedIdentities definierten name-Eigenschaft entsprechen.

    ApplicationManifest.xml

      <Principals>
        <ManagedIdentities>
          <ManagedIdentity Name="AdminUser" />
        </ManagedIdentities>
      </Principals>
    
  2. Fügen Sie im Abschnitt ServiceManifestImport eine IdentityBindingPolicy für den Dienst hinzu, der die verwaltete Identität verwendet. Diese Richtlinie ordnet die Identität AdminUser einem dienstspezifischen Identitätsnamen zu, der später dem Dienstmanifest hinzugefügt werden muss.

    ApplicationManifest.xml

      <ServiceManifestImport>
        <Policies>
          <IdentityBindingPolicy ServiceIdentityRef="WebAdmin" ApplicationIdentityRef="AdminUser" />
        </Policies>
      </ServiceManifestImport>
    
  3. Aktualisieren Sie das Dienstmanifest, um im Abschnitt Resources eine ManagedIdentity hinzuzufügen, deren Name dem ServiceIdentityRef in der IdentityBindingPolicy des Anwendungsmanifests entspricht:

    ServiceManifest.xml

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

Nächste Schritte