Microsoft Proteção de Informações SDK – conceitos de objeto de perfil e mecanismo

Perfis

A MipContext classe armazena configurações específicas do SDK. O perfil é a classe raiz para todas as operações específicas de rotulagem MIP e proteção no SDK do MIP. Antes de usar um dos três conjuntos de API, o aplicativo cliente deve criar um perfil. O perfil ou outros objetos adicionados ao perfil executam operações futuras. Use apenas um objeto de perfil por processo. Criar mais de um pode resultar em um comportamento inesperado.

O SDK do MIP tem três tipos de perfil:

A API que o aplicativo consumidor usa determina qual classe de perfil usar.

O próprio perfil oferece as seguintes funcionalidades:

  • Armazenamento de estado: define se o estado deve ser carregado na memória ou persisti-lo no disco e se o estado deve ser criptografado se persistido no disco.
  • Delegado de consentimento: Define o mip::ConsentDelegate a ser usado para as operações de consentimento.
  • Observador de perfil de arquivo: define a implementação mip::FileProfile::Observer a ser usada para retornos de chamada assíncronos para operações no perfil.

Configurações de perfil

  • MipContext: o objeto MipContext 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 de classe mip::ConsentDelegate.
  • observer: um ponteiro compartilhado para a implementação do perfil Observer (em PolicyProfile, ProtectionProfile e FileProfile).
  • applicationInfo: um objeto mip::ApplicationInfo. Informações sobre o aplicativo que consome o SDK e corresponde ao ID e ao nome do registro do aplicativo no Microsoft Entra.

Mecanismos

Os mecanismos de SDK de Arquivo, Política e Proteção fornecem uma interface para operações executadas por uma identidade específica. Adicione um mecanismo ao objeto de perfil para cada usuário ou entidade de serviço que entra no aplicativo. Você pode executar operações delegadas usando mip::ProtectionSettings e o manipulador de arquivo ou proteção. Para obter mais informações, consulte a seção de configurações de proteção nos conceitos do FileHandler.

O SDK tem três classes de mecanismo, uma para cada API. A seguinte lista mostra as classes de mecanismo 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 uma 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.

Para criar um mecanismo, passe 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 de configurações permite que o desenvolvedor especifique detalhes sobre o identificador do mecanismo, a implementação, a mip::AuthDelegate localidade, as configurações personalizadas e outros detalhes específicos da API.

Estados do motor

Um mecanismo pode ter um dos dois estados:

  • CREATED: criado 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 operações. A classe Profile expõe alguns métodos de gerenciamento de mecanismo: AddEngineAsync, DeleteEngineAsync e UnloadEngineAsync.

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

Estado do mecanismo Nenhuma CREATED LOADED
Nenhuma AddEngineAsync
CREATED DeleteEngineAsync AddEngineAsync
LOADED DeleteEngineAsync UnloadEngineAsync

ID do mecanismo

Cada mecanismo tem um identificador exclusivo, idusado em todas as operações de gerenciamento do mecanismo. O aplicativo pode fornecer um id. Se o aplicativo não fornecer um, o SDK poderá gerá-lo. Todas as outras propriedades do mecanismo, como o endereço de email nas informações de identidade, são cargas opacas para o SDK. O SDK não executa lógica para manter nenhuma outra propriedade exclusiva ou impor outras restrições.

Importante

Use uma ID do mecanismo exclusiva para o usuário e use essa ID do mecanismo sempre que o usuário executar uma operação com o SDK. Se você não fornecer um ID de mecanismo existente e exclusivo para um usuário ou serviço, o SDK fará viagens de ida e volta de serviço extras. Esses ciclos do serviço podem resultar em limitação e degradaçã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 gerenciamento do motor

O SDK tem três métodos de gerenciamento do mecanismo: AddEngineAsync, DeleteEngineAsync e 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, em FileEngineSettings, AddEngineAsync gerará um novo id. Em seguida, ele verificará se um mecanismo com id já existe no cache de armazenamento local. Se existir, ele carregará esse mecanismo. 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 id informado. Todos os rastreamentos do mecanismo são removidos do cache local.

UnloadEngineAsync

Descarrega as estruturas de dados na memória para o mecanismo com o id informado. O estado local deste motor permanece intacto, e você pode recarregá-lo com AddEngineAsync.

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

Próximas Etapas