Compartilhar via


Conectar usuários e chamar uma API Web protegida no aplicativo iOS (Swift) de exemplo

Este guia demonstra como configurar um aplicativo móvel iOS de exemplo para conectar usuários e chamar uma API Web do ASP.NET Core protegida.

Neste artigo, você executará as seguintes tarefas:

  • Registre um aplicativo no centro de administração do Microsoft Entra.
  • Adicione uma URL de redirecionamento de plataforma.
  • Habilite fluxos de cliente públicos.
  • Atualize o arquivo de exemplo de código de configuração do iOS para usar sua própria ID externa do Microsoft Entra para obter detalhes do locatário do cliente.
  • Execute e teste o aplicativo móvel iOS de exemplo.

Pré-requisitos

  • Xcode.

  • Um locatário externo. Caso ainda não tenha uma, inscreva-se em uma avaliação gratuita.

  • Um registro de API que expõe pelo menos um escopo (permissões delegadas) e uma função de aplicativo (permissão de aplicativo), como ToDoList.Read. Caso você ainda não tenha feito isso, siga as instruções para chamar uma API em um aplicativo móvel iOS de exemplo para ter uma API Web do ASP.NET Core funcional e protegida. Certifique-se de concluir as seguintes etapas:

    • Registre um aplicativo de API Web.
    • Configure escopos de API.
    • Configure funções de aplicativo.
    • Configure declarações opcionais.
    • Clone ou baixe a API Web de exemplo.
    • Configure e execute a API Web de exemplo.

Registrar um aplicativo

Para permitir a entrada de usuários com o Microsoft Entra no seu aplicativo, a ID externa do Microsoft Entra deve estar ciente do aplicativo criado. O registro do aplicativo estabelece uma relação de confiança entre o aplicativo e o Microsoft Entra. Quando você registra um aplicativo, o External ID gera um identificador exclusivo conhecido como ID do Aplicativo (cliente), um valor usado para identificar seu aplicativo ao criar solicitações de autenticação.

As etapas a seguir mostram como registrar seu aplicativo no centro de administração do Microsoft Entra:

  1. Faça login no Centro de administração do Microsoft Entra como pelo menos um Desenvolvedor de aplicativos.

  2. Se tiver acesso a vários locatários, use o ícone Configurações no menu superior para alternar para o seu locatário externo no menu Diretórios + assinaturas.

  3. Navegue até Identidade>Aplicativos>Registros do aplicativo.

  4. Selecione + Novo Registro.

  5. Na página Registrar um aplicativo que aparece;

    1. Insira um Nome de aplicativo relevante que será exibido aos usuários do aplicativo, por exemplo,ciam-client-app.
    2. Em Tipos de contas com suporte, selecione Contas somente neste diretório organizacional.
  6. Selecione Registrar.

  7. O painel Visão geral do aplicativo será exibido após o registro bem-sucedido. Grave a ID do aplicativo (cliente) que será usada no código-fonte do aplicativo.

Adicionar uma URL de redirecionamento de plataforma

Para especificar o tipo de aplicativo para o registro do aplicativo, siga estas etapas:

  1. Em Gerenciar, selecione Autenticação.
  2. Na página Configurações da plataforma, selecione Adicionar uma plataforma e, em seguida, selecione a opção iOS/macOS.
  3. Insira a ID do Pacote do seu projeto. Se você baixou o código de exemplo, esse valor será com.microsoft.identitysample.ciam.MSALiOS.
  4. Selecione Configurar e salve a Configuração MSAL que aparece no painel de configuração do iOS/macOS para que você possa inseri-la ao configurar o seu aplicativo mais tarde.
  5. Selecione Concluído.

Habilitar fluxo de cliente público

Para identificar seu aplicativo como um cliente público, siga estas etapas:

  1. Em Gerenciar, selecione Autenticação.

  2. Em Configurações avançadas, na opção Permitir fluxos de clientes públicos, selecione Sim.

  3. Selecione Salvar para salvar as alterações.

Depois que você registra o aplicativo, ele recebe a permissão User.Read. No entanto, como o locatário é externo, os próprios usuários clientes não podem consentir com essa permissão. Você, como administrador, deve consentir com essa permissão em nome de todos os usuários no locatário:

  1. Na página Registros de aplicativo, selecione o aplicativo que você criou (como ciam-client-app) para abrir sua página Visão geral.

  2. Em Gerenciar, selecione Permissões de API.

    1. Selecione Dar consentimento de administrador para <nome do seu locatário> e selecione Sim.
    2. Selecione Atualizar a página e, a seguir verifique se Concedida para <nome do seu locatário> aparece no Status para a permissão.

