Creazione di diritti e set di autorizzazioni

Completato

Quando si sviluppa un'app, i diritti e i set di autorizzazioni possono essere gestiti come oggetti in AL e i set di autorizzazioni esistenti possono essere estesi in AL. Per gestire i diritti e le autorizzazioni si possono usare i tipi di oggetto seguenti:

  • EntitlementObject

  • PermissionSet

  • PermissionSetExtension

Oggetto diritto

L'oggetto diritto in Dynamics 365 Business Central definisce gli oggetti in Business Central che un cliente è autorizzato a usare in base alla licenza acquistata o al ruolo assegnato in Microsoft Entra ID.

Un diritto è costituito da molti oggetti PermissionSet riuniti per creare un set di autorizzazioni significativo per un utente. Un diritto può includere solo oggetti del set di autorizzazioni che fanno riferimento agli oggetti inclusi nella stessa app. Questo aspetto garantisce che i diritti inclusi in un'app non possano alterare o ridefinire i diritti inclusi in un'altra app.

I diritti possono essere usati solo con la versione online di Dynamics 365 Business Central.

La digitazione del collegamento tentitlement creerà il layout di base per un oggetto diritto quando si usa l'estensione AL Language in Visual Studio Code.

Questo esempio illustra un semplice oggetto diritto con la proprietà Tipo impostata su Ruolo; ciò significa che il diritto è associato a un ruolo Microsoft Entra ID. Quando Tipo è impostato su Ruolo, la proprietà RoleType viene usata per distinguere tra le assegnazioni locali e delegate del ruolo. In questo caso è Delegato. La proprietà ObjectEntitlements definisce l'elenco delle autorizzazioni incluse nel diritto.


entitlement BC_Role_Delegated
{
    Type = Role;
    RoleType = Delegated;
    Id = '1a2aaaaa-3aa4-5aa6-789a-a1234567aaaa';
    ObjectEntitlements = 
        ”D365 BUS PREMIUM - BaseApp”;
}

L'esempio seguente mostra un diritto in cui Tipo è PerUserServicePlan:


entitlement BC_PerUserServicePlan
{
    Type = PerUserServicePlan;
    Id = '1a2aaaaa-3aa4-5aa6-789a-a1234567aaaa';

    ObjectEntitlements = "D365 BASIC";
   
}

L'oggetto diritto in Business Central descrive gli oggetti in un'app che un cliente è autorizzato a usare in base alla licenza acquistata o al ruolo assegnatogli in Microsoft Entra ID.

Un diritto è costituito da riferimenti a una serie di oggetti PermissionSet riuniti per creare un set di autorizzazioni significativo per un utente. Un diritto può includere solo oggetti del set di autorizzazioni che fanno riferimento agli oggetti inclusi nella stessa app. Ciò garantisce che i diritti inclusi in un'app non possano alterare o ridefinire i diritti inclusi in un'altra app.

Ogni diritto può quindi essere collegato a un identificatore di licenza. Quando un utente esegue l'accesso, i diritti vengono risolti e se un utente dispone della licenza a cui si collega il diritto, otterrà le autorizzazioni a cui il diritto definisce l'accesso.

Tenere presente che, mentre i diritti possono essere definiti già al momento della disponibilità generale del secondo ciclo di rilascio del 2022 di Business Central, il primo ciclo del supporto della negoziabilità di AppSource effettivo non sarà generalmente disponibile almeno fino alla prossima versione.

Oggetto set di autorizzazioni

L'oggetto set di autorizzazioni in Business Central descrive le autorizzazioni sugli oggetti. I set di autorizzazioni sono blocchi predefiniti usati per comporre diritti e set di autorizzazioni assegnabili. I set di autorizzazioni assegnabili sono autorizzazioni che un amministratore può assegnare agli utenti in Business Central usando la pagina Set di autorizzazioni. Un diritto è una raccolta di set di autorizzazioni che include un set di autorizzazioni significativo per un utente.

Alcuni set di autorizzazioni possono essere non assegnabili, pertanto non possono essere rilevati e assegnati nell'interfaccia utente di Business Central. Possono però essere usati come elementi costitutivi per comporre set di autorizzazioni assegnabili funzionali.

Se un set di autorizzazioni viene esteso tramite AL, tale estensione apporterà altre modifiche al set di autorizzazioni. In sostanza, un'estensione può fornire privilegi elevati a un set di autorizzazioni altrimenti limitato. La creazione di set di autorizzazioni estendibili deve essere eseguita con cautela tenendo presente questa informazione.

