Nasazení aplikace se spravovanou identitou do spravovaného clusteru Service Fabric
Pokud chcete nasadit aplikaci Service Fabric se spravovanou identitou, musí být aplikace nasazená prostřednictvím Azure Resource Manageru, obvykle pomocí šablony Azure Resource Manageru. Další informace o nasazení aplikace Service Fabric prostřednictvím Azure Resource Manageru najdete v tématu Nasazení aplikace do spravovaného clusteru pomocí Azure Resource Manageru.
Poznámka:
Aplikace, které nejsou nasazené jako prostředek Azure, nemůžou mít spravované identity.
Nasazení aplikace Service Fabric se spravovanou identitou se podporuje s verzí "2021-05-01"
rozhraní API ve spravovaných clusterech.
Ukázkové šablony spravovaného clusteru jsou k dispozici tady: Šablony spravovaného clusteru Service Fabric
Podpora spravované identity ve spravovaném clusteru Service Fabric
Když je aplikace Service Fabric nakonfigurovaná se spravovanými identitami pro prostředky Azure a nasazená do clusteru, aktivuje automatickou konfiguraci služby tokenů spravované identity ve spravovaném clusteru Service Fabric. Tato služba zodpovídá za ověřování aplikací Service Fabric pomocí svých spravovaných identit a za získání přístupových tokenů jejich jménem. Jakmile je služba povolená, můžete ji zobrazit v Service Fabric Exploreru v části Systém v levém podokně, která běží pod názvem fabric:/System/ManagedIdentityTokenService.
Poznámka:
Při prvním nasazení aplikace se spravovanými identitami byste měli očekávat jednorázové delší nasazení kvůli automatické změně konfigurace clusteru. U clusteru, který se nachází v zóně, by to mělo trvat 15 minut, než bude zónový cluster trvat 45 minut. Pokud jsou v testovací verzi nějaká další nasazení, bude muset konfigurace spravované identity počkat, až se dokončí jako první.
Prostředek aplikace podporuje přiřazení systemAssigned nebo UserAssigned i přiřazení, jak je znázorněno v následujícím fragmentu kódu.
{
"type": "Microsoft.ServiceFabric/managedclusters/applications",
"apiVersion": "2021-05-01",
"identity": {
"type": "SystemAssigned",
"userAssignedIdentities": {}
},
}
Kompletní referenční informace k JSON
Identita přiřazená uživatelem
Pokud chcete povolit aplikaci s identitou přiřazenou uživatelem, nejprve přidejte vlastnost identity do prostředku aplikace s typem userAssigned a odkazovanými identitami přiřazenými uživatelem. Potom do oddílu vlastností pro prostředek aplikace přidejte oddíl managedIdentities, který obsahuje seznam popisných názvů na mapování principalId pro každou identitu přiřazenou uživatelem. Další informace o identitách přiřazených uživatelem najdete v tématu Vytvoření, výpis nebo odstranění spravované identity přiřazené uživatelem.
Šablona aplikace
Chcete-li povolit aplikaci s identitou přiřazenou uživatelem, nejprve přidejte vlastnost identity do prostředku aplikace s typem userAssigned a odkazované identity přiřazené uživatelem a pak přidejte objekt managedIdentities v části vlastností , který obsahuje seznam popisného názvu na mapování principalId pro každou z identit přiřazených uživatelem.
{
"apiVersion": "2021-05-01",
"type": "Microsoft.ServiceFabric/managedclusters/applications",
"name": "[concat(parameters('clusterName'), '/', parameters('applicationName'))]",
"location": "[resourceGroup().location]",
"dependsOn": [
"[parameters('applicationVersion')]",
"[resourceId('Microsoft.ManagedIdentity/userAssignedIdentities/', parameters('userAssignedIdentityName'))]"
],
"identity": {
"type" : "userAssigned",
"userAssignedIdentities": {
"[resourceId('Microsoft.ManagedIdentity/userAssignedIdentities/', parameters('userAssignedIdentityName'))]": {}
}
},
"properties": {
"version": "[parameters('applicationVersion')]",
"parameters": {
},
"managedIdentities": [
{
"name" : "[parameters('userAssignedIdentityName')]",
"principalId" : "[reference(resourceId('Microsoft.ManagedIdentity/userAssignedIdentities/', parameters('userAssignedIdentityName')), '2018-11-30').principalId]"
}
]
}
}
V příkladu nad názvem prostředku identity přiřazené uživatelem se používá jako popisný název spravované identity pro aplikaci. Následující příklady předpokládají, že skutečný popisný název je AdminUser.
Balíček aplikace
Pro každou identitu definovanou v oddílu
managedIdentities
v šabloně Azure Resource Manageru přidejte<ManagedIdentity>
značku v manifestu aplikace v části Objekty zabezpečení. AtributName
musí odpovídatname
vlastnosti definované v oddílumanagedIdentities
.ApplicationManifest.xml
<Principals> <ManagedIdentities> <ManagedIdentity Name="AdminUser" /> </ManagedIdentities> </Principals>
V části ServiceManifestImport přidejte IdentituBindingPolicy pro službu, která používá spravovanou identitu. Tato zásada mapuje
AdminUser
identitu na název identity specifické pro službu, který je potřeba přidat do manifestu služby později.ApplicationManifest.xml
<ServiceManifestImport> <Policies> <IdentityBindingPolicy ServiceIdentityRef="WebAdmin" ApplicationIdentityRef="AdminUser" /> </Policies> </ServiceManifestImport>
Aktualizujte manifest služby tak, aby v části Resources přidal managedIdentity název odpovídající
ServiceIdentityRef
názvu vIdentityBindingPolicy
manifestu aplikace:ServiceManifest.xml
<Resources> ... <ManagedIdentities DefaultIdentity="WebAdmin"> <ManagedIdentity Name="WebAdmin" /> </ManagedIdentities> </Resources>
Spravovaná identita přiřazená systémem
Šablona aplikace
Pokud chcete aplikaci povolit se spravovanou identitou přiřazenou systémem, přidejte do prostředku aplikace vlastnost identity s typem systemAssigned, jak je znázorněno v následujícím příkladu:
{
"apiVersion": "2021-05-01",
"type": "Microsoft.ServiceFabric/managedclusters/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": {
}
}
}
Tato vlastnost deklaruje (pro Azure Resource Manager a spravované identity a poskytovatele prostředků Service Fabric, v uvedeném pořadí), že tento prostředek má implicitní (system assigned
) spravovanou identitu.
Balíček aplikací a služeb
Aktualizujte manifest aplikace tak, aby v části Objekty zabezpečení přidal element ManagedIdentity obsahující jednu položku, jak je znázorněno níže:
ApplicationManifest.xml
<Principals> <ManagedIdentities> <ManagedIdentity Name="SystemAssigned" /> </ManagedIdentities> </Principals>
Tím se identita přiřazená k aplikaci mapuje jako prostředek na popisný název pro další přiřazení ke službám, které tvoří aplikaci.
V části ServiceManifestImport odpovídající službě, která má přiřazenu spravovanou identitu, přidejte element IdentityBindingPolicy, jak je uvedeno níže:
ApplicationManifest.xml
<ServiceManifestImport> <Policies> <IdentityBindingPolicy ServiceIdentityRef="WebAdmin" ApplicationIdentityRef="SystemAssigned" /> </Policies> </ServiceManifestImport>
Tento element přiřadí identitu aplikace službě; bez tohoto přiřazení nebude mít služba přístup k identitě aplikace. Ve výše uvedeném
SystemAssigned
fragmentu kódu se identita (což je vyhrazené klíčové slovo) mapuje na definici služby pod popisným názvemWebAdmin
.Aktualizujte manifest služby tak, aby do oddílu Resources přidal element ManagedIdentity s názvem odpovídajícím hodnotě
ServiceIdentityRef
nastavení zIdentityBindingPolicy
definice v manifestu aplikace:ServiceManifest.xml
<Resources> ... <ManagedIdentities DefaultIdentity="WebAdmin"> <ManagedIdentity Name="WebAdmin" /> </ManagedIdentities> </Resources>
Jedná se o ekvivalentní mapování identity na službu, jak je popsáno výše, ale z pohledu definice služby. Identita je zde odkazována popisným názvem (
WebAdmin
), jak je deklarováno v manifestu aplikace.