SDK da Proteção de Informações da Microsoft - Conceitos de autenticação

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

  • mip::AuthDelegate::OAuth2Challenge - uma classe que gerencia as informações da autoridade OAuth2 e fornece ao aplicativo cliente.
  • mip::AuthDelegate::OAuth2Token - uma classe gerencia a aquisição de token de acesso OAuth2 (do aplicativo cliente) e o armazenamento de tokens.
  • mip::AuthDelegate::AcquireOAuth2Token() - uma função virtual pura, cuja implementação determina o método de aquisição do token de acesso. Depois de ser chamado pelo SDK, ele adquire o token de acesso e, em seguida, o fornece de volta à lógica de autenticação do SDK.

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

  • mip::Identity: A identidade do usuário ou serviço a ser autenticado, se conhecido.
  • mip::AuthDelegate::OAuth2Challenge: Aceita quatro parâmetros, autoridade, recurso, declarações e escopos. Autoridade é o serviço contra o qual o token será gerado. Recurso é o serviço que estamos tentando acessar. O SDK tratará de passar esses parâmetros para o delegado quando chamado. As declarações são as reivindicações específicas do rótulo exigidas pelo serviço de proteção. Escopos são os escopos de permissão do Microsoft Entra necessários para acessar o recurso.
  • mip::AuthDelegate::OAuth2Token: O resultado do token é gravado neste objeto. Ele será consumido pelo SDK quando o mecanismo for carregado. Fora da nossa implementação de autenticação, não deve ser necessário obter ou definir esse valor em qualquer lugar.

Importante: Os aplicativos não ligam AcquireOAuth2Token diretamente. O SDK chamará essa função quando necessário.

Próximos passos

Para simplificar, os exemplos que demonstram o delegado implementarão a aquisição de token chamando um script externo. Esse script pode ser substituído por qualquer outro tipo de script, uma biblioteca OAuth2 de código aberto ou uma biblioteca OAuth2 personalizada.