Distribuire un'applicazione di Service Fabric con identità gestita assegnata dal sistema
Nota
L'abilitazione dell'identità per un'app esistente distribuita inizialmente con i cmdlet di Azure non è supportata.
Per accedere alla funzionalità di identità gestita per le applicazioni di Azure Service Fabric, è prima necessario abilitare il servizio token di identità gestita nel cluster. Questo servizio è responsabile dell'autenticazione delle applicazioni di Service Fabric usando le identità gestite e di ottenere i token di accesso per loro conto. Dopo aver abilitato il servizio, è possibile visualizzarlo in Service Fabric Explorer nella sezione Sistema nel riquadro sinistro, in esecuzione sotto il nome fabric:/System/ManagedIdentityTokenService accanto ad altri servizi di sistema.
Nota
La distribuzione di applicazioni di Service Fabric con identità gestite è supportata a partire dalla versione "2019-06-01-preview"
dell'API . È anche possibile usare la stessa versione dell'API per il tipo di applicazione, la versione del tipo di applicazione e le risorse del servizio. Il runtime minimo supportato di Service Fabric è 6.5 CU2. Inoltre, l'ambiente di compilazione/pacchetto deve avere anche Service Fabric .NET SDK a CU2 o versione successiva
Identità gestita assegnata dal sistema
Modello di applicazione
Per abilitare l'applicazione con un'identità gestita assegnata dal sistema, aggiungere la proprietà identity alla risorsa dell'applicazione, con il tipo systemAssigned come illustrato nell'esempio seguente:
{
"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": {
}
}
}
Questa proprietà dichiara (rispettivamente a Azure Resource Manager e ai provider di risorse di Identità gestita e Service Fabric) che questa risorsa deve avere un'identità gestita implicita (system assigned
).
Pacchetto dell'applicazione e del servizio
Aggiornare il manifesto dell'applicazione per aggiungere un elemento ManagedIdentity nella sezione Principals contenente una singola voce, come illustrato di seguito:
ApplicationManifest.xml
<Principals> <ManagedIdentities> <ManagedIdentity Name="SystemAssigned" /> </ManagedIdentities> </Principals>
In questo modo l'identità assegnata all'applicazione viene mappata come risorsa a un nome descrittivo, per un'ulteriore assegnazione ai servizi che comprendono l'applicazione.
Nella sezione ServiceManifestImport corrispondente al servizio a cui viene assegnata l'identità gestita aggiungere un elemento IdentityBindingPolicy, come indicato di seguito:
ApplicationManifest.xml
<ServiceManifestImport> <Policies> <IdentityBindingPolicy ServiceIdentityRef="WebAdmin" ApplicationIdentityRef="SystemAssigned" /> </Policies> </ServiceManifestImport>
Questo elemento assegna l'identità dell'applicazione al servizio; senza questa assegnazione, il servizio non sarà in grado di accedere all'identità dell'applicazione. Nel frammento di codice precedente, l'identità
SystemAssigned
(che è una parola chiave riservata) viene mappata alla definizione del servizio sotto il nomeWebAdmin
descrittivo .Aggiornare il manifesto del servizio per aggiungere un elemento ManagedIdentity all'interno della sezione Resources con il nome corrispondente al valore dell'impostazione
ServiceIdentityRef
dallaIdentityBindingPolicy
definizione nel manifesto dell'applicazione:ServiceManifest.xml
<Resources> ... <ManagedIdentities DefaultIdentity="WebAdmin"> <ManagedIdentity Name="WebAdmin" /> </ManagedIdentities> </Resources>
Si tratta del mapping equivalente di un'identità a un servizio come descritto in precedenza, ma dal punto di vista della definizione del servizio. L'identità viene a cui fa riferimento il nome descrittivo (
WebAdmin
), come dichiarato nel manifesto dell'applicazione.
Passaggi successivi
- Esaminare il supporto delle identità gestite in Azure Service Fabric
- Distribuire un nuovo cluster di Azure Service Fabric con supporto delle identità gestite
- Abilitare l'identità gestita in un cluster di Azure Service Fabric esistente
- Sfruttare l'identità gestita di un'applicazione di Service Fabric dal codice sorgente
- Distribuire un'applicazione di Azure Service Fabric con un'identità gestita assegnata dall'utente
- Concedere a un'applicazione di Azure Service Fabric l'accesso ad altre risorse di Azure