Compartilhar via


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

A autenticação no SDK da PIM é 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 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, 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 de 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, reivindicações e escopos. Autoridade é o serviço contra o qual o token será gerado. Recurso é o serviço que estamos tentando acessar. O SDK manipulará a transmissão 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 são aqueles da permissão do Microsoft Entra necessários para acessar o recurso.
  • mip::AuthDelegate::OAuth2Token: o resultado do token é gravado nesse 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 chamam AcquireOAuth2Token diretamente. O SDK chamará essa função quando for 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 código aberto ou personalizada.