Microsoft Information Protection SDK - Conceitos de autenticação

A autenticação no MIP SDK é realizada estendendo a classe mip::AuthDelegate para implementar o método de autenticação preferido. mip::AuthDelegate contém:

  • mip::AuthDelegate::OAuth2Challenge - uma classe que gere a informação de autoridade do OAuth2 e fornece à aplicação cliente.
  • mip::AuthDelegate::OAuth2Token - uma classe gere a aquisição de tokens de acesso OAuth2 (a partir da aplicação cliente) e o armazenamento de tokens.
  • mip::AuthDelegate::AcquireOAuth2Token() - uma função puramente virtual, cuja implementação determina o método de aquisição do token de acesso. Depois de ser chamado pelo SDK, adquire o token de acesso e depois fornece-o de volta à lógica de autenticação do SDK.

mip::AuthDelegate::AcquireOAuth2Token Aceita os seguintes parâmetros e devolve um BOOL indicando se a aquisição do token foi bem-sucedida:

  • mip::Identity: A identidade do utilizador ou serviço a autenticar, se conhecida.
  • mip::AuthDelegate::OAuth2Challenge: Aceita quatro parâmetros: autoridade, recurso, reivindicações e âmbitos. Autoridade é o serviço contra o qual o token será gerado. Resource é o serviço que estamos a tentar aceder. O SDK trata da passagem destes parâmetros para o delegado quando chamado. As reivindicações são as alegações específicas do rótulo exigidas pelo serviço de proteção. Scopes são os Microsoft Entra escopos de permissão necessários para aceder ao recurso.
  • mip::AuthDelegate::OAuth2Token: O resultado do token é escrito neste objeto. Será consumido pelo SDK quando o motor estiver carregado. Fora da implementação de autenticação, não deverá ser necessário obter ou definir este valor em qualquer outro lugar.

Importante: As aplicações não invocam AcquireOAuth2Token diretamente. O SDK chamará esta função quando necessário.

Passos seguintes

Para simplificar, exemplos que demonstram o delegado irão implementar a aquisição de tokens chamando um script externo. Este script pode ser substituído por qualquer outro tipo de script, uma biblioteca OAuth2 open-source ou uma biblioteca OAuth2 personalizada.