Compartilhar via


Faça login de utilizadores e chame uma API na aplicação móvel iOS de exemplo utilizando autenticação nativa

Aplica-se a: Círculo branco com um símbolo X cinzento. Os inquilinos do Workforce Círculo verde com um sinal de visto branco. Inquilinos externos (saber mais)

Neste guia de início rápido, você aprenderá a configurar o aplicativo de exemplo do iOS para chamar uma API da Web ASP.NET Core.

Pré-requisitos

Registrar um aplicativo de API da Web

  1. Entre no centro de administração do Microsoft Entra como pelo menos um Desenvolvedor de Aplicações.

  2. Se tiver acesso a vários locatários, utilize o ícone Definições no menu do topo para alternar para o seu locatário externo a partir do menu Diretórios + subscrições.

  3. Navegue até Identidade>Aplicações>Registos de aplicações.

  4. Selecione + Novo registo.

  5. Na página Registrar um aplicativo exibida, insira as informações de registro do seu aplicativo:

    1. Na seção Nome, insira um nome de aplicativo significativo que será exibido para os usuários do aplicativo, por exemplo, ciam-ToDoList-api.

    2. Em Tipos de conta suportados, selecione Contas apenas neste diretório organizacional.

  6. Selecione Registrar para criar o aplicativo.

  7. O painel Visão geral do aplicativo é exibido quando o registo é concluído. Registe o ID do Diretório (locatário) e o ID da Aplicação (cliente) para serem usados no código-fonte da sua aplicação.

Configurar escopos de API

Uma API precisa publicar um mínimo de um escopo, também chamado de de Permissão Delegada, para que os aplicativos cliente obtenham um token de acesso para um usuário com êxito. Para publicar um escopo, siga estas etapas:

  1. Na página Registros de aplicativos, selecione o aplicativo de API que você criou (ciam-ToDoList-api) para abrir sua página Visão Geral.

  2. Em Gerenciar, selecione Expor uma API.

  3. Na parte superior da página, ao lado de URI de ID do Aplicativo, seleciona o link Adicionar para gerar um URI único para esta app.

  4. Aceite o URI de ID do aplicativo proposto, como api://{clientId}, e selecione Salvar. Quando seu aplicativo Web solicita um token de acesso para a API da Web, ele adiciona o URI como o prefixo para cada escopo que você define para a API.

  5. Em Escopos definidos por esta API, selecione Adicionar um escopo.

  6. Insira os seguintes valores que definem um acesso de leitura à API e selecione Adicionar escopo para salvar as alterações:

    Propriedade Valor
    Nome do escopo ToDoList.Read
    Quem pode consentir apenas administradores
    Nome de exibição do consentimento do administrador Leia a lista de tarefas dos utilizadores usando o 'TodoListApi'
    Descrição do consentimento do administrador Permitir que a aplicação leia a lista de tarefas do utilizador usando a 'TodoListApi'.
    Estado ativado
  7. Selecione Adicionar um escopo novamente e insira os seguintes valores que definem um escopo de acesso de leitura e gravação à API. Selecione Adicionar escopo para salvar as suas alterações.

    Propriedade Valor
    Nome do escopo ListaDeTarefas.LeituraEscrita
    Quem pode consentir apenas administradores
    Nome de exibição do consentimento do administrador Ler e escrever a lista de tarefas dos utilizadores utilizando a 'ToDoListApi'
    Descrição do consentimento do administrador Permitir que a aplicação leia e escreva a lista de tarefas do usuário usando o 'ToDoListApi'
    Estado ativado
  8. Em Gerir, selecione Manifesto para abrir o editor de manifesto da API.

  9. Defina a propriedade accessTokenAcceptedVersion para 2.

  10. Selecione Salvar.

Saiba mais sobre como o princípio de menor privilégio ao publicar permissões para uma API da Web.

Configurar funções do aplicativo

