Bagikan melalui


Skenario: Aplikasi Web (Aplikasi Server) memanggil API Web

Berlaku untuk: Windows Server 2022, Windows Server 2019, AD FS 2019 dan yang lebih baru

Pelajari cara membuat pengguna masuk aplikasi web yang diautentikasi oleh AD FS 2019 dan memperoleh token menggunakan pustaka MSAL untuk memanggil API web.

Sebelum membaca artikel ini, Anda harus terbiasa dengan konsep LAYANAN Federasi Direktori Aktif dan alur pemberian kode otorisasi

Gambaran Umum

Overview of web app calling web api

Dalam alur ini, Anda menambahkan autentikasi ke Aplikasi Web (Aplikasi Server), yang karenanya dapat memasukkan pengguna dan memanggil API web. Dari Aplikasi Web, untuk memanggil API Web, gunakan metode akuisisi token AcquireTokenByAuthorizationCode MSAL. Anda menggunakan alur kode Otorisasi, menyimpan token yang diperoleh dalam cache token. Kemudian pengontrol memperoleh token secara diam-diam dari cache saat diperlukan. MSAL menyegarkan token jika diperlukan.

Web Apps yang memanggil API Web:

  • adalah aplikasi klien rahasia.
  • mendaftarkan rahasia (rahasia bersama aplikasi, sertifikat, atau akun AD) dengan Layanan Federasi Direktori Aktif. Rahasia ini diteruskan selama panggilan ke Layanan Federasi Direktori Aktif untuk mendapatkan token.

Untuk mendaftarkan Aplikasi Web di Layanan Federasi Direktori Aktif dan mengonfigurasinya untuk memperoleh token untuk memanggil API Web, mari kita gunakan sampel yang tersedia di sini dan menelusuri langkah-langkah pendaftaran aplikasi dan konfigurasi kode.

Prasyarat

  • Alat klien GitHub
  • Layanan Federasi Direktori Aktif 2019 atau yang lebih baru dikonfigurasi dan dijalankan
  • Visual Studio 2013 atau yang lebih baru

Pendaftaran Aplikasi di Layanan Federasi Direktori Aktif

Bagian ini menunjukkan cara mendaftarkan Aplikasi Web sebagai klien rahasia dan API Web sebagai Pihak Yang Mengandalkan (RP) di Layanan Federasi Direktori Aktif.

  1. Di Manajemen AD FS, klik kanan pada Grup Aplikasi dan pilih Tambahkan Grup Aplikasi.

  2. Pada Wizard Grup Aplikasi, untuk Nama masukkan WebAppToWebApi dan di bawah Aplikasi Client-Server pilih aplikasi Server yang mengakses templat API Web. Klik Berikutnya.

    Screenshot of the Welcome page of the Add Application Group Wizard showing the Server application accessing a web A P I template highlighted.

  3. Salin nilai Pengidentifikasi Klien. Nilai digunakan nanti sebagai nilai untuk ida:ClientId dalam file Web.config aplikasi. Masukkan yang berikut ini untuk URI Pengalihan: - https://localhost:44326. Klik Tambahkan. Klik Berikutnya.

    Screenshot of the Server application page of the Add Application Group Wizard showing the correct client identifier and redirect U R I.

  4. Pada layar Konfigurasikan Kredensial Aplikasi, tempatkan check-in Hasilkan rahasia bersama dan salin rahasia. Rahasia ini digunakan nanti sebagai nilai untuk ida:ClientSecret dalam file web.config aplikasi. Klik Berikutnya.

    Screenshot of the Configure Application Credentials application page of the Add Application Group Wizard showing the Generate a shared secret option selected and the generated shared secret populated.

  5. Pada layar KonfigurasiKAN API Web, masukkan Pengidentifikasi:https://webapi. Klik Tambahkan. Klik Berikutnya. Nilai ini digunakan nanti untuk ida:GraphResourceId dalam file Web.config aplikasi.

    Screenshot of the Configure Web API page of the Add Application Group Wizard showing the correct identifier.

  6. Pada layar Terapkan Kebijakan Kontrol Akses, pilih Izinkan semua orang dan klik Berikutnya.

    Screenshot of the Choose Access Control Policy page of the Add Application Group Wizard showing the Permit everyone option highlighted.

  7. Pada layar Konfigurasikan Izin Aplikasi, pastikan openid dan user_impersonation dipilih dan klik Berikutnya.

    Screenshot of the Configure Application Permissions page of the Add Application Group Wizard showing the open I D and user impersonation options selected.

  8. Pada layar Ringkasan, klik Berikutnya.

  9. Pada layar Selesai, klik Tutup.

Konfigurasi Kode

Bagian ini menunjukkan cara mengonfigurasi ASP.NET Web App untuk masuk ke pengguna dan mengambil token untuk memanggil API Web

  1. Unduh sampel dari sini

  2. Buka sampel menggunakan Visual Studio

  3. Buka file web.config. Ubah yang berikut ini:

    • ida:ClientId - masukkan nilai Pengidentifikasi Klien dari #3 di bagian Pendaftaran Aplikasi di Layanan Federasi Direktori Aktif.

    • ida:ClientSecret - masukkan nilai Rahasia dari #4 di bagian Pendaftaran Aplikasi di Layanan Federasi Direktori Aktif.

    • ida:RedirectUri - masukkan nilai URI Pengalihan dari #3 di bagian Pendaftaran Aplikasi di Layanan Federasi Direktori Aktif.

    • ida:Authority - masukkan https://[nama host LAYANAN Federasi Direktori Aktif Anda]/adfs. Misalnya, https://adfs.contoso.com/adfs

    • ida:Resource - masukkan nilai Pengidentifikasi dari #5 di bagian Pendaftaran Aplikasi di Layanan Federasi Direktori Aktif.

      Screenshot of the web config file showing the modified values.

Uji sampel

Bagian ini menunjukkan cara menguji sampel yang dikonfigurasi.

  1. Setelah perubahan kode dibuat, bangun kembali solusi.

  2. Di bagian atas Visual Studio, pastikan Internet Explorer dipilih dan klik panah hijau.

    Screenshot of the Visual Studio UI with the IIS Express (Internet Explorer) option called out.

  3. Pada Halaman Beranda, klik Masuk.

    Screenshot of the Home Page with the Sign in option called out.

  4. Anda akan diarahkan kembali ke halaman masuk Layanan Federasi Direktori Aktif. Lanjutkan dan masuk.

    Screenshot of the Sign in page.

  5. Setelah masuk, klik Token Akses.

    Screenshot of the Home Page with the Access Token option called out.

  6. Mengklik Token Akses mendapatkan info token akses dengan memanggil API Web.

    Screenshot of the Access Token page showing the access token info.

Langkah berikutnya

Alur Koneksi/OAuth OpenID Layanan Federasi Direktori Aktif dan Skenario Aplikasi