Explorar a Biblioteca de Autenticação da Microsoft

Concluído

A Biblioteca de Autenticação da Microsoft (MSAL) pode ser usada para fornecer acesso seguro ao Microsoft Graph, a outras APIs da Microsoft ou à sua própria API da Web. O MSAL dá suporte a várias arquiteturas e plataformas de aplicativos diferentes, incluindo .NET, JavaScript, Java, Python, Android e iOS.

A MSAL oferece muitas maneiras de obter tokens, com uma API consistente para várias plataformas. O uso da MSAL oferece os seguintes benefícios:

  • Não é necessário usar diretamente as bibliotecas OAuth ou o código no protocolo em seu aplicativo.
  • Adquire tokens em nome de um usuário ou em nome de um aplicativo (quando aplicável à plataforma).
  • Mantém um cache de token e atualiza tokens para você quando estão perto de expirar. Você não precisa lidar com a expiração de token por conta própria.
  • Ajuda a especificar em qual público você deseja que o aplicativo se conecte.
  • Ajuda você a configurar seu aplicativo com base nos arquivos de configuração.
  • Ajuda você a solucionar problemas do aplicativo expondo exceções, log e telemetria acionáveis.

Tipos e cenários de aplicativos

Na MSAL, um token pode ser adquirido de vários tipos de aplicativos: aplicativos da Web, APIs da Web, aplicativos de página única (JavaScript), aplicativos móveis e nativos, daemons e aplicativos do lado do servidor. Atualmente, a MSAL dá suporte às plataformas e estruturas listadas na tabela a seguir.

Biblioteca Plataformas e estruturas compatíveis
MSAL para Android Android
MSAL Angular Aplicativos de página única com estruturas Angular e Angular.js
MSAL para iOS e macOS iOS e macOS
MSAL Go (visualização) Windows, macOS, Linux
MSAL Java Windows, macOS, Linux
MSAL.js Estruturas de JavaScript/TypeScript, como Vue.js, Ember.js ou Durandal.js
MSAL.NET .NET Framework, .NET Core, Xamarin Android, Xamarin iOS, Plataforma Universal do Windows
Nó MSAL Aplicativos Web com Expresso, aplicativos da área de trabalho com Electron, aplicativos de console de plataforma cruzada
MSAL Python Windows, macOS, Linux
MSAL React Aplicativos de página única com bibliotecas baseadas em reagir e reagir (Next.js, Gatsby.js)

Fluxos de autenticação

A tabela a seguir mostra alguns dos diferentes fluxos de autenticação fornecidos pela MSAL (Biblioteca de Autenticação da Microsoft). Esses fluxos podem ser usados em uma variedade de cenários de aplicativo diferentes.

Flow Descrição
Código de Autorização Aplicativos Web e nativos obtêm tokens com segurança no nome do usuário
Credenciais do cliente Aplicativos de serviço executados sem interação do usuário
On-behalf-of O aplicativo chama uma API de serviço/Web, que, por sua vez, chama o Microsoft Graph
Implícita Usado em aplicativos baseados em navegador
Código do dispositivo Habilita a entrada em um dispositivo usando outro dispositivo que tem um navegador
Windows integrado Computadores Windows adquirem silenciosamente um token de acesso quando estão ingressados no domínio
Interativo Aplicativos móveis e para desktops chamam o Microsoft Graph em nome de um usuário
Nome de usuário/senha O aplicativo conecta um usuário usando seu nome de usuário e senha

Aplicativos cliente públicos e confidenciais

Vários tipos de aplicativos podem adquirir tokens de segurança. Esses aplicativos tendem a ser separados nas duas categorias a seguir. Cada uma é usada com diferentes bibliotecas e objetos.

  • Aplicativos cliente públicos: são aplicativos executados em dispositivos ou computadores desktop ou em um navegador da Web. Eles não são confiáveis para manter segredos do aplicativo com segurança e, portanto, acessam apenas APIs da Web em nome do usuário. (Eles são compatíveis apenas com fluxos de clientes públicos.) Os clientes públicos não podem conter segredos de tempo de configuração, portanto, não têm segredos de cliente.

  • Aplicativos cliente confidenciais: são aplicativos executados em servidores (aplicativos Web, aplicativos de API Web ou até mesmo aplicativos de serviço/daemon). Eles são considerados difíceis de acessar e, por esse motivo, capazes de manter um segredo do aplicativo. Os clientes confidenciais podem conter segredos de tempo de configuração. Cada instância do cliente tem uma configuração distinta (incluindo a ID e o segredo do cliente).