Delen via


Een Service Fabric-toepassing implementeren met door het systeem toegewezen beheerde identiteit

Notitie

Het inschakelen van identiteiten voor een bestaande app die in eerste instantie is geïmplementeerd met behulp van Azure-cmdlets, wordt niet ondersteund.

Als u toegang wilt krijgen tot de functie voor beheerde identiteiten voor Azure Service Fabric-toepassingen, moet u eerst de Managed Identity Token Service inschakelen op het cluster. Deze service is verantwoordelijk voor de verificatie van Service Fabric-toepassingen met behulp van hun beheerde identiteiten en voor het verkrijgen van toegangstokens namens hen. Zodra de service is ingeschakeld, ziet u deze in Service Fabric Explorer in de sectie Systeem in het linkerdeelvenster, uitgevoerd onder de naam fabric :/System/ManagedIdentityTokenService naast andere systeemservices.

Notitie

De implementatie van Service Fabric-toepassingen met beheerde identiteiten wordt ondersteund vanaf de API-versie "2019-06-01-preview". U kunt ook dezelfde API-versie gebruiken voor toepassingstype, toepassingstypeversie en servicebronnen. De minimaal ondersteunde Service Fabric-runtime is 6,5 CU2. Daarnaast moet de build/pakketomgeving ook beschikken over de Service Fabric .NET SDK op CU2 of hoger

Door het systeem toegewezen beheerde identiteit

Toepassingsjabloon

Als u een toepassing met een door het systeem toegewezen beheerde identiteit wilt inschakelen, voegt u de identiteitseigenschap toe aan de toepassingsresource, met het type systemAssigned , zoals wordt weergegeven in het onderstaande voorbeeld:

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

Deze eigenschap declareert (aan Azure Resource Manager, respectievelijk de beheerde identiteit en Service Fabric-resourceproviders) dat deze resource een impliciete (system assigned) beheerde identiteit heeft.

Toepassings- en servicepakket

  1. Werk het toepassingsmanifest bij om een ManagedIdentity-element toe te voegen in de sectie Principals , die één vermelding bevat, zoals hieronder wordt weergegeven:

    ApplicationManifest.xml

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

    Hiermee wordt de identiteit toegewezen aan de toepassing als een resource toegewezen aan een beschrijvende naam, voor verdere toewijzing aan de services die de toepassing omvat.

  2. Voeg in de sectie ServiceManifestImport die overeenkomt met de service waaraan de beheerde identiteit wordt toegewezen, een IdentityBindingPolicy-element toe, zoals hieronder wordt aangegeven:

    ApplicationManifest.xml

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

    Dit element wijst de identiteit van de toepassing toe aan de service; zonder deze toewijzing heeft de service geen toegang tot de identiteit van de toepassing. In het bovenstaande fragment wordt de SystemAssigned identiteit (een gereserveerd trefwoord) toegewezen aan de definitie van de service onder de beschrijvende naam WebAdmin.

  3. Werk het servicemanifest bij om een ManagedIdentity-element toe te voegen in de sectie Resources met de naam die overeenkomt met de waarde van de ServiceIdentityRef instelling uit de IdentityBindingPolicy definitie in het toepassingsmanifest:

    ServiceManifest.xml

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

    Dit is de equivalente toewijzing van een identiteit aan een service, zoals hierboven beschreven, maar vanuit het perspectief van de servicedefinitie. Hier wordt naar de identiteit verwezen met de beschrijvende naam (WebAdmin), zoals gedeclareerd in het toepassingsmanifest.

Volgende stappen