Aplicativos cliente públicos e confidenciais
A Biblioteca de Autenticação da Microsoft (MSAL) define dois tipos de clientes: públicos e confidenciais. Os dois tipos de cliente são diferenciados pela capacidade de autenticar com segurança com o servidor de autorização e manter a confidencialidade das credenciais do cliente.
Aplicativos cliente confidenciais são executados em servidores, como aplicativos Web, aplicativos de API Web ou aplicativos de serviço/daemon. Eles são considerados difíceis de acessar e, por esse motivo, podem 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). Esses valores são difíceis para os usuários finais extraírem. Um aplicativo Web é o cliente confidencial mais comum. A ID do cliente é exposta por meio do navegador da Web, mas o segredo é transmitido apenas no canal de apoio e nunca exposto diretamente.
Aplicativos cliente confidenciais:
Aplicativos cliente públicos são aqueles executados em dispositivos, 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 também dão suporte apenas a fluxos de clientes públicos. Os clientes públicos não podem manter segredos de tempo de configuração, portanto, eles não podem ter segredos do cliente.
Aplicativos cliente públicos:
No MSAL.js, não há separação de aplicativos cliente públicos e confidenciais. MSAL.js representa os aplicativos cliente como aplicativos baseados em agente do usuário, clientes públicos em que o código do cliente é executado em um agente do usuário como um navegador da Web. Esses clientes não armazenam segredos porque o contexto do navegador é abertamente acessível.
Comparando os tipos de cliente
A seguir estão algumas semelhanças e diferenças entre aplicativos cliente públicos e confidenciais:
- Os dois tipos de aplicativo mantêm um cache de token de usuário e podem adquirir um token silenciosamente (quando este já está no cache de token). Os aplicativos cliente confidenciais também têm um cache de token de aplicativo para tokens que são destinados ao próprio aplicativo.
- Os dois tipos de aplicativo gerenciam contas de usuário e podem obter uma conta do cache de token de usuário, obter uma conta de seu identificador ou remover uma conta.
- Os aplicativos cliente públicos têm quatro maneiras de adquirir um token, através de quatro fluxos de autenticação separados. Os aplicativos cliente confidenciais têm três maneiras de adquirir um token e uma maneira de calcular a URL do ponto de extremidade de autorização do provedor de identidade. Para obter mais informações, consulte Adquirindo tokens.
No MSAL, a ID do cliente, também chamada de ID do aplicativo ou ID do app, é passada uma vez na construção do aplicativo. Ela não precisa ser transmitida novamente quando o aplicativo adquire um token. Isso é verdadeiro para aplicativos cliente públicos e confidenciais. Os construtores de aplicativos cliente confidenciais também são credenciais de cliente transmitidas: o segredo que eles compartilham com o provedor de identidade.
Próximas etapas
Para obter mais informações sobre a configuração do aplicativo e a criação de instâncias, confira: