Visão geral do Microsoft Identity Web

Microsoft. Identity.Web é um conjunto de bibliotecas que simplifica a adição de autenticação e autorização a aplicações que se integram com a plataforma de identidades da Microsoft, incluindo o Microsoft Entra ID. Apoia:

  • .NET Aspire aplicações distribuídas
  • ASP.NET Core aplicações web e APIs web
  • Aplicações OWIN no .NET Framework
  • .NET aplicações de demónios e serviços em segundo plano

Quer você crie aplicações web que façam login para utilizadores, APIs web que validam tokens ou serviços em segundo plano que chamam APIs protegidas, o Microsoft.Identity.Web trata da complexidade da autenticação por si.

Porque usar o Microsoft Identity Web?

Microsoft. O Identity.Web reduz o código padrão e fornece boas práticas incorporadas para cenários comuns de identidade. As capacidades-chave incluem:

  • Autenticação simplificada - Configuração mínima para iniciar sessão de utilizadores e validar tokens
  • Chamadas de API Downstream - Faça chamadas aos Microsoft Graph, SDKs do Azure ou às suas próprias APIs protegidas com gestão automática de tokens.
    • Aquisição de tokens - Adquira tokens em nome dos utilizadores ou da sua aplicação
    • Gestão de cache de tokens - Suporte de cache distribuída com Redis, SQL Server, Cosmos DB e PostgreSQL
  • Múltiplos tipos de credenciais - Suporte para certificados, identidades geridas e autenticação sem certificado
  • Cabeçalhos de autorização automática - A autenticação é tratada de forma transparente ao chamar APIs

Consulte os pacotes NuGet para uma visão geral de todos os pacotes disponíveis e quando os utilizar.

APIs de chamadas com autenticação automática

Pode chamar APIs protegidas sem gerir manualmente os tokens. Microsoft. O Identity.Web suporta os seguintes padrões de integração:

  • Microsoft Graph - Usar GraphServiceClient com aquisição automática de tokens
  • SDKs do Azure - Use implementações TokenCredential que se integrem com Microsoft. Identity.Web
  • As suas próprias APIs - Use IDownstreamApi ou IAuthorizationHeaderProvider para chamadas de API fluidas
  • Identidades de agentes - Invocar APIs em nome de identidades geridas ou entidades de serviço com gestão automática de credenciais.

Cabeçalhos de autenticação são adicionados automaticamente aos seus pedidos, e os tokens são adquiridos e armazenados em cache de forma transparente. Para mais detalhes, consulte Chamadas a APIs em downstream, Aplicações Daemon e o Guia de Identidades de Agentes.

Abordagens de configuração

Podes configurar a Microsoft. Identity.Web através de ficheiros de definições ou programaticamente. Ambas as abordagens suportam todos os cenários de autenticação.

Configurar autenticação em appsettings.json:

{
  "AzureAd": {
    "Instance": "https://login.microsoftonline.com/",
    "TenantId": "your-tenant-id",
    "ClientId": "your-client-id"
  }
}

Importante

Para aplicações de daemon e consolas, certifique-se de que o seu appsettings.json ficheiro é copiado para o diretório de saída. No Visual Studio, defina a propriedade Copy to Output Directory para Copiar se for mais recente ou Copiar sempre, ou adicione o seguinte ao seu .csproj:

<ItemGroup>
  <None Update="appsettings.json">
    <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
  </None>
</ItemGroup>

Configuração por código

Alternativamente, configure a autenticação diretamente no código de arranque da sua aplicação:

builder.Services.AddAuthentication(OpenIdConnectDefaults.AuthenticationScheme)
    .AddMicrosoftIdentityWebApp(options =>
    {
        options.Instance = "https://login.microsoftonline.com/";
        options.TenantId = "your-tenant-id";
        options.ClientId = "your-client-id";
    });

Próximos passos

Escolha o cenário que corresponda à sua aplicação: