Este tutorial mostra como criar uma API Web ASP.NET, hospedá-la em aplicativos Web do Azure, habilitar a autenticação do Azure Active Directory e, em seguida, registrar a API Web ASP.NET no PowerApps.

Pré-requisitos

Criar uma API Web ASP.NET e implantá-la no Azure

  1. No Visual Studio, clique em Arquivo > Novo Projeto para criar um novo aplicativo Web ASP.NET C#.

    Novo aplicativo Web

  2. Selecione o modelo de API Web. Deixe Host na nuvem marcado. Clique em Alterar autenticação.

    Novo modelo de projeto Web

  3. Selecione Sem autenticação e, em seguida, clique em OK.

    Sem autenticação

  4. Clique em OK na caixa de diálogo Novo projeto ASP.NET. A caixa de diálogo Configurar aplicativo Web do Microsoft Azure aparece.

    Configurar aplicativo Web do Microsoft Azure ]

    Selecione sua conta do Azure, digite um nome do aplicativo Web (ou deixe o padrão) e selecione a Assinatura do Azure. Selecione ou crie um Plano do Serviço de Aplicativo (uma coleção de aplicativos Web dentro de sua assinatura). Selecione ou crie uma Grupo de recursos (um agrupamento de recursos do Azure em sua assinatura). Selecione a região na qual o aplicativo Web deve ser implantado. Se for necessário para sua API Web, selecione ou crie um Servidor de banco de dados do Azure. Por fim, clique em OK.

  5. Crie sua API Web.

    Observação:

    Para se familiarizar com a API Web ASP.NET, você pode tentar alguns dos tutoriais oficiais.

  6. Para conectar sua API Web ao PowerApps, é necessário um arquivo Swagger que descreve suas operações. Você poderia escrever um Swagger próprio nosso usando o editor online, mas, para este tutorial, você usará uma ferramenta de código-fonte aberto chamada Swashbuckle. Instale o pacote do Swashbuckle Nuget no projeto do Visual Studio, clicando em Ferramentas > NuGet Package Manager > Package Manager Console e, em seguida, no pacote Manager Console, digite o comando Install-Package Swashbuckle.

    Pacote de instalação Swashbuckle

    Dica:

    Quando você executa o aplicativo de API Web depois de instalar o Swashbuckle, um arquivo do Swagger será gerado na URL http://<your root URL>/swagger/docs/v1. Uma interface do usuário gerada também estará disponível em http://<your root URL>/swagger.

  7. Quando sua API Web estiver pronta, publique-a no Azure. Para publicar no Visual Studio, clique com o botão direito do mouse no projeto Web no Gerenciador de Soluções, clique em Publicar... e, em seguida, siga as instruções na caixa de diálogo Publicar.

  8. Recupere o Swagger JSON indo até https://<azure-webapp-url>/swagger/docs/v1. Salve o conteúdo como um arquivo JSON. Dependendo do seu navegador, você precisará copiar e colar o texto em um arquivo de texto vazio.

    Importante:

    Um documento do Swagger com IDs de operação duplicadas será inválido. Se você estiver usando o modelo C# de exemplo, a ID da operação Values_Get será repetida duas vezes. Você pode corrigir isso alterando uma instância para Value_Get e publicando-a novamente.

    Também é possível baixar um Swagger de exemplo deste tutorial. Certifique-se de remover os comentários (começando com //) antes de usá-lo.

Configurar autenticação do Azure Active Directory

Agora, você criará alguns aplicativos do Azure Active Directory (AAD) no Azure. Para obter um exemplo de como fazer isso, consulte o tutorial do Azure Resource Manager. Você precisará de dois aplicativos AAD para este tutorial.

Importante:

Ambos os aplicativos devem estar no mesmo diretório.

Primeiro aplicativo AAD: proteção da API Web

O primeiro aplicativo AAD é usado para proteger a API Web. Chame-o de webAPI. Siga as etapas do tutorial vinculadas acima (apenas a seção intitulada *Habilitar a autenticação no Azure Active Directory) com os seguintes valores:

  • URL de Entrada:https://login.windows.net
  • URL de resposta: https://<your-root-url>/.auth/login/aad/callback
  • Não é necessária uma chave de cliente.
  • Não é necessário delegar permissões.
  • Importante! Anote a ID do aplicativo. Você precisará dela mais tarde.

Segundo aplicativo AAD: Proteção da API personalizada e acesso delegado

O segundo aplicativo AAD é usado para proteger o registro de API personalizada e adquirir acesso delegado à API Web protegida pelo primeiro aplicativo. Nomeie esse como webAPI-customAPI.

  • URL de Entrada: https://login.windows.net
  • URL de resposta: https://msmanaged-na.consent.azure-apim.net/redirect
  • Adicione permissões para ter acesso delegado à API Web.
  • Você também precisará da ID do aplicativo desse aplicativo mais tarde, portanto, anote-a.
  • Gere uma chave de cliente e armazene-a em algum lugar seguro. Precisaremos dessa chave mais tarde.

Adicionar autenticação ao seu aplicativo Web do Azure

  1. Conecte-se ao Portal do Azure e localize o aplicativo Web implantado na primeira seção.
  2. Clique em Configurações e, em seguida, selecione Autenticação / Autorização.
  3. Ative Autenticação do Serviço de Aplicativo e, em seguida, selecione Azure Active Directory. Na próxima folha, selecione Expresso.
  4. Clique em Selecionar aplicativo AD existente e selecione o aplicativo AAD webAPI criado anteriormente.

Agora, você poderá usar o AAD para autenticar seu aplicativo Web.

Adicionar a API personalizada ao PowerApps

  1. Modifique o Swagger para adicionar o objeto securityDefintions e a autenticação do AAD usada para o aplicativo Web. A seção de seu Swagger com a propriedade host deve ter esta aparência:
// File header should be above here...

"host": "<your-root-url>",
"schemes": [
    "https"         //Make sure this is https!
],
"securityDefinitions": {
    "AAD": {
        "type": "oauth2",
        "flow": "implicit",
        "authorizationUrl": "https://login.windows.net/common/oauth2/authorize",
        "scopes": {}
    }
},

// The rest of the Swagger follows...
  1. Navegue até PowerApps e adicione uma API personalizada conforme descrito em O que são APIs personalizadas.

  2. Depois de carregar o Swagger, o assistente detecta automaticamente que você está usando a autenticação do AAD para sua API Web.

  3. Configure a autenticação do AAD para a API personalizada.

    • ID do cliente: ID do cliente de webAPI-CustomAPI
    • Segredo: Chave do cliente de webAPI-CustomAPI
    • URL de logon: https://login.windows.net
    • ResourceUri: ID do cliente de webAPI
  4. Clique em Criar e crie uma conexão com a API personalizada.

Próximas etapas

Faça o Tutorial do Azure Resource Manager da API personalizada.

Para obter mais informações sobre como criar um aplicativo, consulte Criar um aplicativo de dados.

Para obter mais informações sobre como usar um fluxo em um aplicativo, confira Como iniciar um fluxo em um aplicativo.

Para fazer perguntas ou comentários sobre as APIs personalizadas, participe de nossa comunidade.