API web yang memanggil API web: Memperoleh token untuk aplikasi

Setelah Anda membangun objek aplikasi klien, gunakan itu untuk memperoleh token yang dapat Anda gunakan guna memanggil API web.

Kode dalam pengontrol

Microsoft.Identity.Web menambahkan metode ekstensi yang menyediakan layanan kemudahan untuk memanggil Microsoft Graph atau API web downstream. Metode ini dijelaskan secara terperinci di API web yang memanggil API web: Panggil API. Dengan metode pembantu ini, Anda tidak perlu memperoleh token secara manual.

Namun, jika Anda ingin memperoleh token secara manual, kode berikut menunjukkan contoh penggunaan Microsoft.Identity.Web untuk melakukannya di pengontrol API. Ini memanggil API downstream bernama todolist. Untuk mendapat token guna memanggil API downstream, Anda memasukkan layanan ITokenAcquisition dengan injeksi dependensi di konstruktor pengontrol Anda (atau konstruktor halaman jika menggunakan Blazor), dan menggunakannya dalam tindakan pengontrol Anda, mendapatkan token untuk pengguna (GetAccessTokenForUserAsync) atau untuk aplikasi itu sendiri (GetAccessTokenForAppAsync) dalam skenario daemon.

[Authorize]
public class MyApiController : Controller
{
    /// <summary>
    /// The web API will accept only tokens 1) for users, 2) that have the `access_as_user` scope for
    /// this API.
    /// </summary>
    static readonly string[] scopeRequiredByApi = new string[] { "access_as_user" };

     static readonly string[] scopesToAccessDownstreamApi = new string[] { "api://MyTodolistService/access_as_user" };

    private readonly ITokenAcquisition _tokenAcquisition;

    public MyApiController(ITokenAcquisition tokenAcquisition)
    {
        _tokenAcquisition = tokenAcquisition;
    }

    public IActionResult Index()
    {
        HttpContext.VerifyUserHasAnyAcceptedScope(scopeRequiredByApi);

        string accessToken = _tokenAcquisition.GetAccessTokenForUserAsync(scopesToAccessDownstreamApi);
        return await callTodoListService(accessToken);
    }
}

Untuk detail tentang metode callTodoListService, lihat API web yang memanggil API web: Memanggil API.

Langkah berikutnya

Beralih ke artikel berikutnya dalam skenario ini, Panggil API web.