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:
PolicyProfile
: A classe de perfil para o MIP Policy SDK.ProtectionProfile
: A classe de perfil para o SDK de Proteção MIP.FileProfile
: A classe de perfil para o MIP File 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
: OMipContext
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 classemip::ConsentDelegate
.observer
: Um ponteiro compartilhado para a implementação do perfilObserver
(emPolicyProfile
,ProtectionProfile
eFileProfile
).applicationInfo
: Ummip::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 ummip::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
, DeleteEngineAsync
e 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
, 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
in FileEngineSettings
, AddEngineAsync
gerará um novo id
arquivo . 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
- Em seguida, saiba mais sobre conceitos de autenticação e observadores. O MIP fornece um modelo de autenticação extensível, enquanto os observadores são usados para fornecer notificações de eventos para eventos assíncronos. Ambos são fundamentais e se aplicam a todos os SDKs MIP.
- Em seguida, trabalhe nos conceitos de perfil e mecanismo para os SDKs de arquivo, política e proteção