Partilhar via


SDK da Proteção de Informações da Microsoft - Conceitos de objeto de perfil e mecanismo

Perfis

Onde o MipContext é a classe para armazenar configurações específicas do SDK, o perfil é a classe raiz para todas as operações específicas de proteção e rotulagem MIP no SDK do MIP. Antes de usar qualquer um dos três conjuntos de API, o aplicativo cliente deve criar um perfil. Operações futuras são realizadas pelo perfil ou por outros objetos adicionados ao perfil. Apenas um único objeto de perfil por processo é recomendado. Criar mais de um pode resultar em um comportamento inesperado.

Há três tipos de perfil no MIP SDK:

A API usada no aplicativo de consumo determina qual classe de perfil deve ser usada.

O próprio perfil fornece a seguinte funcionalidade:

  • Define se o estado deve ser carregado na memória ou persistido no disco e, se persistir no disco, deve ser criptografado.
  • Define o que deve ser usado para operações de mip::ConsentDelegate consentimento.
  • Define a mip::FileProfile::Observer implementação que será usada para retornos de chamada assíncronos para operações de perfil.

Definições de Perfil

  • MipContext: O MipContext objeto que foi inicializado para armazenar informações do aplicativo, caminho de estado, etc.
  • CacheStorageType: Define como armazenar o estado: Na memória, no disco ou no disco e criptografado.
  • consentDelegate: Um ponteiro compartilhado da classe mip::ConsentDelegate.
  • observer: Um ponteiro compartilhado para a implementação do perfil Observer (em PolicyProfile, ProtectionProfilee FileProfile).
  • applicationInfo: Um mip::ApplicationInfo objeto. Informações sobre o aplicativo que está consumindo o SDK, que corresponde ao seu ID de registro e nome do aplicativo Microsoft Entra.

Furgão

Os mecanismos do SDK de Arquivo, Perfil e Proteção fornecem uma interface para operações executadas por uma identidade específica. Um mecanismo é adicionado ao objeto Profile para cada usuário ou entidade de serviço que entra no aplicativo. É possível executar operações delegadas através mip::ProtectionSettings do e do manipulador de arquivo ou proteção. Consulte a seção de configurações de proteção nos conceitos do FileHandler para obter mais detalhes.

Há três classes de mecanismo no SDK, uma para cada API. A lista a seguir mostra as classes de motor e algumas das funções associadas a cada uma:

  • mip::ProtectionEngine
  • mip::PolicyEngine
    • ListSensitivityLabels(): Obtém a lista de rótulos para o mecanismo carregado.
    • GetSensitivityLabel(): Obtém o rótulo do conteúdo existente.
    • ComputeActions(): Fornecido com um ID de rótulo e metadados opcionais, retorna a lista de ações que devem ocorrer para um item específico.
  • mip::FileEngine
    • ListSensitivityLabels(): Obtém a lista de rótulos para o mecanismo carregado.
    • CreateFileHandler(): Cria um mip::FileHandler para um arquivo ou fluxo específico.

A criação de um mecanismo requer a passagem de um objeto específico de configurações do mecanismo que contém as configurações para o tipo de mecanismo a ser criado. O objeto settings permite que o desenvolvedor especifique detalhes sobre o identificador do mecanismo, a implementação, a mip::AuthDelegate localidade e as configurações personalizadas, bem como outros detalhes específicos da API.

Estados do motor

Um motor pode ter um de dois estados:

  • CREATED: Created indica que o SDK tem informações de estado local suficientes depois de chamar os serviços de back-end necessários.
  • LOADED: O SDK criou as estruturas de dados necessárias para que o mecanismo esteja operacional.

Um mecanismo deve ser criado e carregado para executar quaisquer operações. A Profile classe expõe alguns métodos de gerenciamento do motor: AddEngineAsync, DeleteEngineAsynce UnloadEngineAsync.

A tabela a seguir descreve os possíveis estados do mecanismo e quais métodos podem alterar esse estado:

Estado do motor NENHUM CRIADO CARREGADO
NENHUM AddEngineAsync
CRIADO DeleteEngineAsync AddEngineAsync
CARREGADO DeleteEngineAsync UnloadEngineAsync

ID do motor

Cada motor tem um identificador único, id, que é utilizado em todas as operações de gestão do motor. O aplicativo pode fornecer um id, ou o SDK pode gerar um, se não for fornecido pelo aplicativo. Todas as outras propriedades do mecanismo (por exemplo, endereço de e-mail nas informações de identidade) são cargas opacas para o SDK. O SDK NÃO executa nenhuma lógica para manter nenhuma das outras propriedades exclusivas ou impor quaisquer outras restrições.

Importante

**Como prática recomendada, use um ID de mecanismo que seja exclusivo para o usuário e use isso cada vez que o usuário executar uma operação com o SDK. A falha em fornecer um engineId existente e exclusivo para um usuário ou serviço resultará em viagens de ida e volta de serviço extras. Essas viagens de ida e volta de serviço podem resultar em degradação e limitação do desempenho. **

// Create the FileEngineSettings object
FileEngine::Settings engineSettings(mip::Identity(mUsername), // This will be the engine ID. UPN, email address, or other unique user identifiers are recommended. 
													          mAuthDelegate,            // authDelegate implementation 
													          "",                       // ClientData
													          "en-US",                  // Client Locale
                                    false);                   // Load Sensitive Information Types

Métodos de Gestão do Motor

Como mencionado anteriormente, há três métodos de gerenciamento de mecanismo no SDK: AddEngineAsync, DeleteEngineAsynce UnloadEngineAsync.

AddEngineAsync

Esse método carrega um mecanismo existente ou cria um se ainda não existir um no estado local.

Se o aplicativo não fornecer um id in FileEngineSettings, AddEngineAsync gerará um novo idarquivo . Em seguida, ele verifica se um mecanismo com isso id já existe no cache de armazenamento local. Se isso acontecer, ele carrega esse motor. Se o mecanismo não existir no cache local, um novo mecanismo será criado chamando as APIs e os serviços de back-end necessários.

Em ambos os casos, se o método for bem-sucedido, o mecanismo estará carregado e pronto para uso.

DeleteEngineAsync

Exclui o mecanismo com o dado id. Todos os vestígios do mecanismo são removidos do cache local.

UnloadEngineAsync

Descarrega as estruturas de dados na memória para o mecanismo com o fornecido id. O estado local deste motor ainda está intacto e pode ser recarregado com AddEngineAsync.

Este método permite que o aplicativo seja criterioso sobre o uso de memória, descarregando mecanismos que não devem ser usados em breve.

Passos Seguintes