Configure o seu app service ou app Funções Azure para usar login Azure ADConfigure your App Service or Azure Functions app to use Azure AD login

Este artigo mostra-lhe como configurar o Azure App Service ou as Funções Azure para utilizar o Azure Ative Directory (Azure AD) como fornecedor de autenticação.This article shows you how to configure Azure App Service or Azure Functions to use Azure Active Directory (Azure AD) as an authentication provider.

Nota

O fluxo de definições expressas configura um registo de aplicação AAD V1.The express settings flow sets up an AAD V1 application registration. Se desejar utilizar o Diretório Ativo Azure v2.0 (incluindo o MSAL),siga as instruções avançadasde configuração .If you wish to use Azure Active Directory v2.0 (including MSAL), please follow the advanced configuration instructions.

Siga estas boas práticas ao configurar a sua app e autenticação:Follow these best practices when setting up your app and authentication:

  • Dê a cada app do App Service as suas próprias permissões e consentimento.Give each App Service app its own permissions and consent.
  • Configure cada app do App Service com o seu próprio registo.Configure each App Service app with its own registration.
  • Evite a partilha de permissões entre ambientes utilizando registos de aplicações separados para slots de implementação separados.Avoid permission sharing between environments by using separate app registrations for separate deployment slots. Ao testar um novo código, esta prática pode ajudar a evitar que problemas afetem a aplicação de produção.When testing new code, this practice can help prevent issues from affecting the production app.

Nota

Esta funcionalidade não está atualmente disponível no plano de consumo linux para funções azureThis feature is currently not available on Linux Consumption plan for Azure Functions

Configure com configurações expressas Configure with express settings

Nota

A opção Express não está disponível para nuvens governamentais.The Express option is not available for government clouds.

  1. No [portal Azure,]procure e selecione Serviços de Aplicaçõese, em seguida, selecione a sua aplicação.In the Azure portal, search for and select App Services, and then select your app.

  2. A partir da navegação à esquerda, selecione Autenticação / Autorização > On.From the left navigation, select Authentication / Authorization > On.

  3. Selecione Azure Ative Directory > Express.Select Azure Active Directory > Express.

    Se quiser escolher um registo de aplicação existente:If you want to choose an existing app registration instead:

    1. Escolha a aplicação AD existentee, em seguida, clique na aplicação AD Azure.Choose Select Existing AD app, then click Azure AD App.
    2. Escolha o registo de uma aplicação existente e clique em OK.Choose an existing app registration and click OK.
  4. Selecione OK para registar a app Service no Diretório Ativo Azure.Select OK to register the App Service app in Azure Active Directory. É criado um novo registo de aplicações.A new app registration is created.

    Configurações expressas em Diretório Ativo Azure

  5. (Opcional) Por padrão, o Serviço de Aplicações fornece a autenticação, mas não restringe o acesso autorizado aos conteúdos e APIs do seu site.(Optional) By default, App Service provides authentication but doesn't restrict authorized access to your site content and APIs. Tem de autorizar os utilizadores no seu código de aplicações.You must authorize users in your app code. Para restringir o acesso à aplicação apenas aos utilizadores autenticados pelo Diretório Ativo do Azure, deteteto a Ação a tomar quando o pedido não for autenticado para iniciar sessão com o Diretório Ativo do Azure.To restrict app access only to users authenticated by Azure Active Directory, set Action to take when request is not authenticated to Log in with Azure Active Directory. Ao definir esta funcionalidade, a sua aplicação requer que todos os pedidos sejam autenticados.When you set this functionality, your app requires all requests to be authenticated. Também redireciona todos os não autenticados para o Diretório Ativo Azure para autenticação.It also redirects all unauthenticated to Azure Active Directory for authentication.

    Atenção

    Restringir o acesso desta forma aplica-se a todas as chamadas para a sua app, o que pode não ser desejável para aplicações que tenham uma página inicial disponível ao público, como em muitas aplicações de página única.Restricting access in this way applies to all calls to your app, which might not be desirable for apps that have a publicly available home page, as in many single-page applications. Para tais aplicações, permitir pedidos anónimos (nenhuma ação) pode ser preferido, com a aplicação a iniciar o login manualmente em si.For such applications, Allow anonymous requests (no action) might be preferred, with the app manually starting login itself. Para mais informações, consulte o fluxo de autenticação.For more information, see Authentication flow.

  6. Selecione Guardar.Select Save.

