Delen via


Een Service Fabric-toepassing implementeren met door een gebruiker toegewezen beheerde identiteit

Als u een Service Fabric-toepassing met beheerde identiteit wilt implementeren, moet de toepassing worden geïmplementeerd via Azure Resource Manager, meestal met een Azure Resource Manager-sjabloon. Zie Toepassingen en services beheren als Azure Resource Manager-resources voor meer informatie over het implementeren van Een Service Fabric-toepassing via Azure Resource Manager.

Notitie

Toepassingen die niet zijn geïmplementeerd als een Azure-resource , kunnen geen beheerde identiteiten hebben.

Implementatie van Service Fabric-toepassingen met Managed Identity wordt ondersteund met API-versie "2019-06-01-preview". U kunt ook dezelfde API-versie gebruiken voor toepassingstype, toepassingstypeversie en servicebronnen.

Door de gebruiker toegewezen identiteit

Als u een toepassing met door de gebruiker toegewezen identiteit wilt inschakelen, voegt u eerst de identiteitseigenschap toe aan de toepassingsresource met het type userAssigned en de door de gebruiker toegewezen identiteiten waarnaar wordt verwezen. Voeg vervolgens een sectie managedIdentities toe in de sectie Eigenschappen voor de toepassingsresource die een lijst met beschrijvende naam bevat aan principalId-toewijzing voor elk van de door de gebruiker toegewezen identiteiten. Zie Een door de gebruiker toegewezen beheerde identiteit maken, weergeven of verwijderen voor meer informatie over door de gebruiker toegewezen identiteiten.

Toepassingsjabloon

Als u de toepassing wilt inschakelen met door de gebruiker toegewezen identiteit, voegt u eerst de id-eigenschap toe aan de toepassingsresource met het type userAssigned en de door de gebruiker toegewezen identiteiten. Vervolgens voegt u een object managedIdentities toe in de eigenschappensectie met een lijst met beschrijvende naam aan principalId-toewijzing voor elk van de door de gebruiker toegewezen identiteiten.

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

In het bovenstaande voorbeeld wordt de resourcenaam van de door de gebruiker toegewezen identiteit gebruikt als de beschrijvende naam van de beheerde identiteit voor de toepassing. In de volgende voorbeelden wordt ervan uitgegaan dat de beschrijvende naam AdminUser is.

Toepassingspakket

  1. Voor elke identiteit die is gedefinieerd in de managedIdentities sectie in de Azure Resource Manager-sjabloon, voegt u een <ManagedIdentity> tag toe aan het toepassingsmanifest onder de sectie Principals . Het Name kenmerk moet overeenkomen met de name eigenschap die is gedefinieerd in de managedIdentities sectie.

    ApplicationManifest.xml

      <Principals>
        <ManagedIdentities>
          <ManagedIdentity Name="AdminUser" />
        </ManagedIdentities>
      </Principals>
    
  2. Voeg in de sectie ServiceManifestImport een IdentityBindingPolicy toe voor de service die gebruikmaakt van de beheerde identiteit. Dit beleid wijst de AdminUser identiteit toe aan een servicespecifieke identiteitsnaam die later moet worden toegevoegd aan het servicemanifest.

    ApplicationManifest.xml

      <ServiceManifestImport>
        <Policies>
          <IdentityBindingPolicy ServiceIdentityRef="WebAdmin" ApplicationIdentityRef="AdminUser" />
        </Policies>
      </ServiceManifestImport>
    
  3. Werk het servicemanifest bij om een ManagedIdentity toe te voegen in de sectie Resources met de naam die overeenkomt met de ServiceIdentityRef naam in het IdentityBindingPolicy toepassingsmanifest:

    ServiceManifest.xml

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

Volgende stappen