Início Rápido: Adicionar entrada com a Microsoft para um aplicativo Web do ASP.NET CoreQuickstart: Add sign-in with Microsoft to an ASP.NET Core web app

Aplica-se a:Applies to:
  • ponto de extremidade da plataforma de identidade da MicrosoftMicrosoft identity platform endpoint

Neste início rápido, você aprenderá como um aplicativo Web ASP.NET Core pode autenticar contas pessoais (hotmail.com, outlook.com, outras) e contas corporativas e de estudante de qualquer instância do Azure AD (Azure Active Directory).In this quickstart, you'll learn how an ASP.NET Core web app can sign in personal accounts (hotmail.com, outlook.com, others) and work and school accounts from any Azure Active Directory (Azure AD) instance.

Mostra como o aplicativo de exemplo gerado por este início rápido funciona

Registrar e baixar o aplicativo de início rápidoRegister and download your quickstart app

Você tem duas opções para iniciar o aplicativo de início rápido:You have two options to start your quickstart application:

Opção 1: Registrar e configurar o aplicativo automaticamente e, em seguida, baixar seu exemplo de códigoOption 1: Register and auto configure your app and then download your code sample

  1. Acesse o portal do Azure – Registros de aplicativo.Go to the Azure portal - App registrations.
  2. Insira um nome para seu aplicativo e selecione Registrar.Enter a name for your application and select Register.
  3. Siga as instruções para baixar e configurar automaticamente o novo aplicativo com apenas um clique.Follow the instructions to download and automatically configure your new application for you in one click.

Opção 2: Registrar e configurar manualmente o aplicativo e o exemplo de códigoOption 2: Register and manually configure your application and code sample

Etapa 1: Registre seu aplicativoStep 1: Register your application

Para registrar seu aplicativo e adicionar manualmente as informações de registro do aplicativo à solução, execute estas etapas:To register your application and manually add the app's registration information to your solution, follow these steps:

  1. Entre no portal do Azure usando uma conta corporativa ou de estudante ou uma conta pessoal da Microsoft.Sign in to the Azure portal using either a work or school account, or a personal Microsoft account.
  2. Se sua conta fornecer acesso a mais de um locatário, selecione sua conta no canto superior direito e defina sua sessão do portal para o locatário desejado do Azure AD.If your account gives you access to more than one tenant, select your account in the top right corner, and set your portal session to the desired Azure AD tenant.
  3. Navegue até a página Registros de aplicativo da plataforma de identidade da Microsoft para desenvolvedores.Navigate to the Microsoft identity platform for developers App registrations page.
  4. Selecione Novo registro.Select New registration.
  5. Quando a página Registrar um aplicativo for exibida, insira as informações de registro do aplicativo:When the Register an application page appears, enter your application's registration information:
    • Na seção Nome, insira um nome de aplicativo relevante que será exibido aos usuários do aplicativo, por exemplo, AspNetCore-Quickstart.In the Name section, enter a meaningful application name that will be displayed to users of the app, for example AspNetCore-Quickstart.
    • Na URI de redirecionamento, adicione https://localhost:44321/ e selecione Registrar.In Redirect URI, add https://localhost:44321/, and select Register.
  6. Selecione o menu Autenticação e, em seguida, adicione as seguintes informações:Select the Authentication menu, and then add the following information:
    • Nas URIs de redirecionamento, adicione https://localhost:44321/signin-oidc e selecione Salvar.In Redirect URIs, add https://localhost:44321/signin-oidc, and select Save.
    • Na seção Configurações avançadas, defina URL de Saída como https://localhost:44321/signout-oidc.In the Advanced settings section, set Logout URL to https://localhost:44321/signout-oidc.
    • Sob Concessão implícita, marque Tokens de ID.Under Implicit grant, check ID tokens.
    • Clique em Salvar.Select Save.

Etapa 1: Configurar seu aplicativo no portal do AzureStep 1: Configure your application in the Azure portal

Para que o exemplo de código deste início rápido funcione, você precisa adicionar URLs de resposta como https://localhost:44321/ e https://localhost:44321/signin-oidc, adicionar a URL de logoff como https://localhost:44321/signout-oidc e solicitar a emissão de tokens de ID pelo ponto de extremidade de autorização.For the code sample for this quickstart to work, you need to add reply URLs as https://localhost:44321/ and https://localhost:44321/signin-oidc, add the Logout URL as https://localhost:44321/signout-oidc, and request ID tokens to be issued by the authorization endpoint.

