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.
Microsoft Information Protection SDK supporta due tipi principali di autorizzazioni basate su etichetta: basate su modello e definite dall'utente.
Autorizzazioni basate su modello: Questi diritti sono definiti dall'amministratore delle etichette nel Centro sicurezza e conformità. Queste etichette vengono gestite centralmente e le modifiche apportate alla configurazione influiranno sugli utenti che dispongono già di copie dei file. Ad esempio, se l'amministratore rimuove un utente dall'elenco di utenti autorizzati, tale utente non avrà più accesso ai dati protetti al successivo tentativo di recuperare una licenza.
Autorizzazioni definite dall'utente: questi diritti vengono definiti al momento dell'etichettatura da parte dell'utente finale o dell'applicazione. Le autorizzazioni vengono passate al MIP SDK sotto forma di una serie di associazioni da utente a ruolo o da utente a diritto. Questi diritti vengono scritti nella licenza di pubblicazione per il documento protetto e, a differenza delle autorizzazioni basate su modello, non possono essere gestiti o modificati centralmente dopo la condivisione senza accesso diretto e modifica del documento.
Utenti, diritti e ruoli
Poiché è previsto che i diritti verranno definiti dall'utente al momento dell'etichettatura, l'applicazione deve fornire un'interfaccia per consentire all'utente o al servizio di fornire input sugli indirizzi di posta elettronica e sui diritti o sui ruoli che l'utente avrà. Questa configurazione viene eseguita passando una raccolta di UserRoles oggetti o UserRights che definiscono in modo specifico chi deve avere il livello di accesso ai documenti.
// Create a List<string> of the first set of permissions.
List<string> users = new List<string>()
{
"alice@contoso.com",
"bob@contoso.com"
};
// Create a List<string> of the Rights the above users should have.
List<string> rights = new List<string>()
{
Rights.View,
Rights.Edit
};
// Create a UserRights object containing the defined users and rights.
UserRights userRights = new UserRights(users, rights);
// Add them to a new List<UserRights>
List<UserRights> userRightsList = new List<UserRights>()
{
userRights
};
Il risultato è che avrai una List<UserRights> raccolta che specifica che sia Alice che Bob hanno permessi di VISUALIZZARE e MODIFICARE sul file protetto. Per aggiungere altri utenti con un set diverso di autorizzazioni, ripetere il processo per creare un secondo UserRights oggetto, passando i nuovi utenti e le autorizzazioni, quindi aggiungere alla List<UserRights> raccolta chiamando userRightsList.Add(userRights2).
Questo modello è valido anche per UserRoles e può essere implementato semplicemente sostituendo i diritti con i ruoli e creare una List<UserRoles> raccolta.
Protezione per un dominio
L'applicazione delle autorizzazioni definite dall'utente per un dominio richiede l'uso di un prefisso di posta elettronica noto e del dominio di destinazione come indirizzo di posta elettronica. L'indirizzo è simile al seguente: AllStaff-7184AB3F-CCD1-46F3-8233-3E09E9CF0E66@contoso.com.
Nell'applicazione gli utenti devono essere in grado di specificare un dominio, ad esempio contoso.com o fabrikam.com. Quando l'applicazione crea il descrittore di protezione, sarà necessario anteporre AllStaff-7184AB3F-CCD1-46F3-8233-3E09E9CF0E66@ al suffisso di dominio.
Nell'esempio seguente si presuppone che l'utente ha specificato alice@contoso.com e tutto Fabrikam.com come destinatari validi.
// Create a List<string> of the first set of permissions.
List<string> users = new List<string>()
{
"alice@contoso.com",
"AllStaff-7184AB3F-CCD1-46F3-8233-3E09E9CF0E66@fabrikam.com"
};
// Create a List<string> of the Rights the above users should have.
List<string> rights = new List<string>()
{
Rights.View,
Rights.Edit
};
// Create a UserRights object containing the defined users and rights.
UserRights userRights = new UserRights(users, rights);
// Add them to a new List<UserRights>
List<UserRights> userRightsList = new List<UserRights>()
{
userRights
};
Applica protezione
L'impostazione della protezione può essere ottenuta creando un ProtectionDescriptor oggetto dall'oggetto List<UserRights> o List<UserRoles> e quindi passando tale oggetto a FileHandler.SetProtection(). Infine, eseguire il commit della modifica nel file per scrivere un nuovo file.
Quando applicare la protezione ai file
Quando si imposta un'etichetta tramite FileHandler.SetLabel(), MIP SDK ha tutto il necessario per intervenire e applicare la protezione necessaria. Quando l'etichetta è configurata per le autorizzazioni definite dall'utente (UDP), l'applicazione non è in grado di sapere in anticipo che l'etichetta è un'etichetta UDP. MIP SDK visualizza queste informazioni generando un'eccezione del tipo Microsoft.InformationProtection.Exceptions.AdhocProtectionRequiredException. Il FileHandler codice deve intercettare questa eccezione, quindi attivare l'interfaccia utente o del servizio per definire le autorizzazioni personalizzate. Al termine, sarà possibile impostare la protezione. L'esempio seguente illustra il modello end-to-end, ma presuppone che sia già stata implementata una funzione per compilare l'oggetto List<UserRights> .
try
{
// Attempt to set the label. If it's a UDP label, this will throw.
handler.SetLabel(engine.GetLabelById(options.LabelId), labelingOptions, new ProtectionSettings());
}
catch (Microsoft.InformationProtection.Exceptions.AdhocProtectionRequiredException)
{
// Assumes you've create a function that returns the List<UserRights> as previously detailed.
List<UserRights> userRightsList = GetUserRights();
// Create a ProtectionDescriptor using the set of UserRights.
ProtectionDescriptor protectionDescriptor = new ProtectionDescriptor(userRightsList);
// Apply protection to the file using the new ProtectionDescriptor.
handler.SetProtection(protectionDescriptor, new ProtectionSettings());
// Set the label. This will now succeed as protection has been defined.
handler.SetLabel(engine.GetLabelById(options.LabelId), labelingOptions, new ProtectionSettings());
// Commit the change.
var result = Task.Run(async () => await handler.CommitAsync("myFileOutput.xlsx")).Result;
}
Protezione personalizzata
Questo processo può essere usato anche per impostare solo la protezione impostando la protezione e ignorando il SetLabel() passaggio. Se l'applicazione non deve applicare un'etichetta, il gestore eccezioni non è obbligatorio e la protezione può essere impostata seguendo il ProtectionDescriptor modello ->>SetProtection()CommitAsync() .