Volání podřízeného webového rozhraní API z aplikace démona

Aplikace démona .NET můžou volat webové rozhraní API. Aplikace démona .NET můžou také volat několik předschválené webové rozhraní API.

Volání webového rozhraní API z aplikace démona

Tady je postup, jak pomocí tokenu volat rozhraní API:

Microsoft.Identity.Web abstrahuje složitost MSAL.NET. Poskytuje rozhraní API vyšší úrovně, která zpracovávají interní MSAL.NET za vás, jako je zpracování chyb podmíněného přístupu, ukládání do mezipaměti.

Tady je Program.cs aplikace démona, která volá podřízené rozhraní API:

using Microsoft.Extensions.DependencyInjection;
using Microsoft.Identity.Abstractions;
using Microsoft.Identity.Web;

// In the Program.cs, acquire a token for your downstream API

var tokenAcquirerFactory = TokenAcquirerFactory.GetDefaultInstance();
tokenAcquirerFactory.Services.AddDownstreamApi("MyApi",
    tokenAcquirerFactory.Configuration.GetSection("MyWebApi"));
var sp = tokenAcquirerFactory.Build();

var api = sp.GetRequiredService<IDownstreamApi>();
var result = await api.GetForAppAsync<IEnumerable<TodoItem>>("MyApi");
Console.WriteLine($"result = {result?.Count()}");

Tady je Program.cs aplikace démona, která volá Microsoft Graph:

var tokenAcquirerFactory = TokenAcquirerFactory.GetDefaultInstance();
tokenAcquirerFactory.Services.AddMicrosoftGraph();
var serviceProvider = tokenAcquirerFactory.Build();
try
{
    GraphServiceClient graphServiceClient = serviceProvider.GetRequiredService<GraphServiceClient>();
    var users = await graphServiceClient.Users
        .GetAsync(r => r.Options.WithAppOnly());
    Console.WriteLine($"{users.Count} users");
    Console.ReadKey();
}
catch (Exception ex) { Console.WriteLine("We could not retrieve the user's list: " + $"{ex}"); }

Volání několika rozhraní API

U aplikací démona musí být webová rozhraní API, která voláte, předem schválena. U aplikací démona neexistuje žádný přírůstkový souhlas. (Neexistuje žádná interakce uživatele.) Správce tenanta musí předem poskytnout souhlas pro aplikaci a všechna oprávnění rozhraní API. Pokud chcete volat několik rozhraní API, získejte token pro každý prostředek při každém volání AcquireTokenForClient. MsAL používá mezipaměť tokenů aplikace, aby se zabránilo zbytečným voláním služby.

Další kroky

Přechod na další článek v tomto scénáři– Přechod do produkčního prostředí