Já configurado Seu aplicativo já está configurado com esses atributos.Already configured Your application is configured with these attributes.

Etapa 2: Baixar o projeto do ASP.NET CoreStep 2: Download your ASP.NET Core project

Etapa 3: Configurar o projeto do Visual StudioStep 3: Configure your Visual Studio project

  1. Extraia o arquivo zip para uma pasta local na pasta raiz, por exemplo, C:\Azure-SamplesExtract the zip file to a local folder within the root folder - for example, C:\Azure-Samples

  2. Se você usa o Visual Studio 2019, abra a solução no Visual Studio (opcional).If you use Visual Studio 2019, open the solution in Visual Studio (optional).

  3. Edite o arquivo appsettings.json.Edit the appsettings.json file. Localize ClientId e atualize o valor de ClientId com o valor da ID do Aplicativo (cliente) do aplicativo que você registrou.Find ClientId and update the value of ClientId with the Application (client) ID value of the application you registered.

    "ClientId": "Enter_the_Application_Id_here"
    "TenantId": "Enter_the_Tenant_Info_Here"
    

Observação

Este guia de início rápido oferece suporte a Enter_the_Supported_Account_Info_Here.This quickstart supports Enter_the_Supported_Account_Info_Here.

Em que:Where:

  • Enter_the_Application_Id_here - é a ID do aplicativo (cliente) para o aplicativo registrado no portal do Azure.Enter_the_Application_Id_here - is the Application (client) ID for the application you registered in the Azure portal. Você pode encontrar ID do aplicativo (cliente) na página Visão geral do aplicativo.You can find Application (client) ID in the app's Overview page.
  • Enter_the_Tenant_Info_Here - é uma das seguintes opções:Enter_the_Tenant_Info_Here - is one of the following options:
    • Se seu aplicativo dá suporte a Contas apenas neste diretório organizacional, substitua esse valor pela ID do Locatário ou pelo Nome do locatário (por exemplo, contoso.microsoft.com)If your application supports Accounts in this organizational directory only, replace this value with the Tenant ID or Tenant name (for example, contoso.microsoft.com)
    • Se seu aplicativo dá suporte a Contas em qualquer diretório organizacional, substitua esse valor por organizationsIf your application supports Accounts in any organizational directory, replace this value with organizations
    • Se seu aplicativo dá suporte a Todos os usuários de contas da Microsoft, substitua esse valor por commonIf your application supports All Microsoft account users, replace this value with common

Dica

Para encontrar os valores de ID do aplicativo (cliente) , ID de diretório (locatário) e Tipos de conta com suporte, vá para a página Visão Geral do aplicativo no portal do Azure.To find the values of Application (client) ID, Directory (tenant) ID, and Supported account types, go to the app's Overview page in the Azure portal.

Mais informaçõesMore information

Esta seção apresenta uma visão geral do código necessário para a entrada de usuários.This section gives an overview of the code required to sign in users. Essa visão geral pode ser útil para entender como o código funciona, os argumentos principais e também caso você queira adicionar entrada a um aplicativo ASP.NET Core existente.This overview can be useful to understand how the code works, main arguments, and also if you want to add sign-in to an existing ASP.NET Core application.

Classe de inicializaçãoStartup class

O middleware Microsoft.AspNetCore.Authentication usa a classe de inicialização executada quando o processo de hospedagem é inicializado:Microsoft.AspNetCore.Authentication middleware uses a Startup class that is executed when the hosting process initializes:

public void ConfigureServices(IServiceCollection services)
{
  services.Configure<CookiePolicyOptions>(options =>
  {
    // This lambda determines whether user consent for non-essential cookies is needed for a given request.
    options.CheckConsentNeeded = context => true;
    options.MinimumSameSitePolicy = SameSiteMode.None;
  });

  services.AddAuthentication(AzureADDefaults.AuthenticationScheme)
          .AddAzureAD(options => Configuration.Bind("AzureAd", options));

  services.Configure<OpenIdConnectOptions>(AzureADDefaults.OpenIdScheme, options =>
  {
    options.Authority = options.Authority + "/v2.0/";         // Microsoft identity platform

    options.TokenValidationParameters.ValidateIssuer = false; // accept several tenants (here simplified)
  });

  services.AddMvc(options =>
  {
     var policy = new AuthorizationPolicyBuilder()
                     .RequireAuthenticatedUser()
                     .Build();
     options.Filters.Add(new AuthorizeFilter(policy));
  })
  .SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
}

