Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Durable Task Scheduler usa l'identità gestita per l'autenticazione. È possibile usare un'identità gestita assegnata dall'utente o assegnata dal sistema . Le identità assegnate dall'utente sono consigliate perché non sono associate al ciclo di vita dell'app e possono essere riutilizzate dopo il deprovisioning dell'app.
Questo articolo illustra due modi per configurare l'identità gestita:
- Installazione rapida : un singolo comando dell'interfaccia della riga di comando che automatizza l'assegnazione di ruolo, l'allegato di identità e la configurazione delle variabili di ambiente.
- Installazione manuale : istruzioni dettagliate per il controllo completo su ogni passaggio di configurazione.
Prerequisiti
- Un account Azure con una sottoscrizione attiva. Creare un account gratuito.
- È già stata eseguita la fornitura di una risorsa di pianificazione attività durevoli e di un hub attività.
-
interfaccia della riga di comando di Azure con l'estensione
durabletaskinstallata (az extension add --name durabletask). - Ruolo Proprietario o Amministratore Accesso Utente sulla risorsa dello scheduler (necessario per creare assegnazioni di ruolo).
Ruoli RBAC del pianificatore di attività durevoli
È possibile concedere a un'entità i seguenti ruoli correlati a Durable Task Scheduler:
| Ruolo | Descrizione |
|---|---|
| Collaboratore ai dati delle attività durevoli | Ruolo per tutte le operazioni di accesso ai dati. Questo ruolo è un superset di tutti gli altri ruoli. |
| Lavoratore attività durevoli | Ruolo usato dalle applicazioni di lavoro per interagire con Durable Task Scheduler. Assegnare questo ruolo se l'app viene usata solo per l'elaborazione di orchestrazioni, attività ed entità. |
| Lettore dati attività durevoli | Ruolo per leggere tutti i dati del pianificatore di attività durevoli. Assegna questo ruolo se hai solo bisogno di elencare le orchestrazioni e leggere i payload delle entità. |
Annotazioni
La maggior parte delle app richiede il ruolo Collaboratore dati processi permanenti.
Configurazione rapida con az durabletask scheduler attach
Il az durabletask scheduler attach comando automatizza l'assegnazione di ruolo, l'allegato di identità e la configurazione delle variabili di ambiente in un singolo comando.
L'esempio seguente collega un pianificatore a un'app Function utilizzando un'identità gestita assegnata dall'utente con il ruolo Collaboratore dati attività permanenti :
az durabletask scheduler attach \
--resource-group RESOURCE_GROUP_NAME \
--name SCHEDULER_NAME \
--task-hub-name TASKHUB_NAME \
--role-type contributor \
--target /subscriptions/SUBSCRIPTION_ID/resourceGroups/RESOURCE_GROUP_NAME/providers/Microsoft.Web/sites/FUNCTION_APP_NAME \
--identity /subscriptions/SUBSCRIPTION_ID/resourceGroups/RESOURCE_GROUP_NAME/providers/Microsoft.ManagedIdentity/userAssignedIdentities/IDENTITY_NAME
Per un'app contenitore:
az durabletask scheduler attach \
--resource-group RESOURCE_GROUP_NAME \
--name SCHEDULER_NAME \
--task-hub-name TASKHUB_NAME \
--role-type contributor \
--target /subscriptions/SUBSCRIPTION_ID/resourceGroups/RESOURCE_GROUP_NAME/providers/Microsoft.App/containerApps/CONTAINER_APP_NAME \
--identity /subscriptions/SUBSCRIPTION_ID/resourceGroups/RESOURCE_GROUP_NAME/providers/Microsoft.ManagedIdentity/userAssignedIdentities/IDENTITY_NAME
Annotazioni
Se si omette il --identity parametro , il comando usa invece l'identità gestita assegnata dal sistema.
Per altre informazioni, vedere az durabletask scheduler attach.
Configurazione manuale
Se hai bisogno di un controllo granulare su ogni passaggio, segui le istruzioni manuali riportate di seguito per assegnare il RBAC, associare l'identità e configurare singolarmente le variabili di ambiente.
Assegnare il controllo degli accessi in base al ruolo a una risorsa di identità gestita
Creare un'identità gestita assegnata dall'utente
az identity create -g RESOURCE_GROUP_NAME -n IDENTITY_NAMEImpostare l'assegnatario nella risorsa di identità creata
assignee=$(az identity show --name IDENTITY_NAME --resource-group RESOURCE_GROUP_NAME --query 'clientId' --output tsv)Impostare l'ambito. Usare l'ambito dell'hub di attività per l'accesso con privilegi minimi. Usare ambito dello scheduler solo se l'identità deve accedere a tutti gli hub di attività in uno scheduler.
Ambito del task hub (scelta consigliata)
scope="/subscriptions/SUBSCRIPTION_ID/resourceGroups/RESOURCE_GROUP_NAME/providers/Microsoft.DurableTask/schedulers/SCHEDULER_NAME/taskHubs/TASKHUB_NAME"Ambito del pianificatore (tutti gli hub attività)
scope="/subscriptions/SUBSCRIPTION_ID/resourceGroups/RESOURCE_GROUP_NAME/providers/Microsoft.DurableTask/schedulers/SCHEDULER_NAME"Concedere l'accesso. Eseguire il comando seguente per creare l'assegnazione di ruolo e concedere l'accesso.
az role assignment create \ --assignee "$assignee" \ --role "Durable Task Data Contributor" \ --scope "$scope"Output previsto
L'esempio di output seguente mostra un'identità dello sviluppatore a cui è stato assegnato il ruolo di Collaboratore ai dati dell'attività durevole al livello del pianificatore:
{ "condition": null, "conditionVersion": null, "createdBy": "YOUR_DEVELOPER_CREDENTIAL_ID", "createdOn": "2024-12-20T01:36:45.022356+00:00", "delegatedManagedIdentityResourceId": null, "description": null, "id": "/subscriptions/YOUR_SUBSCRIPTION_ID/resourceGroups/YOUR_RESOURCE_GROUP/providers/Microsoft.DurableTask/schedulers/YOUR_DTS_NAME/providers/Microsoft.Authorization/roleAssignments/ROLE_ASSIGNMENT_ID", "name": "ROLE_ASSIGNMENT_ID", "principalId": "YOUR_DEVELOPER_CREDENTIAL_ID", "principalName": "YOUR_EMAIL", "principalType": "User", "resourceGroup": "YOUR_RESOURCE_GROUP", "roleDefinitionId": "/subscriptions/YOUR_SUBSCRIPTION/providers/Microsoft.Authorization/roleDefinitions/ROLE_DEFINITION_ID", "roleDefinitionName": "Durable Task Data Contributor", "scope": "/subscriptions/YOUR_SUBSCRIPTION/resourceGroups/YOUR_RESOURCE_GROUP/providers/Microsoft.DurableTask/schedulers/YOUR_DTS_NAME", "type": "Microsoft.Authorization/roleAssignments", "updatedBy": "YOUR_DEVELOPER_CREDENTIAL_ID", "updatedOn": "2024-12-20T01:36:45.022356+00:00" }
Annotazioni
L'istruzione seguente mostra un'assegnazione di ruolo limitata a un hub di attività specifico. Se è necessario accedere a tutti gli hub di attività in un pianificatore, eseguire l'assegnazione a livello del pianificatore.
Passare alla risorsa Utilità di pianificazione permanente nel portale.
Seleziona un nome per l'hub delle attività.
Nel menu a sinistra selezionare Controllo di accesso (IAM).
Selezionare Aggiungi per aggiungere un'assegnazione di ruolo.
Cercare e selezionare Collaboratore dati attività durevole. Seleziona Avanti.
Nella scheda Membri , per Assegna accesso a, selezionare Identità gestita.
In Membri selezionare + Seleziona membri.
Nel riquadro Seleziona identità gestite espandere l'elenco a discesa Identità gestite e selezionare Identità gestita assegnata dall'utente.
Selezionare l'identità gestita dall'utente creata in precedenza e fare clic su Seleziona.
Selezionare Rivedi e assegna per completare l'assegnazione del ruolo.
Assegnare un'identità gestita all'app
Ora che l'identità dispone del controllo degli accessi in base al ruolo (RBAC) necessario per accedere al pianificatore di attività durevole, è necessario assegnarlo all'app.
Ottenere l'ID risorsa dell'identità gestita.
resource_id=$(az resource show --resource-group RESOURCE_GROUP_NAME --name IDENTITY_NAME --resource-type Microsoft.ManagedIdentity/userAssignedIdentities --query id --output tsv)Assegnare l'identità all'app.
az functionapp identity assign --resource-group RESOURCE_GROUP_NAME --name FUNCTION_APP_NAME --identities "$resource_id"
Nell'app nel portale selezionare Impostazioni>Identità.
Selezionare la scheda Assegnato all'utente.
Selezionare + Aggiungi, quindi selezionare l'identità creata nell'ultima sezione. Seleziona Aggiungi.
Aggiungere variabili di ambiente all'app
Aggiungere le due variabili di ambiente seguenti all'app:
| Variabile di ambiente | Value | Example |
|---|---|---|
DURABLE_TASK_SCHEDULER_CONNECTION_STRING |
Endpoint=<SCHEDULER_ENDPOINT>;Authentication=ManagedIdentity;ClientID=<IDENTITY_CLIENT_ID> |
Endpoint=https://myscheduler.westus2.durabletask.io;Authentication=ManagedIdentity;ClientID=00000000-0000-0000-0000-000000000000 |
TASKHUB_NAME |
Nome dell'hub delle attività | my-task-hub |
Annotazioni
Se si usa system-assigned identity, omettere il parametro ClientID dal stringa di connessione: "Endpoint=<SCHEDULER_ENDPOINT>;Authentication=ManagedIdentity".
Ottieni le informazioni necessarie per la stringa di connessione.
Ottieni l'endpoint dello scheduler
az durabletask scheduler show --resource-group RESOURCE_GROUP_NAME --name SCHEDULER_NAME --query 'properties.endpoint' --output tsvOttenere l'ID client dell'identità gestita:
az identity show --name IDENTITY_NAME --resource-group RESOURCE_GROUP_NAME --query 'clientId' --output tsvImpostare entrambe le variabili di ambiente nell'app.
az functionapp config appsettings set \ --resource-group RESOURCE_GROUP_NAME \ --name FUNCTION_APP_NAME \ --settings \ DURABLE_TASK_SCHEDULER_CONNECTION_STRING="Endpoint=<SCHEDULER_ENDPOINT>;Authentication=ManagedIdentity;ClientID=<IDENTITY_CLIENT_ID>" \ TASKHUB_NAME="<TASKHUB_NAME>"
Ottieni le informazioni necessarie per la stringa di connessione.
Per ottenere l'endpoint dello scheduler, passare alla scheda Panoramica della risorsa dello scheduler e trovare Endpoint nella sezione Elementi Essenziali.
Per ottenere l'ID client dell'identità gestita, passare alla scheda Panoramica della risorsa di identità gestita e trovare l'ID client nella sezione Informazioni di base .
Vai alla tua app nel portale.
Nel menu a sinistra selezionare Impostazioni Variabili>di ambiente.
Aggiungere una variabile di ambiente denominata
DURABLE_TASK_SCHEDULER_CONNECTION_STRINGcon il valoreEndpoint=<SCHEDULER_ENDPOINT>;Authentication=ManagedIdentity;ClientID=<IDENTITY_CLIENT_ID>.Aggiungi una variabile di ambiente denominata
TASKHUB_NAMEcon il nome dell'hub delle attività.Selezionare Applica, quindi Conferma per salvare le variabili.