Compartilhar via


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

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

  • mip::AuthDelegate::OAuth2Challenge – uma classe que gerencia as informações de 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 de token de acesso. Depois de ser chamado pelo SDK, ele adquire o token de acesso e o fornece de volta à lógica de autenticação do SDK.

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

  • mip::Identity: a identidade do usuário ou serviço a ser autenticado, se conhecida.
  • mip::AuthDelegate::OAuth2Challenge: aceita quatro parâmetros, autoridade, recurso, declarações e escopos. Autoridade é o serviço contra o qual o token será gerado. O recurso é o serviço que estamos tentando acessar. O SDK manipulará a passagem desses parâmetros para o delegado quando chamado. Reivindicações são aquelas específicas do rótulo exigidas pelo serviço de proteção. Escopos referem-se aos 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 de nossa implementação de autenticação, não deve ser necessário obter ou definir esse valor em qualquer lugar.

Importante: Aplicativos não chamam AcquireOAuth2Token diretamente. O SDK chamará essa função quando necessário.

Próximas etapas

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 software livre ou uma biblioteca OAuth2 personalizada.