Autenticação e autorização no Serviço de Aplicativo do Azure para aplicativos móveis
Nota
Este produto está desativado. Para obter uma substituição para projetos que usam o .NET 8 ou posterior, consulte a biblioteca datasync do Kit de Ferramentas da Comunidade .
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 conectar 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.
Aviso
Este artigo aborda a v4.2.0 do SDK do Cliente dos Aplicativos Móveis do Azure. A versão atual usa um novo mecanismo de autenticação e não dá suporte à Autenticação do Serviço de Aplicativo do Azure & Autorização 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 o 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 dos Aplicativos Móveis possa conectar usuários.
Ponta
A maioria dos aplicativos deve usar um SDK do provedor para obter uma experiência mais consistente quando os usuários se conectarem, para usar o suporte à atualização de token e para obter outros benefícios especificados pelo provedor.
Quando você usa um SDK do provedor, os usuários podem entrar em uma experiência que se integra mais rigorosamente ao sistema operacional em que o aplicativo está sendo executado. Esse método também fornece um token de provedor e algumas informações do usuário sobre o cliente, o que facilita muito o consumo de APIs de grafo e personalização da experiência do usuário. Esse método é conhecido como "fluxo do cliente" ou "fluxo direcionado pelo 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.
Nota
Algumas plataformas, como o Windows (WPF), só funcionarão com um fluxo direcionado pelo cliente. Outros funcionarão igualmente bem com o fluxo do servidor e do cliente. Se a plataforma funcionar apenas com o 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 você não quiser configurar um SDK do provedor, poderá permitir que o Serviço de Aplicativo do Azure manipule a entrada para você. O SDK do cliente dos 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 pelo 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 pelo cliente
Ao usar o fluxo direcionado pelo 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 a MSAL para fazer um fluxo direcionado ao cliente no .NET em um aplicativo WPF, poderá usar o seguinte código:
var requestBody = new JObject(new JProperty("access_token", authResult.AccessToken));
var userInfo = await mobileClient.login("aad", requestBody);
O corpo da solicitação deve corresponder às expectativas, conforme estabelecido em documentação.