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

Hinweis

Die Aktivierung der Identität für eine vorhandene App, die zunächst mithilfe von Azure-Cmdlets bereitgestellt wurde, wird nicht unterstützt.

Um auf das Feature für verwaltete Identitäten für Azure Service Fabric-Anwendungen zugreifen zu können, müssen Sie zunächst den Tokendienst für verwaltete Identitäten im Cluster aktivieren. Dieser Dienst ist für die Authentifizierung von Service Fabric-Anwendungen anhand ihrer verwalteten Identitäten und für den Abruf von Zugriffstoken in deren Auftrag zuständig. Nachdem der Dienst aktiviert wurde, wird er in Service Fabric Explorer im Abschnitt System im linken Bereich unter dem Namen fabric:/System/ManagedIdentityTokenService neben anderen Systemdiensten angezeigt.

Hinweis

Die Bereitstellung von Service Fabric-Anwendungen mit verwalteten Identitäten wird ab 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. Die unterstützte Mindestversion der Service Fabric-Runtime ist 6.5 CU2. Zusätzlich sollte die Build-/Paketumgebung auch über das Service Fabric .NET-SDK mit CU2 oder höher verfügen

Systemseitig zugewiesene verwaltete Identität

Anwendungsvorlage

Wenn Sie eine Anwendung mit einer systemseitig zugewiesenen verwalteten Identität aktivieren möchten, fügen Sie der Anwendungsressource die Eigenschaft identity mit dem Typ systemAssigned hinzu, wie im folgenden Beispiel zu sehen:

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

Diese Eigenschaft deklariert (gegenüber Azure Resource Manager sowie gegenüber dem Anbieter der verwalteten Identität bzw. dem Service Fabric-Ressourcenanbieter), dass diese Ressource über eine implizite verwaltete Identität (vom Typ system assigned) verfügen soll.

Anwendungs- und Dienstpaket

  1. Aktualisieren Sie das Anwendungsmanifest, um im Abschnitt Principals ein Element vom Typ ManagedIdentity mit einem einzelnen Eintrag hinzuzufügen, wie im Anschluss zu sehen:

    ApplicationManifest.xml

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

    Dadurch wird die der Anwendung zugewiesene Identität als Ressource einem Anzeigenamen zugeordnet, um die weitere Zuweisung zu den Diensten zu ermöglichen, aus denen sich die Anwendung zusammensetzt.

  2. Fügen Sie im Abschnitt ServiceManifestImport für den Dienst, dem die verwaltete Identität zugewiesen wird, ein Element vom Typ IdentityBindingPolicy hinzu, wie hier gezeigt:

    ApplicationManifest.xml

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

    Dieses Element weist die Identität der Anwendung dem Dienst zu. Ohne diese Zuweisung kann der Dienst nicht auf die Identität der Anwendung zugreifen. Im obigen Codeausschnitt wird die Identität SystemAssigned (reserviertes Schlüsselwort) der Definition des Diensts unter dem Anzeigenamen WebAdmin zugeordnet.

  3. Aktualisieren Sie das Dienstmanifest, um im Abschnitt Resources ein Element vom Typ ManagedIdentity hinzuzufügen, dessen Name dem Wert der Einstellung ServiceIdentityRef aus der Definition IdentityBindingPolicy im Anwendungsmanifest entspricht:

    ServiceManifest.xml

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

    Dies ist die gleiche Zuordnung einer Identität zu einem Dienst, die oben beschrieben wurde, diesmal allerdings aus der Perspektive der Dienstdefinition. Auf die Identität wird hier anhand ihres im Anwendungsmanifest deklarierten Anzeigenamens (WebAdmin) verwiesen.

Nächste Schritte