Share via


Configurare Durable Functions con Microsoft Entra ID

Microsoft Entra ID (Microsoft Entra ID) è un servizio di gestione delle identità e degli accessi basato sul cloud. Le connessioni basate su identità consentono a Durable Functions di effettuare richieste autorizzate su risorse protette di Microsoft Entra, ad esempio un account Archiviazione di Azure, senza dover gestire manualmente i segreti. Usando il provider di archiviazione di Azure predefinito, Durable Functions deve eseguire l'autenticazione in un account di archiviazione di Azure. In questo articolo viene illustrato come configurare un'app Durable Functions per usare due tipi di connessioni basate sull'identità: credenziali di identità gestite e credenziali del segreto client.

Un'identità gestita consente all'app di accedere facilmente ad altre risorse protette di Microsoft Entra, ad esempio Azure Key Vault. L'identità gestita è supportata nelle versioni dell'estensione Durable Functions 2.7.0 e successive.

Nota

In senso stretto, un'identità gestita è disponibile solo per le app durante l'esecuzione in Azure. Se configurata per l'uso di connessioni basate su identità, un'app in esecuzione in locale userà le credenziali dello sviluppatore per l'autenticazione con le risorse di Azure. Quindi, quando viene distribuito in Azure, usa invece la configurazione dell'identità gestita.

Prerequisiti

I passaggi seguenti presuppongono che si inizi con un'app Durable Functions esistente e si abbia familiarità con il funzionamento. In particolare, questa guida introduttiva presuppone che siano già disponibili:

  • È stato creato un progetto Durable Functions nel portale di Azure o distribuito un'istanza locale di Durable Functions in Azure.

In caso contrario, è consigliabile iniziare con uno degli articoli seguenti, che fornisce istruzioni dettagliate su come ottenere tutti i requisiti precedenti:

Abilitare l'identità gestita

Per la funzione è necessaria una sola identità, ovvero un'identità gestita assegnata dal sistema o un'identità gestita assegnata dall'utente. Per abilitare un'identità gestita per la funzione e altre informazioni sulle differenze tra le due identità, leggere le istruzioni dettagliate qui.

Assegnare Controllo di accesso basate su ruoli (RBAC) all'identità gestita

Passare alla risorsa di archiviazione dell'app nella portale di Azure. Seguire queste istruzioni per assegnare i ruoli seguenti alla risorsa di identità gestita.

  • Collaboratore ai dati della coda di archiviazione
  • Collaboratore ai dati del BLOB di archiviazione
  • Collaboratore ai dati della tabella di archiviazione

Aggiungere la configurazione dell'identità gestita nel portale di Azure

Passare alla pagina Configurazione dell'app per le funzioni di Azure ed eseguire le modifiche seguenti:

  1. Rimuovere il valore predefinito "AzureWebJobs Archiviazione".