La digitazione del collegamento tpermissionset creerà il layout di base per un oggetto set di autorizzazioni quando si usa l'estensione AL Language in Visual Studio Code.

L'esempio seguente illustra il set di autorizzazioni Venditore con le autorizzazioni fornite ai dati nelle tabelle, ognuna con un diverso livello di accesso. La proprietà Assignable è impostata su true, pertanto è possibile assegnare il set di autorizzazioni a un utente. La proprietà Permissions è impostata sull'elenco di oggetti a cui concedere le autorizzazioni. L'accesso RIMD assegnato ai dati nella tabella Cliente fornisce l'accesso completo, mentre l'accesso è limitato ai dati nella tabella Valuta, consentendo solo l'autorizzazione completa per la lettura e la modifica.


permissionset 50134 "Sales Person"
{
    Assignable = true;
    Caption = 'Sales Person';

    Permissions = 
        tabledata Customer = RIMD,
        tabledata "Payment Terms" = RMD,
        tabledata Currency = RM,
        tabledata "Sales Header" = RIM,
        tabledata "Sales Line" = RIMD;
}

Il set di autorizzazioni di esempio seguente illustra le autorizzazioni assegnate per eseguire le codeunit. Con la proprietà IncludedPermissionSets viene specificato che il set di autorizzazioni Venditore è incluso anche in MyPermissionSet.


permissionset 50130 MyPermissionSet 
{ 
    Assignable = true;
    Caption = 'My PermissionSet';
    IncludedPermissionSets = "Sales Person"; 

    Permissions = 
        codeunit SomeCode = x, 
        tabledata Vendor = RIm,
        codeunit AccSchedManagement= X; 
}

Oggetto estensione del set di autorizzazioni

L'oggetto estensione del set di autorizzazioni in Business Central aggiunge autorizzazioni a un set di autorizzazioni esistente definito in AL. Un oggetto estensione del set di autorizzazioni non può rimuovere le autorizzazioni da un set di autorizzazioni esistente, ma solo aggiungerle. Se, ad esempio, si aggiunge un'estensione a Business Central, è possibile usare gli oggetti di estensione del set di autorizzazioni per concedere le autorizzazioni agli oggetti nell'estensione. In sostanza, l'amministratore di Business Central non deve assegnare ulteriori set di autorizzazioni agli utenti, perché l'assegnazione viene attivata automaticamente durante l'installazione dell'estensione e disattivata quando l'estensione viene disinstallata.

Se un set di autorizzazioni viene esteso tramite AL, tale estensione apporterà altre modifiche al set di autorizzazioni. In sostanza, un'estensione può fornire privilegi elevati a un set di autorizzazioni altrimenti limitato. La creazione di set di autorizzazioni estendibili deve essere eseguita con cautela tenendo presente questa informazione.

La digitazione del collegamento tpermissionsetextension creerà il layout di base per un oggetto estensione del set di autorizzazioni quando si usa l'estensione AL Language in Visual Studio Code.

L'esempio di estensione del set di autorizzazioni seguente estende il set di autorizzazioni Venditore aggiungendo le autorizzazioni di inserimento ed eliminazione diretti ai dati della tabella Valuta.


permissionsetextension 50140 "Extended Sales Doc" extends "Sales Person"
{
    Assignable = true;
    Caption = 'Extended Sales Doc';

    Permissions =
        tabledata Currency = ID;
}

Generazione o aggiornamento dei set di autorizzazioni AL

I set di autorizzazioni sono alla base del controllo dell'accesso agli oggetti AL. Quando si aggiungono nuovi oggetti, tuttavia, può essere facile dimenticarsi di aggiornare le autorizzazioni. Per evitarlo è ora possibile usare un nuovo comando AL per generare o aggiornare un file di autorizzazioni per il progetto attivo.

Il nuovo comando ora disponibile per generare un set di autorizzazioni come oggetto AL è al.generatePermissionSetForExtensionObjects.

Quando richiama il comando, uno sviluppatore può scegliere di creare un nuovo file di autorizzazioni o di selezionare un file esistente da aggiornare.

La funzionalità precedente di creazione di un file XML per il set di autorizzazioni è stata spostata nel comando al.generatePermissionSetForExtensionObjectsAsXml.