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
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.
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 naamWebAdmin
.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 deIdentityBindingPolicy
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
- Ondersteuning voor beheerde identiteiten controleren in Azure Service Fabric
- Een nieuw Azure Service Fabric-cluster implementeren met ondersteuning voor beheerde identiteiten
- Beheerde identiteit inschakelen in een bestaand Azure Service Fabric-cluster
- De beheerde identiteit van een Service Fabric-toepassing gebruiken vanuit broncode
- Een Azure Service Fabric-toepassing implementeren met een door de gebruiker toegewezen beheerde identiteit
- Een Azure Service Fabric-toepassing toegang verlenen tot andere Azure-resources