Conceder permissões de API Web ao aplicativo de exemplo do iOS

Depois de registrar seu aplicativo cliente e a API Web e expor a API criando escopos, você poderá configurar as permissões do cliente para a API seguindo estas etapas:

  1. Na página Registros de aplicativo, selecione o aplicativo que você criou (como ciam-client-app) para abrir sua página Visão geral.

  2. Em Gerenciar, selecione Permissões de API.

  3. Em Permissões Configuradas, selecione Adicionar uma permissão.

  4. Selecione a guia APIs que a minha organização usa.

  5. Na lista de APIs, selecione a API como ciam-ToDoList-api.

  6. Selecione a opção Permissões delegadas.

  7. Na lista de permissões, selecione ToDoList.Read, ToDoList.ReadWrite (use a caixa de pesquisa, se necessário).

  8. Selecione o botão Adicionar permissões.

  9. Neste ponto, você atribuiu as permissões corretamente. No entanto, como o locatário é um locatário do cliente, os próprios usuários consumidores não podem consentir com essas permissões. Para resolver isso, você, como administrador, deve consentir com essas permissões em nome de todos os usuários do locatário:

    1. Selecione Dar consentimento de administrador para <nome do seu locatário> e selecione Sim.

    2. Selecione Atualizar e verifique se Concedido para <nome do seu locatário> aparece em Status para ambas as permissões.

  10. Na lista Permissões configuradas, selecione as permissões ToDoList.Read e ToDoList.ReadWrite, uma de cada vez, e copie o URI completo da permissão para uso posterior. O URI de permissão completa é semelhante a api://{clientId}/{ToDoList.Read} ou api://{clientId}/{ToDoList.ReadWrite}.

Clone o aplicativo móvel iOS de amostra

Para obter o aplicativo de exemplo, você pode cloná-lo do GitHub ou baixá-lo como um arquivo .zip.

  • Para clonar o exemplo, abra um prompt de comando e navegue até onde deseja criar o projeto e insira o seguinte comando:

    git clone https://github.com/Azure-Samples/ms-identity-ciam-browser-delegated-ios-sample.git
    

Como configurar o aplicativo móvel iOS de amostra

Para habilitar a autenticação e o acesso aos recursos da API Web, configure o exemplo seguindo estas etapas:

  1. No Xcode, abra o projeto clonado.

  2. Abra o arquivo /MSALiOS/Configuration.swift.

  3. Localize o espaço reservado:

    • Enter_the_Application_Id_Here e substitua pela ID do Aplicativo (cliente) referente ao aplicativo registrado antes.
    • Enter_the_Redirect_URI_Here e substitua-o pelo valor de kRedirectUri no arquivo de configuração da Biblioteca de Autenticação da Microsoft (MSAL) que você baixou anteriormente quando adicionou a URL de redirecionamento da plataforma.
    • Enter_the_Protected_API_Full_URL_Here e substitua-o pela URL para sua API Web. O Enter_the_Protected_API_Full_URL_Here deve incluir a URL base (a URL da API Web implantada) e o ponto de extremidade (/api/todolist) para nossa API Web ASP.NET.
    • Enter_the_Protected_API_Scopes_Here e substitua-o pelos escopos registrados em Conceder permissões de API Web ao aplicativo de exemplo do iOS.
    • Enter_the_Tenant_Subdomain_Here e substitua-o pelo subdomínio do diretório (locatário). Por exemplo, se o domínio primário do locatário for contoso.onmicrosoft.com, use contoso. Se você não sabe o subdomínio do seu locatário, confira como ler os detalhes do locatário.

Você configurou o aplicativo e ele está pronto para ser executado.

Execute o aplicativo de amostra do iOS e chame a API Web

Para criar e executar seu aplicativo, siga estas etapas:

  1. Para criar e executar seu código, selecione Executar no menu Produto no Xcode. Após uma compilação bem-sucedida, o Xcode iniciará o aplicativo de amostra no Simulador.
  2. Selecione Adquirir token interativamente para solicitar um token de acesso.
  3. Selecione API – Executar GET para chamar a API Web do ASP.NET Core configurada anteriormente. Uma chamada bem-sucedida na API Web retorna o HTTP 200, enquanto o HTTP 403 significa acesso não autorizado.