Autenticação e autorização no Serviço de Aplicativo do Azure para aplicativos móveis
Observação
Este produto foi retirado. Para obter uma substituição para projetos que usam o .NET 8 ou posterior, consulte a biblioteca Community Toolkit Datasync.
Este artigo descreve como a autenticação e a autorização funcionam ao desenvolver aplicativos móveis nativos com um back-end do Serviço de Aplicativo. O Serviço de Aplicativo fornece autenticação e autorização integradas, para que seus aplicativos móveis possam entrar usuários sem alterar nenhum código no Serviço de Aplicativo. Ele fornece uma maneira fácil de proteger seu aplicativo e trabalhar com dados por usuário.
Advertência
Este artigo aborda a v4.2.0 do SDK do Cliente de Aplicativos Móveis do Azure. A versão atual usa um novo mecanismo de autenticação e não oferece suporte à Autenticação & Autorização do Serviço de Aplicativo do Azure da mesma maneira.
Para obter informações sobre como a autenticação e a autorização funcionam no Serviço de Aplicativo, consulte Autenticação e autorização no Serviço de Aplicativo do Azure.
Autenticação com SDK do provedor
Depois que tudo estiver configurado no Serviço de Aplicativo, você poderá modificar os clientes móveis para entrar com o Serviço de Aplicativo. Há duas abordagens aqui:
- Use um SDK que um determinado provedor de identidade publica para estabelecer a identidade e, em seguida, obter acesso ao Serviço de Aplicativo.
- Use uma única linha de código para que o SDK do cliente de Aplicativos Móveis possa entrar nos usuários.
Dica
A maioria dos aplicativos deve usar um SDK de provedor para obter uma experiência mais consistente quando os usuários entrarem, para usar o suporte de atualização de token e para obter outros benefícios especificados pelo provedor.
Quando você usa um SDK de provedor, os usuários podem entrar em uma experiência que se integra mais firmemente com o sistema operacional no qual o aplicativo está sendo executado. Esse método também fornece um token de provedor e algumas informações do usuário no cliente, o que torna muito mais fácil consumir APIs gráficas e personalizar a experiência do usuário. Esse método é conhecido como "fluxo do cliente" ou "fluxo direcionado ao cliente" porque o código no cliente entra nos usuários.
Depois que um token de provedor é obtido, ele precisa ser enviado ao Serviço de Aplicativo para validação. O Serviço de Aplicativo do Azure valida o token. Em seguida, o serviço cria um novo token para o cliente. O SDK do cliente de Aplicativos Móveis tem métodos auxiliares para gerenciar essa troca e anexar automaticamente o token a todas as solicitações ao back-end do aplicativo. Você também pode manter uma referência ao token do provedor.
Observação
Algumas plataformas, como o Windows (WPF), SÓ funcionarão com um fluxo direcionado ao cliente. Outros funcionarão igualmente bem com o fluxo de servidor e cliente. Se a plataforma só funciona com fluxo direcionado ao cliente, o guia de início rápido mostrará isso.
Para obter mais informações sobre o fluxo de autenticação, consulte fluxo de autenticação do Serviço de Aplicativo.
Autenticação sem SDK do provedor
Se não quiser configurar um SDK de provedor, você pode permitir que o Serviço de Aplicativo do Azure manipule a entrada para você. O SDK do cliente de Aplicativos Móveis do Azure abrirá uma exibição da Web para o provedor de sua escolha e entrará no usuário. Esse método é chamado de "fluxo do servidor" ou "fluxo direcionado ao servidor" porque o servidor gerencia o processo que entra nos usuários. O SDK do cliente nunca recebe o token do provedor.
Enviando um token do fluxo direcionado ao cliente
Ao usar o fluxo direcionado ao cliente, primeiro obtenha as informações relevantes de que o Serviço de Aplicativo do Azure precisa para validar o token. Na maioria dos casos, o token será um token de acesso. Para obter mais informações, consulte a documentação do Serviço de Aplicativo do Azure.
Em seguida, você pode criar o objeto JSON apropriado. Por exemplo, se você estiver usando o MSAL para fazer um fluxo direcionado ao cliente no .NET em um aplicativo WPF, você pode usar o seguinte código:
var requestBody = new JObject(new JProperty("access_token", authResult.AccessToken));
var userInfo = await mobileClient.login("aad", requestBody);
O organismo requerente deve corresponder às expectativas estabelecidas em a documentação.