Uma API precisa publicar pelo menos uma função de aplicativo, também chamada de de Permissão de Aplicação, para que os aplicativos cliente obtenham um token de acesso para si próprios. As permissões de aplicativo são o tipo de permissões que as APIs devem publicar quando desejam permitir que os aplicativos cliente se autentiquem por si próprios e não precisem efetuar login de utilizadores. Para publicar uma permissão de aplicativo, execute estas etapas:

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

  2. Em Gerenciar, selecione Funções do aplicativo.

  3. Selecione Criar função de aplicativo e, em seguida, insira os seguintes valores e selecione Aplicar para salvar as alterações:

    Propriedade Valor
    Nome para exibição ToDoList.Read.All
    Tipos de membros permitidos Aplicações
    Valor ToDoList.Read.All
    Descrição Permita que a aplicação leia a lista de ToDo de cada usuário usando o 'TodoListApi'
  4. Selecione Criar função de aplicativo novamente, insira os seguintes valores para a segunda função de aplicativo e selecione Aplicar para salvar as alterações:

    Propriedade Valor
    Nome para exibição ToDoList.ReadWrite.All
    Tipos de membros permitidos Aplicações
    Valor ToDoList.ReadWrite.All
    Descrição Permita que a aplicação leia e escreva a lista de tarefas de cada usuário usando a 'ToDoListApi'

Configurar declarações opcionais

Você pode adicionar a afirmação opcional idtyp para ajudar a API Web a determinar se um token é um token de aplicativo ou um token de aplicativo e usuário. Embora você possa usar uma combinação de scp e funções declarações para a mesma finalidade, usar a declaração idtyp é a maneira mais fácil de diferenciar um token de aplicativo e um token de aplicativo + usuário. Por exemplo, o valor desta declaração é app quando o token é exclusivamente um token de aplicativo.

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

Depois de registrar seu aplicativo cliente e 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 Registos de Aplicação, selecione a aplicação que criou (como ciam-client-app) para abrir a 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 aba que a minha organização utiliza nas APIs.

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

  6. Selecione 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 Atualizare, em seguida, verifique se Concedido para <o nome do locatário> aparece em Status para ambas as permissões.

  10. Na lista de permissões configuradas , selecione as permissões ToDoList.Read e ToDoList.ReadWrite, uma a uma, e depois 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}.

Clonar ou baixar exemplo de API da Web

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-dotnet-tutorial.git
    
  • Baixe o arquivo .zip. Extraia-o para um caminho de arquivo onde o comprimento do nome é inferior a 260 caracteres.

Configurar e executar API Web de exemplo

  1. No editor de códigos, abra o arquivo 2-Authorization/1-call-own-api-aspnet-core-mvc/ToDoListAPI/appsettings.json.

  2. Encontre o espaço reservado:

    • Enter_the_Application_Id_Here e substitua-o pelo ID de Aplicação (cliente) da API da Web que copiou anteriormente.
    • Enter_the_Tenant_Id_Here e substitua-o pelo ID do Directory (locatário) você copiou anteriormente.
    • 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 tiver o nome do seu inquilino, saiba como ler as informações do inquilino.

Para que a aplicação de exemplo iOS possa chamá-la, é necessário hospedar a sua API Web. Siga o Guia de Início Rápido: implantar uma aplicação web ASP.NET para implementar a sua API da Web.

Configurar exemplo de aplicativo móvel iOS para chamar a API da Web

O exemplo permite configurar vários endpoints de URL da API Web e conjuntos de âmbitos. Neste caso, configura-se apenas um ponto de extremidade de URL da API Web e os seus escopos associados.

  1. No Xcode, abra o arquivo /NativeAuthSampleApp/ProtectedAPIViewController.swift. Se estiveres a usar o macOS, aqui está um exemplo de arquivo de código ProtectedAPIViewController.swift.

  2. Encontre protectedAPIUrl1 e insira o URL da API web como o seu valor.

    let protectedAPIUrl1: String? = nil // Developers should set the respective URL of their web API here. For example let protectedAPIUrl1: String? = "https://api.example.com/v1/resource"
    
  3. Encontre protectedAPIScopes1 e, em seguida, defina os escopos registados em para conceder permissões de API à aplicação de exemplo iOS.

    let protectedAPIScopes1: [String] = [] // Developers should set the respective scopes of their web API here.For example, let protectedAPIScopes = ["api://{clientId}/{ToDoList.Read}","api://{clientId}/{ToDoList.ReadWrite}"]
    

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 Product no Xcode. Após uma compilação bem-sucedida, o Xcode iniciará o aplicativo de exemplo no simulador.
  2. Selecione a guia API para testar a chamada de API. Uma chamada bem-sucedida para a API da Web retorna HTTP 200, enquanto HTTP 403 significa acesso não autorizado.

Próximos passos