Partilhar via


Inicie sessão em utilizadores e chame uma API Web protegida na aplicação iOS (Swift) de exemplo

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

Neste artigo, você executa as seguintes tarefas:

  • Registe uma aplicação no centro de administração do Microsoft Entra.
  • Adicione um URL de redirecionamento de plataforma.
  • Habilite fluxos de clientes 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. Se ainda não tiver uma, inscreva-se para 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. Se ainda não o fez, siga as instruções para chamar uma API em um aplicativo móvel iOS de exemplo para ter uma API da Web ASP.NET Core protegida funcionalmente. Certifique-se de concluir as seguintes etapas:

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

Registar uma aplicação

Para permitir que seu aplicativo entre usuários com o Microsoft Entra, a ID Externa do Microsoft Entra deve estar ciente do aplicativo criado. O registo da aplicação estabelece uma relação de confiança entre a aplicação e o Microsoft Entra. Quando você registra um aplicativo, o ID externo 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. Entre no centro de administração do Microsoft Entra como pelo menos um desenvolvedor de aplicativos.

  2. Se tiver acesso a vários inquilinos, utilize o ícone Definições no menu superior para mudar para o inquilino externo a partir do menu Diretórios + subscrições.

  3. Navegue até Registros do aplicativo Identity>Applications>.

  4. Selecione + Novo registo.

  5. Na página Registar uma candidatura que aparece;

    1. Insira um Nome de aplicativo significativo que é exibido para os usuários do aplicativo, por exemplo, ciam-client-app.
    2. Em Tipos de conta suportados, selecione Contas somente neste diretório organizacional.
  6. Selecione Registar.

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

Adicionar um URL de redirecionamento de plataforma

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

  1. Em Gerir, 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 o ID do pacote do seu projeto. Se você baixou o código de exemplo, esse valor é com.microsoft.identitysample.ciam.MSALiOS.
  4. Selecione Configurar e salvar a Configuração MSAL que aparece no painel de configuração do iOS / macOS para que você possa inseri-la quando configurar seu aplicativo mais tarde.
  5. Selecionar Concluído.

Habilitar o fluxo público de clientes

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

  1. Em Gerir, selecione Autenticação.

  2. Em Configurações avançadas, para Permitir fluxos de clientes públicos, selecione Sim.

  3. Selecione Guardar para guardar as alterações.

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

  2. Em Gerenciar, selecione Permissões de API. Na lista Permissões configuradas, seu aplicativo recebeu a permissão User.Read. No entanto, como o locatário é um locatário externo, os próprios usuários consumidores 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. Selecione Conceder consentimento de administrador para <o nome> do seu inquilino e, em seguida, selecione Sim.
    2. Selecione Atualizar e verifique se Concedido para <o nome> do locatário aparece em Status para ambos os escopos.

Conceder permissões de API da Web para o aplicativo de exemplo do iOS

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

  1. Na página Registros de aplicativos, selecione o aplicativo que você criou (como ciam-client-app) para abrir a 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 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 é locatário de um 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 no locatário:

    1. Selecione Conceder consentimento de administrador para <o nome> do seu inquilino e, em seguida, selecione Sim.

    2. Selecione Atualizar e verifique se Concedido para <o nome> do 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 total é semelhante a api://{clientId}/{ToDoList.Read} ou api://{clientId}/{ToDoList.ReadWrite}.

Exemplo de clonagem de aplicativo móvel iOS

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 digite o seguinte comando:

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

Configurar o aplicativo móvel iOS de exemplo

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

  1. No Xcode, abra o projeto que você clonou.

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

  3. Encontre o espaço reservado:

    • Enter_the_Application_Id_Heree substitua-o pelo ID do aplicativo (cliente) do aplicativo que você registrou anteriormente.
    • Enter_the_Redirect_URI_Heree substitua-o pelo valor de kRedirectUri no arquivo de configuração da Microsoft Authentication Library (MSAL) que você baixou anteriormente quando adicionou a URL de redirecionamento da plataforma.
    • Enter_the_Protected_API_Full_URL_Here e substitua-o pelo URL da sua API Web. O Enter_the_Protected_API_Full_URL_Here deve incluir a URL base (a URL da API da Web implantada) e o ponto de extremidade (/api/todolist) para nossa API da Web ASP.NET.
    • Enter_the_Protected_API_Scopes_Here e substitua-o pelos escopos registrados em Conceder permissões de API da Web para o aplicativo de exemplo do iOS.
    • Enter_the_Tenant_Subdomain_Here e substitua-o pelo subdomínio Directory (locatário). Por exemplo, se o domínio principal do locatário for contoso.onmicrosoft.com, use contoso. Se não souber o subdomínio do inquilino, saiba como ler os detalhes do inquilino.

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

Execute o aplicativo de exemplo do iOS e chame a API da 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 exemplo no simulador.
  2. Selecione Adquirir token interativamente para solicitar um token de acesso.
  3. Selecione API - Execute GET para chamar a API Web principal do ASP.NET configurada anteriormente. Uma chamada bem-sucedida para a API da Web retorna HTTP 200, enquanto HTTP 403 significa acesso não autorizado.