Configurar com configurações avançadas Configure with advanced settings

Pode configurar manualmente as definições de aplicações se pretender utilizar um registo de aplicações de um inquilino Azure AD diferente.You can configure app settings manually if you want to use an app registration from a different Azure AD tenant. Para completar esta configuração personalizada:To complete this custom configuration:

  1. Crie uma inscrição em Azure AD.Create a registration in Azure AD.
  2. Forneça alguns dos dados de registo ao Serviço de Aplicações.Provide some of the registration details to App Service.

Crie um registo de aplicativos no Azure AD para a sua app App Service Create an app registration in Azure AD for your App Service app

Necessitará das seguintes informações quando configurar a sua aplicação de Serviço de Aplicações:You'll need the following information when you configure your App Service app:

  • ID de ClienteClient ID
  • ID do inquilinoTenant ID
  • Segredo do cliente (opcional)Client secret (optional)
  • ID de aplicação URIApplication ID URI

Execute os seguintes passos:Perform the following steps:

  1. Inscreva-se no [portal Azure,]procure e selecione Serviços de Aplicações, e depois selecione a sua aplicação.Sign in to the Azure portal, search for and select App Services, and then select your app. Tenha em anotao o URLda sua aplicação.Note your app's URL. Irá usá-lo para configurar o registo da sua aplicação Azure Ative Directory.You'll use it to configure your Azure Active Directory app registration.

  2. Selecione Registos de Aplicações de Diretório Ativo AzureNovas > App registrations > inscrições.Select Azure Active Directory > App registrations > New registration.

  3. Na página do Registo de inscrição, insira um Nome para o registo da sua aplicação.In the Register an application page, enter a Name for your app registration.

  4. Em Redirecione URI, selecione Web e escreva <app-url>/.auth/login/aad/callback .In Redirect URI, select Web and type <app-url>/.auth/login/aad/callback. Por exemplo, https://contoso.azurewebsites.net/.auth/login/aad/callback.For example, https://contoso.azurewebsites.net/.auth/login/aad/callback.

  5. Selecione Criar.Select Create.

  6. Após a criação do registo da aplicação, copie o ID da Aplicação (cliente) e o ID do Diretório (inquilino) para mais tarde.After the app registration is created, copy the Application (client) ID and the Directory (tenant) ID for later.

  7. Selecione Autenticação.Select Authentication. Sob a subvenção Implícita, ative fichas de ID para permitir o openID Connect user sign-ins do Serviço de Aplicações.Under Implicit grant, enable ID tokens to allow OpenID Connect user sign-ins from App Service.

  8. (Opcional) Selecione Branding.(Optional) Select Branding. No URL da página inicial, introduza o URL da sua aplicação App Service e selecione Guardar.In Home page URL, enter the URL of your App Service app and select Save.

  9. Selecione Expor um conjunto API > Set.Select Expose an API > Set. Para aplicativo de inquilino único, colhe no URL da sua app App Service e selecione Save e para aplicação multi-inquilino, cola no URL que é baseado em um dos domínios verificados pelo inquilino e, em seguida, selecione Save.For single-tenant app, paste in the URL of your App Service app and select Save and for multi-tenant app, paste in the URL which is based on one of tenant verified domains and then select Save.

    Nota

    Este valor é o ID DE Aplicação URI do registo da aplicação.This value is the Application ID URI of the app registration. Se a sua aplicação web necessitar de acesso a uma API na nuvem, precisa do ID URI da aplicação web quando configurar o recurso cloud App Service.If your web app requires access to an API in the cloud, you need the Application ID URI of the web app when you configure the cloud App Service resource. Pode usá-lo, por exemplo, se quiser que o serviço de nuvem conceda explicitamente acesso à aplicação web.You can use this, for example, if you want the cloud service to explicitly grant access to the web app.

  10. Selecione Adicionar âmbito.Select Add a scope.

    1. No nome Scope, introduza user_impersonation.In Scope name, enter user_impersonation.
    2. Nas caixas de texto, introduza o nome e descrição do âmbito de consentimento que pretende que os utilizadores vejam na página de consentimento.In the text boxes, enter the consent scope name and description you want users to see on the consent page. Por exemplo, insira Aceder à minha aplicação.For example, enter Access my app.
    3. Selecione Adicionar âmbito.Select Add scope.
  11. (Opcional) Para criar um segredo de cliente, selecione Certificados & segredos > Novo segredo do cliente > Adicionar.(Optional) To create a client secret, select Certificates & secrets > New client secret > Add. Copie o valor secreto do cliente mostrado na página.Copy the client secret value shown in the page. Não voltará a ser mostrado.It won't be shown again.

  12. (Opcional) Para adicionar vários URLsde Resposta, selecione Autenticação.(Optional) To add multiple Reply URLs, select Authentication.