Screenshot of default storage setting.

  1. Collegare l'account di archiviazione di Azure aggiungendo una delle impostazioni di valore seguenti:

    • AzureWebJobs Archiviazione__accountName: ad esempio:mystorageaccount123

    • AzureWebJobs Archiviazione__blobServiceUri: Esempio:https://mystorageaccount123.blob.core.windows.net/

      AzureWebJobs Archiviazione__queueServiceUri: Esempio:https://mystorageaccount123.queue.core.windows.net/

      AzureWebJobs Archiviazione__tableServiceUri: Esempio:https://mystorageaccount123.table.core.windows.net/

      Nota

      Se si usa Azure per enti pubblici o qualsiasi altro cloud separato da Azure globale, sarà necessario usare questa seconda opzione per fornire URL di servizio specifici. I valori per queste impostazioni sono disponibili nell'account di archiviazione nella scheda Endpoint. Per altre informazioni sull'uso di Archiviazione di Azure con Azure per enti pubblici, vedere la documentazione sviluppare con l'API Archiviazione Azure per enti pubblici.

    Screenshot of endpoint sample.

  2. Finalizzare la configurazione dell'identità gestita:

    • Se è necessario usare l'identità assegnata dal sistema, specificare nient'altro.

    • Se è necessario usare l'identità assegnata dall'utente, aggiungere i valori delle impostazioni dell'app seguenti nella configurazione dell'app:

      • AzureWebJobs Archiviazione__credential: managedidentity

      • AzureWebJobs Archiviazione__clientId: (valore GUID ottenuto dall'interfaccia di amministrazione di Microsoft Entra)

      Screenshot of user identity client id.

Configurare l'app per l'uso delle credenziali del segreto client

La registrazione di un'applicazione client in Microsoft Entra ID è un altro modo per configurare l'accesso a un servizio di Azure. Nei passaggi seguenti si apprenderà come usare le credenziali del segreto client per l'autenticazione all'account Archiviazione di Azure. Questo metodo può essere usato dalle app per le funzioni sia in locale che in Azure. Tuttavia, le credenziali dei segreti client sono meno consigliate rispetto all'identità gestita perché è più complicato configurare e gestire e richiede la condivisione di credenziali segrete con il servizio Funzioni di Azure.

Prerequisiti

I passaggi seguenti presuppongono che si inizi con un'app Durable Functions esistente e si abbia familiarità con il funzionamento. In particolare, questa guida introduttiva presuppone che siano già disponibili:

  • È stato creato un progetto Durable Functions nel computer locale o nel portale di Azure.

Registrare un'applicazione client in Microsoft Entra ID

  1. Registrare un'applicazione client in Microsoft Entra ID nel portale di Azure in base a queste istruzioni.

  2. Creare un segreto client per l'applicazione client. Nell'applicazione registrata:

    1. Selezionare Certificati e segreti e selezionare Nuovo segreto client.

    2. Compilare una descrizione e scegliere l'ora valida del segreto nel campo Scadenza .

    3. Copiare e salvare attentamente il valore del segreto perché non verrà visualizzato di nuovo dopo aver lasciato la pagina.

    Screenshot of client secret page.

Assegnare Controllo di accesso basate su ruoli all'applicazione client

Assegnare questi tre ruoli all'applicazione client seguendo questa procedura.

  • Collaboratore ai dati della coda di archiviazione
  • Collaboratore ai dati del BLOB di archiviazione
  • Collaboratore ai dati della tabella di archiviazione
  1. Passare alla pagina dell'account di archiviazione della funzione Controllo di accesso (IAM) e aggiungere una nuova assegnazione di ruolo.

    Screenshot of access control page.

  2. Scegliere il ruolo richiesto, fare clic su avanti, quindi cercare l'applicazione, rivedere e aggiungere.

    Screenshot of role assignment page.

Aggiungere la configurazione del segreto client

Per eseguire e testare in Azure, specificare le operazioni seguenti nella pagina Configurazione dell'app per le funzioni di Azure nella portale di Azure. Per eseguire e testare localmente, specificare quanto segue nel file local.settings.json della funzione.

  1. Rimuovere il valore predefinito "AzureWebJobs Archiviazione".

  2. Collegare l'account di archiviazione di Azure aggiungendo una delle impostazioni di valore seguenti:

    • AzureWebJobs Archiviazione__accountName: ad esempio:mystorageaccount123

    • AzureWebJobs Archiviazione__blobServiceUri: Esempio:https://mystorageaccount123.blob.core.windows.net/

      AzureWebJobs Archiviazione__queueServiceUri: Esempio:https://mystorageaccount123.queue.core.windows.net/

      AzureWebJobs Archiviazione__tableServiceUri: Esempio:https://mystorageaccount123.table.core.windows.net/

    I valori per queste variabili URI sono disponibili nell'account di archiviazione nella scheda Endpoint .

    Screenshot of endpoint sample.

  3. Aggiungere una credenziale del segreto client specificando i valori seguenti:

    • AzureWebJobs Archiviazione__clientId: (si tratta di un valore GUID disponibile nella pagina dell'applicazione Microsoft Entra)

    • AzureWebJobs Archiviazione__ClientSecret: (valore del segreto generato nell'interfaccia di amministrazione di Microsoft Entra in un passaggio precedente)

    • AzureWebJobs Archiviazione__tenantId: (ID tenant in cui è registrata l'applicazione Microsoft Entra)

    I valori id client e ID tenant sono disponibili nella pagina di panoramica dell'applicazione client. Il valore del segreto client è quello salvato attentamente nel passaggio precedente. Non sarà disponibile dopo l'aggiornamento della pagina.

    Screenshot of application's overview page.