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

Notitie

Het inschakelen van identiteit 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 tokenservice voor beheerde identiteiten 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 onder de sectie Systeem in het linkerdeelvenster, die wordt uitgevoerd onder de naam fabric:/System/ManagedIdentityTokenService naast andere systeemservices.

Notitie

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 serviceresources. De minimaal ondersteunde Service Fabric-runtime is 6,5 CU2. Daarnaast moet de build-/pakketomgeving ook de Service Fabric .NET SDK op CU2 of hoger hebben

Door het systeem toegewezen beheerde identiteit

Toepassingsjabloon

Als u een toepassing wilt inschakelen met een door het systeem toegewezen beheerde identiteit, voegt u de id-eigenschap 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": {
        }
      }
    }

Met deze eigenschap wordt (respectievelijk aan Azure Resource Manager en de beheerde identiteit en Service Fabric-resourceproviders aangegeven dat deze resource een impliciete (system assigned) beheerde identiteit moet hebben.

Toepassings- en servicepakket

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

    ApplicationManifest.xml

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

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

  2. Voeg in de sectie ServiceManifestImport die overeenkomt met de service waaraan de beheerde identiteit wordt toegewezen, het element IdentityBindingPolicy 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 codefragment 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 aangegeven in het toepassingsmanifest.

Volgende stappen