Ativar o Diretório Ativo Azure na sua app App Service Enable Azure Active Directory in your App Service app

  1. No [portal Azure,]procure e selecione Serviços de Aplicaçõese, em seguida, selecione a sua aplicação.In the Azure portal, search for and select App Services, and then select your app.

  2. No painel esquerdo, em Definições, selecione Autenticação / Autorização > Ligado.In the left pane, under Settings, select Authentication / Authorization > On.

  3. (Opcional) Por defeito, a autenticação do Serviço de Aplicações permite o acesso não autenticado à sua aplicação.(Optional) By default, App Service authentication allows unauthenticated access to your app. Para impor a autenticação do utilizador, detete a Ação a tomar quando o pedido não for autenticado para iniciar sessão com o Diretório Ativo Azure.To enforce user authentication, set Action to take when request is not authenticated to Log in with Azure Active Directory.

  4. No âmbito dos Fornecedores de Autenticação, selecione Diretório Ativo Azure.Under Authentication Providers, select Azure Active Directory.

  5. No modo de Gestão, selecione autenticação avançada e configure o Serviço de Aplicações de acordo com a tabela seguinte:In Management mode, select Advanced and configure App Service authentication according to the following table:

    CampoField DescriçãoDescription
    ID de ClienteClient ID Utilize a identificação da Aplicação (cliente) do registo da aplicação.Use the Application (client) ID of the app registration.
    Url de emitenteIssuer Url Utilize , e substitua o <authentication-endpoint>/<tenant-id>/v2.0 ponto final da * < autenticação>* pelo ponto final de autenticação para o seu ambiente em nuvem (por exemplo, https://login.microsoft.com " para o Global Azure), substituindo também * <>de identificação de inquilinos* pelo ID do Diretório (inquilino) no qual foi criado o registo da aplicação.Use <authentication-endpoint>/<tenant-id>/v2.0, and replace <authentication-endpoint> with the authentication endpoint for your cloud environment (e.g., "https://login.microsoft.com" for global Azure), also replacing <tenant-id> with the Directory (tenant) ID in which the app registration was created. Este valor é utilizado para redirecionar os utilizadores para o inquilino da AD Azure correto, bem como para descarregar os metadados apropriados para determinar as chaves de assinatura simbólicas apropriadas e o valor de reclamação de emitente simbólico, por exemplo.This value is used to redirect users to the correct Azure AD tenant, as well as to download the appropriate metadata to determine the appropriate token signing keys and token issuer claim value for example. A /v2.0 secção pode ser omitida para aplicações utilizando AAD v1.The /v2.0 section may be omitted for applications using AAD v1.
    Segredo de Cliente (Opcional)Client Secret (Optional) Use o segredo do cliente gerado no registo da aplicação.Use the client secret you generated in the app registration.
    Audiências simbólicas permitidasAllowed Token Audiences Se se trata de uma aplicação de nuvem ou servidor e pretende permitir fichas de autenticação a partir de uma aplicação web, adicione o ID URI da aplicação web aqui.If this is a cloud or server app and you want to allow authentication tokens from a web app, add the Application ID URI of the web app here. O ID do cliente configurado é sempre considerado implicitamente como um público permitido.The configured Client ID is always implicitly considered to be an allowed audience.
  6. Selecione OK, e, em seguida, selecione Guardar.Select OK, and then select Save.

Está agora pronto para utilizar o Diretório Ativo Azure para autenticação na sua aplicação App Service.You're now ready to use Azure Active Directory for authentication in your App Service app.

Configurar uma aplicação de cliente nativoConfigure a native client application

Pode registar clientes nativos para permitir a autenticação na Web API's hospedada na sua aplicação utilizando uma biblioteca de clientes como a Biblioteca de Autenticação de DirectórioAtivo Ativo.You can register native clients to allow authentication to Web API's hosted in your app using a client library such as the Active Directory Authentication Library.

  1. No [portal Azure,]selecione Registos de Aplicações de Diretório Ativo > App registrations > Novo registo.In the Azure portal, select Active Directory > App registrations > New registration.

  2. Na página do Registo de inscrição, insira um Nome para o registo da sua aplicação.In the Register an application page, enter a Name for your app registration.

  3. No Redirect URI, selecione cliente público (mobile & desktop) e escreva o URL <app-url>/.auth/login/aad/callback .In Redirect URI, select Public client (mobile & desktop) and type the URL <app-url>/.auth/login/aad/callback. Por exemplo, https://contoso.azurewebsites.net/.auth/login/aad/callback.For example, https://contoso.azurewebsites.net/.auth/login/aad/callback.

    Nota

    Para uma aplicação da Microsoft Store, utilize o pacote SID como URI.For a Microsoft Store application, use the package SID as the URI instead.

  4. Selecione Criar.Select Create.

  5. Após a criação do registo da aplicação, copie o valor do ID da Aplicação (cliente).After the app registration is created, copy the value of Application (client) ID.

  6. Selecione permissões API > Adicione uma permissão > As minhas APIs.Select API permissions > Add a permission > My APIs.

  7. Selecione o registo de aplicações que criou anteriormente para a sua aplicação App Service.Select the app registration you created earlier for your App Service app. Se não vir o registo da aplicação, certifique-se de que adicionou o âmbito de user_impersonation em Criar uma inscrição de aplicação no Azure AD paraa sua app App Service .If you don't see the app registration, make sure that you've added the user_impersonation scope in Create an app registration in Azure AD for your App Service app.

  8. Sob permissões delegadas, selecione user_impersonation, e, em seguida, selecione Adicionar permissões.Under Delegated permissions, select user_impersonation, and then select Add permissions.

Já configurou uma aplicação de cliente nativo que pode aceder à sua aplicação de Serviço de Aplicações em nome de um utilizador.You have now configured a native client application that can access your App Service app on behalf of a user.

Configure uma aplicação de cliente daemon para chamadas de serviço a serviçoConfigure a daemon client application for service-to-service calls

A sua aplicação pode adquirir um símbolo para chamar uma API Web hospedada na sua app De Serviço ou Função de Aplicação (não em nome de um utilizador).Your application can acquire a token to call a Web API hosted in your App Service or Function app on behalf of itself (not on behalf of a user). Este cenário é útil para aplicações daemon não interativas que executam tarefas sem um registo registado no utilizador.This scenario is useful for non-interactive daemon applications that perform tasks without a logged in user. Usa a bolsa padrão de credenciais de clientes OAuth 2.0.It uses the standard OAuth 2.0 client credentials grant.

  1. No [portal Azure,]selecione Registos de Aplicações de Diretório Ativo > App registrations > Novo registo.In the Azure portal, select Active Directory > App registrations > New registration.
  2. Na página do Registo de uma aplicação, insira um Nome para o registo da sua aplicação daemon.In the Register an application page, enter a Name for your daemon app registration.
  3. Para uma aplicação daemon, você não precisa de um Uri Redirecion para que possa manter isso vazio.For a daemon application, you don't need a Redirect URI so you can keep that empty.
  4. Selecione Criar.Select Create.
  5. Após a criação do registo da aplicação, copie o valor do ID da Aplicação (cliente).After the app registration is created, copy the value of Application (client) ID.
  6. Selecione Certificados & segredos > Novo segredo do cliente > Adicionar.Select Certificates & secrets > New client secret > Add. Copie o valor secreto do cliente mostrado na página.Copy the client secret value shown in the page. Não voltará a ser mostrado.It won't be shown again.

Pode agora solicitar um sinal de acesso utilizando o ID do cliente e o segredo do cliente, definindo o parâmetro para o ID DE resource Aplicação URI da aplicação alvo.You can now request an access token using the client ID and client secret by setting the resource parameter to the Application ID URI of the target app. O token de acesso resultante pode então ser apresentado à app-alvo utilizando o cabeçalho de autorização padrão OAuth 2.0, e a Autenticação/Autorização do Serviço de Aplicações validará e utilizará o símbolo como de costume para indicar agora que o chamador (uma aplicação neste caso, não um utilizador) é autenticado.The resulting access token can then be presented to the target app using the standard OAuth 2.0 Authorization header, and App Service Authentication / Authorization will validate and use the token as usual to now indicate that the caller (an application in this case, not a user) is authenticated.

Atualmente, isto permite que qualquer aplicação de cliente no seu inquilino Azure AD solicite um token de acesso e autenticar a app alvo.At present, this allows any client application in your Azure AD tenant to request an access token and authenticate to the target app. Se também pretende impor autorização para permitir apenas determinadas aplicações de clientes, deve realizar alguma configuração adicional.If you also want to enforce authorization to allow only certain client applications, you must perform some additional configuration.

  1. Defina uma Função de Aplicação no manifesto do registo da aplicação que representa o Serviço de Aplicações ou app 'Função' que pretende proteger.Define an App Role in the manifest of the app registration representing the App Service or Function app you want to protect.
  2. No registo da aplicação que representa o cliente que precisa de ser autorizado, selecione permissões API > Adicione uma permissão > As minhas APIs.On the app registration representing the client that needs to be authorized, select API permissions > Add a permission > My APIs.
  3. Selecione o registo da aplicação que criou anteriormente.Select the app registration you created earlier. Se não vir o registo da aplicação, certifique-se de que adicionou uma Função de Aplicação.If you don't see the app registration, make sure that you've added an App Role.
  4. Sob permissões de Aplicação, selecione a Função app que criou anteriormente e, em seguida, selecione Adicionar permissões.Under Application permissions, select the App Role you created earlier, and then select Add permissions.
  5. Certifique-se de clicar no consentimento do administrador da Grant para autorizar o pedido do cliente para solicitar a permissão.Make sure to click Grant admin consent to authorize the client application to request the permission.
  6. À semelhança do cenário anterior (antes de serem adicionadas quaisquer funções), pode agora solicitar um sinal de acesso para o mesmo alvo , e o sinal de acesso incluirá uma resource reclamação contendo as Funções de roles Aplicação que foram autorizadas para a aplicação do cliente.Similar to the previous scenario (before any roles were added), you can now request an access token for the same target resource, and the access token will include a roles claim containing the App Roles that were authorized for the client application.
  7. Dentro do código de aplicação target App Service ou Função, pode agora validar que as funções esperadas estão presentes no token (isto não é executado por Autenticação/Autorização do Serviço de Aplicação).Within the target App Service or Function app code, you can now validate that the expected roles are present in the token (this is not performed by App Service Authentication / Authorization). Para mais informações, consulte as reclamações dos utilizadoresdo Access.For more information, see Access user claims.

Já configurou uma aplicação de cliente daemon que pode aceder à sua aplicação App Service usando a sua própria identidade.You have now configured a daemon client application that can access your App Service app using its own identity.

Próximos passos Next steps