O método AddAuthentication configura o serviço para adicionar a autenticação baseada em cookies, que é usada em cenários do navegador, e para definir o desafio para OpenId Connect.The method AddAuthentication configures the service to add cookie-based authentication, which is used on browser scenarios and to set the challenge to OpenID Connect.

A linha que contém .AddAzureAd adiciona a autenticação de plataforma de identidade da Microsoft ao seu aplicativo.The line containing .AddAzureAd adds the Microsoft identity platform authentication to your application. Em seguida, ele é configurado para se conectar usando o ponto de extremidade de plataforma de identidade da Microsoft.It's then configured to sign in using the Microsoft identity platform endpoint.

WhereWhere
ClientIdClientId ID do aplicativo (cliente) do aplicativo registrado no portal do Azure.Application (client) ID from the application registered in the Azure portal.
AuthorityAuthority O ponto de extremidade do STS para o usuário autenticar.The STS endpoint for the user to authenticate. Geralmente, é https://login.microsoftonline.com/{tenant}/v2.0 para a nuvem pública, em que {tenant} é o nome ou Id do seu locatário, ou common para uma referência ao ponto de extremidade comum (usado para aplicativos multilocatário)Usually, this is https://login.microsoftonline.com/{tenant}/v2.0 for public cloud, where {tenant} is the name of your tenant or your tenant ID, or common for a reference to the common endpoint (used for multi-tenant applications)
TokenValidationParametersTokenValidationParameters Uma lista de parâmetros para validação de token.A list of parameters for token validation. Nesse caso, ValidateIssuer é definido como false para indicar que pode aceitar entradas de quaisquer contas corporativas, de estudante ou pessoais.In this case, ValidateIssuer is set to false to indicate that it can accept sign-ins from any personal, or work or school accounts.

Observação

A configuração de ValidateIssuer = false é uma simplificação para este início rápido.Setting ValidateIssuer = false is a simplification for this quickstart. Em aplicativos reais, você precisa validar o emissor.In real applications you need to validate the issuer. Consulte os exemplos para entender como fazer isso.See the samples to understand how to do that.

Proteger um controlador ou um método do controladorProtect a controller or a controller's method

Você pode proteger um controlador ou métodos do controlador usando o atributo [Authorize].You can protect a controller or controller methods using the [Authorize] attribute. Esse atributo restringe o acesso ao controlador ou aos métodos, permitindo apenas usuários autenticados, ou seja, o desafio de autenticação poderá ser iniciado para acessar o controlador se o usuário não estiver autenticado.This attribute restricts access to the controller or methods by only allowing authenticated users, which means that authentication challenge can be started to access the controller if the user isn't authenticated.

Ajuda e suporteHelp and support

Se você precisar de Ajuda, quiser relatar um problema ou aprender mais sobre as opções de suporte, consulte o seguinte artigo:If you need help, want to report an issue, or want to learn more about your support options, see the following article:

Próximas etapasNext steps

Confira o repositório do GitHub para este tutorial do ASP.NET Core para obter mais informações, incluindo instruções sobre como adicionar autenticação a um novo aplicativo Web do ASP.NET Core, como chamar o Microsoft Graph e outras APIs da Microsoft, como chamar suas próprias APIs, como adicionar autorização, como conectar usuários nas nuvens nacionais ou com identidades sociais e muito mais:Check out the GitHub repo for this ASP.NET Core tutorial for more information including instructions on how to add authentication to a brand new ASP.NET Core Web application, how to call Microsoft Graph, and other Microsoft APIs, how to call your own APIs, how to add authorization, how to sign in users in national clouds, or with social identities and more:

Ajude-nos a melhorar a plataforma de identidade da Microsoft.Help us improve the Microsoft identity platform. Deixe sua opinião respondendo a uma breve pesquisa de duas perguntas.Tell us what you think by completing a short two-question survey.