Mengonfigurasi aplikasi App Service atau Azure Functions Anda untuk menggunakan masuk Azure AD

Artikel ini memperlihatkan cara mengonfigurasi autentikasi untuk Azure App Service atau Azure Functions sehingga aplikasi Anda memasukkan pengguna dengan platform identitas Microsoft (Microsoft Azure AD) sebagai penyedia autentikasi.

Fitur App Service Authentication dapat secara otomatis membuat pendaftaran aplikasi dengan platform identitas Microsoft. Anda juga dapat menggunakan pendaftaran yang Anda buat atau yang dibuat oleh admin direktori secara terpisah.

Catatan

Opsi untuk membuat pendaftaran baru tidak tersedia untuk cloud pemerintah. Sebagai gantinya, tentukan pendaftaran secara terpisah.

Opsi 1: Membuat pendaftaran aplikasi baru secara otomatis

Opsi ini dirancang untuk mempermudah pengaktifan autentikasi dan hanya membutuhkan beberapa klik.

  1. Masuk ke portal Microsoft Azure dan navigasikan ke aplikasi Anda.

  2. Pilih Autentikasi pada menu di sebelah kiri. Klik Tambahkan penyedia identitas.

  3. Pilih Microsoft di menu tarik-turun penyedia identitas. Opsi untuk membuat pendaftaran baru dipilih secara default. Anda dapat mengubah nama pendaftaran atau jenis akun yang didukung.

    Rahasia klien akan dibuat dan disimpan sebagai pengaturan aplikasi melekat slot yang bernama MICROSOFT_PROVIDER_AUTHENTICATION_SECRET. Anda dapat memperbarui pengaturan tersebut nanti untuk menggunakan referensi Key Vault jika Anda ingin mengelola rahasia di Azure Key Vault.

  4. Jika ini adalah penyedia identitas pertama yang dikonfigurasi untuk aplikasi, Anda juga akan diminta dengan bagian pengaturan autentikasi App Service. Jika tidak, Anda boleh melanjutkan ke langkah berikutnya.

    Opsi ini menentukan bagaimana aplikasi Anda merespons permintaan yang tidak diautentikasi, dan pilihan default akan mengalihkan semua permintaan untuk masuk dengan penyedia baru ini. Anda dapat mengubah kustomisasi perilaku ini sekarang atau menyesuaikan pengaturan ini nanti dari layar Autentikasi dengan memilih Edit di samping Pengaturan autentikasi. Untuk mempelajari selengkapnya tentang opsi ini, lihat Alur autentikasi.

  5. (Opsional) Klik Berikutnya: Izin dan tambahkan cakupan apa pun yang diperlukan oleh aplikasi. Ini akan ditambahkan ke pendaftaran aplikasi, tetapi Anda juga dapat mengubahnya nanti.

  6. Klik Tambahkan.

Kini Anda siap menggunakan platform identitas Microsoft untuk autentikasi di aplikasi Anda. Penyedia akan dicantumkan pada layar Autentikasi. Dari sana, Anda dapat mengedit atau menghapus konfigurasi penyedia ini.

Untuk contoh mengonfigurasi masuk Azure AD untuk aplikasi web yang mengakses Azure Storage dan Microsoft Graph, lihat tutorial ini.

Opsi 2: Menggunakan pendaftaran yang sudah ada yang dibuat secara terpisah

Anda juga dapat mendaftarkan aplikasi Anda secara manual untuk platform identitas Microsoft, mengkustomisasi pendaftaran dan mengonfigurasi App Service Authentication dengan detail pendaftaran. Tindakan ini berguna, misalnya, jika Anda ingin menggunakan pendaftaran aplikasi dari penyewa Azure AD yang berbeda dari aplikasi Anda.

Membuat pendaftaran aplikasi di Azure AD untuk aplikasi App Service Anda

Pertama, Anda akan membuat pendaftaran aplikasi. Saat Anda melakukannya, kumpulkan informasi berikut yang akan Anda butuhkan nanti saat mengonfigurasi autentikasi di aplikasi App Service:

  • ID Klien
  • ID Penyewa
  • Rahasia klien (opsional)
  • URI ID Aplikasi

Untuk mendaftarkan aplikasi, lakukan langkah berikut:

  1. Masuk ke portal Microsoft Azure, cari dan pilih App ServiceApp Service lalu pilih aplikasi Anda. Perhatikan URL aplikasi Anda. Anda akan menggunakannya untuk mengonfigurasi pendaftaran aplikasi Azure Active Directory Anda.

  2. Dari menu portal, pilih Azure Active Directory, lalu buka tab Pendaftaran aplikasi dan pilih Pendaftaran baru.

  3. Di halaman Daftarkan aplikasi, masukkan Nama untuk pendaftaran aplikasi Anda.

  4. Di Redirect URI, pilih Web dan ketik <app-url>/.auth/login/aad/callback . Contohnya:https://contoso.azurewebsites.net/.auth/login/aad/callback

  5. Pilih Daftar.

  6. Setelah pendaftaran aplikasi dibuat, salin ID Aplikasi (klien) dan ID Direktori (penyewa) untuk nanti.

  7. Pilih Autentikasi. Pada Pemberian implisit dan alur hibrida, aktifkan token ID untuk mengizinkan proses masuk pengguna OpenID Connect dari App Service. Pilih Simpan.

  8. (Opsional) Pilih Branding. Di URL halaman Beranda, masukkan URL aplikasi App Service Anda dan pilih Simpan.

  9. Pilih Ekspos API, dan klik Atur di samping "URI ID Aplikasi". Nilai ini secara unik mengidentifikasi aplikasi ketika digunakan sebagai sumber daya, memungkinkan token yang memberikan akses untuk diminta. Ini digunakan sebagai awalan untuk cakupan yang Anda buat.

    Untuk aplikasi penyewa tunggal, Anda dapat menggunakan nilai default, yang berupa api://<application-client-id>. Anda juga dapat menentukan URI yang lebih mudah dibaca seperti https://contoso.com/api berdasarkan salah satu domain terverifikasi untuk penyewa Anda. Untuk aplikasi multi-penyewa, Anda harus menyediakan URI khusus. Untuk mempelajari selengkapnya tentang format yang diterima untuk URI ID Aplikasi, lihat referensi praktik terbaik pendaftaran aplikasi.

    Nilai disimpan secara otomatis.

  10. Pilih Tambahkan cakupan.

    1. Pada Tambahkan cakupan, URI ID Aplikasi adalah nilai yang Anda tetapkan pada langkah sebelumnya. Klik Simpan dan lanjutkan.
    2. Di Nama cakupan, masukkan user_impersonation.
    3. Dalam kotak teks, masukkan deskripsi dan nama cakupan persetujuan yang Anda inginkan dilihat pengguna di halaman persetujuan. Misalnya, masukkan Akses <application-name>.
    4. Pilih Tambahkan cakupan.
  11. (Opsional) Untuk membuat rahasia klien, pilih Sertifikat & rahasia>Rahasia klien>Rahasia klien baru. Masukkan deskripsi serta kedaluwarsa dan pilih Tambahkan. Salin nilai rahasia klien yang diperlihatkan di halaman. Nilai tersebut tidak akan ditampilkan lagi.

  12. (Opsional) Untuk menambahkan beberapa URL Balasan, pilih Autentikasi.

Mengaktifkan Azure Active Directory di aplikasi App Service Anda

  1. Masuk ke portal Microsoft Azure dan navigasikan ke aplikasi Anda.

  2. Pilih Autentikasi pada menu di sebelah kiri. Klik Tambahkan penyedia identitas.

  3. Pilih Microsoft di menu tarik-turun penyedia identitas.

  4. Untuk Jenis pendaftaran aplikasi, Anda dapat memilih untuk Memilih pendaftaran aplikasi yang ada di direktori ini yang akan secara otomatis mengumpulkan informasi aplikasi yang diperlukan. Jika pendaftaran Anda berasal dari penyewa lain atau Anda tidak memiliki izin untuk melihat objek pendaftaran, pilih Berikan detail pendaftaran aplikasi yang sudah ada. Untuk opsi ini, Anda harus mengisi detail konfigurasi berikut:

    Bidang Deskripsi
    ID (klien) Aplikasi Gunakan ID Aplikasi (klien) pendaftaran aplikasi.
    Rahasia Klien Gunakan rahasia klien yang Anda buat di pendaftaran aplikasi. Dengan rahasia klien, aliran hibrid digunakan dan App Service akan menampilkan akses dan me-refresh token. Saat rahasia klien tidak diatur, alur implisit digunakan dan hanya token ID yang ditampilkan. Token ini dikirim oleh penyedia dan disimpan di toko token EasyAuth.
    URL Penerbit Gunakan <authentication-endpoint>/<tenant-id>/v2.0, dan ganti <authentication-endpoint> dengan titik akhir autentikasi untuk lingkungan cloud Anda (misalnya, "https://login.microsoftonline.com"" untuk Azure global), juga menggantikan <tenant-id> dengan ID Direktori (penyewa) tempat pendaftaran aplikasi dibuat. Nilai ini digunakan untuk mengarahkan pengguna ke penyewa Azure AD yang benar, serta mengunduh metadata yang sesuai untuk menentukan kunci penandatanganan token dan nilai klaim penerbit token yang sesuai. Untuk aplikasi yang menggunakan Microsoft Azure AD v1, hapus /v2.0 dari URL.
    Audiens Token yang Diizinkan ID Aplikasi (klien) yang dikonfigurasi selalu secara implisit dianggap sebagai audiens yang diizinkan. Jika ini adalah aplikasi cloud atau server dan Anda ingin menerima token autentikasi dari aplikasi App Service klien (token autentikasi dapat diambil di header X-MS-TOKEN-AAD-ID-TOKEN), tambahkan ID Aplikasi (klien) dari aplikasi klien di sini.

    Rahasia klien akan disimpan sebagai pengaturan aplikasi melekat slot yang bernama MICROSOFT_PROVIDER_AUTHENTICATION_SECRET. Anda dapat memperbarui pengaturan tersebut nanti untuk menggunakan referensi Key Vault jika Anda ingin mengelola rahasia di Azure Key Vault.

  5. Jika ini adalah penyedia identitas pertama yang dikonfigurasi untuk aplikasi, Anda juga akan diminta dengan bagian pengaturan autentikasi App Service. Jika tidak, Anda boleh melanjutkan ke langkah berikutnya.

    Opsi ini menentukan bagaimana aplikasi Anda merespons permintaan yang tidak diautentikasi, dan pilihan default akan mengalihkan semua permintaan untuk masuk dengan penyedia baru ini. Anda dapat mengubah kustomisasi perilaku ini sekarang atau menyesuaikan pengaturan ini nanti dari layar Autentikasi dengan memilih Edit di samping Pengaturan autentikasi. Untuk mempelajari selengkapnya tentang opsi ini, lihat Alur autentikasi.

  6. Klik Tambahkan.

Kini Anda siap menggunakan platform identitas Microsoft untuk autentikasi di aplikasi Anda. Penyedia akan dicantumkan pada layar Autentikasi. Dari sana, Anda dapat mengedit atau menghapus konfigurasi penyedia ini.

Validasi tambahan (opsional)

Langkah-langkah yang ditentukan di atas memungkinkan Anda mengautentikasi permintaan masuk untuk penyewa Azure AD Anda. Ini memungkinkan siapa pun dalam penyewa untuk mengakses aplikasi, yang baik-baik saja untuk banyak aplikasi. Namun, beberapa aplikasi perlu membatasi akses lebih lanjut dengan membuat keputusan otorisasi. Kode aplikasi Anda sering menjadi tempat terbaik untuk menangani logika otorisasi kustom. Namun, untuk skenario umum, platform ini menyediakan pemeriksaan bawaan yang dapat Anda gunakan untuk membatasi akses.

Bagian ini menunjukkan cara mengaktifkan pemeriksaan bawaan menggunakan API V2 autentikasi App Service. Saat ini, satu-satunya cara untuk mengonfigurasi pemeriksaan bawaan ini adalah melalui templat Azure Resource Manager atau REST API.

Dalam objek API, konfigurasi penyedia identitas Azure Active Directory memiliki valdation bagian yang dapat menyertakan defaultAuthorizationPolicy objek seperti dalam struktur berikut:

{
    "validation": {
        "defaultAuthorizationPolicy": {
            "allowedApplications": [],
            "allowedPrincipals": {
                "identities": []
            }
        }
    }
}
Properti Deskripsi
defaultAuthorizationPolicy Pengelompokan persyaratan yang harus dipenuhi untuk mengakses aplikasi. Akses diberikan berdasarkan logis AND atas setiap properti yang dikonfigurasi. Ketika allowedApplications dan allowedPrincipals keduanya dikonfigurasi, permintaan masuk harus memenuhi kedua persyaratan agar dapat diterima.
allowedApplications Daftar izin ID klien aplikasi string yang mewakili sumber daya klien yang memanggil ke dalam aplikasi. Ketika properti ini dikonfigurasi sebagai array nonempty, hanya token yang diperoleh oleh aplikasi yang ditentukan dalam daftar yang akan diterima.

Kebijakan ini mengevaluasi appid atau azp mengklaim token masuk, yang harus menjadi token akses. Lihat referensi klaim Platform Identitas Microsoft.
allowedPrincipals Pengelompokan pemeriksaan yang menentukan apakah prinsipal yang diwakili oleh permintaan masuk dapat mengakses aplikasi. Kepuasan allowedPrincipals didasarkan pada logis OR atas properti yang dikonfigurasi.
identities (di bawah allowedPrincipals) Daftar yang diizinkan dari ID objek string yang mewakili pengguna atau aplikasi yang memiliki akses. Ketika properti ini dikonfigurasi sebagai array nonempty, allowedPrincipals persyaratan dapat dipenuhi jika pengguna atau aplikasi yang diwakili oleh permintaan ditentukan dalam daftar.

Kebijakan ini mengevaluasi oid klaim token masuk. Lihat referensi klaim Platform Identitas Microsoft.

Permintaan yang gagal pemeriksaan bawaan ini diberi respons HTTP 403 Forbidden .

Mengonfigurasi aplikasi klien untuk mengakses App Service Anda

Di bagian sebelumnya, Anda mendaftarkan App Service atau Azure Function untuk mengautentikasi pengguna. Bagian ini menjelaskan cara mendaftarkan aplikasi klien asli atau daemon sehingga mereka dapat meminta akses ke API yang diekspos oleh App Service Anda atas nama pengguna atau diri mereka sendiri. Menyelesaikan langkah di bagian ini tidak diperlukan jika Anda hanya ingin mengautentikasi pengguna.

Aplikasi klien asli

Anda dapat mendaftarkan klien asli untuk meminta akses API aplikasi App Service Anda atas nama pengguna yang login.

  1. Di portal Microsoft Azure, pilih Direktori Aktif>Pendaftaran aplikasi>Pendaftaran baru.

  2. Di halaman Daftarkan aplikasi, masukkan Nama untuk pendaftaran aplikasi Anda.

  3. Di URI Pengalihan, pilih Klien publik (desktop & seluler) dan ketik URL <app-url>/.auth/login/aad/callback-nya. Contohnya:https://contoso.azurewebsites.net/.auth/login/aad/callback

    Catatan

    Untuk aplikasi Microsoft Store, gunakan paket SID sebagai URI sebagai gantinya.

  4. Pilih Buat.

  5. Setelah pendaftaran aplikasi dibuat, salin nilai ID Aplikasi (klien) .

  6. Pilih izin API>Tambahkan izin>API Saya.

  7. Pilih pendaftaran aplikasi yang Anda buat sebelumnya untuk aplikasi App Service Anda. Jika Anda tidak melihat pendaftaran aplikasi, pastikan Anda telah menambahkan lingkup user_impersonation di Membuat pendaftaran aplikasi di Azure AD untuk aplikasi App Service Anda.

  8. Di bawah Izin yang didelegasikan, pilih user_impersonation, lalu pilih Tambahkan izin.

Kini Anda telah mengonfigurasi aplikasi klien asli yang dapat meminta akses aplikasi Layanan Aplikasi atas nama pengguna.

Aplikasi klien Daemon (panggilan layanan ke layanan)

Aplikasi Anda dapat memperoleh token untuk memanggil API Web yang dihosting di aplikasi App Service atau Function atas nama dirinya sendiri (bukan atas nama pengguna). Skenario ini berguna untuk aplikasi daemon non-interaktif yang melakukan tugas tanpa pengguna yang masuk. Ini menggunakan pemberian informasi masuk klien OAuth 2.0 standar.

  1. Di portal Microsoft Azure, pilih Direktori Aktif>Pendaftaran aplikasi>Pendaftaran baru.
  2. Di halaman Daftarkan aplikasi, masukkan Nama untuk pendaftaran aplikasi daemon Anda.
  3. Untuk aplikasi daemon, Anda tidak memerlukan URI Pengalihan sehingga Anda dapat menyimpannya tetap kosong.
  4. Pilih Buat.
  5. Setelah pendaftaran aplikasi dibuat, salin nilai ID Aplikasi (klien) .
  6. Pilih Sertifikat & rahasia>Rahasia klien baru>Tambahkan. Salin nilai rahasia klien yang diperlihatkan di halaman. Nilai tersebut tidak akan ditampilkan lagi.

Anda sekarang dapat meminta token akses menggunakan ID klien dan rahasia klien dengan mengatur parameter resource ke URI ID Aplikasi pada aplikasi target. Token akses yang dihasilkan kemudian dapat disajikan ke aplikasi target menggunakan header Otorisasi OAuth 2.0 standar, dan Otentikasi/Otorisasi App Service akan memvalidasi dan menggunakan token seperti biasa hingga sekarang menunjukkan bahwa penelepon (aplikasi dalam hal ini, bukan pengguna) diautentikasi.

Saat ini, ini memungkinkan aplikasi klien apa pun di penyewa Azure AD Anda untuk meminta token akses dan mengautentikasi ke aplikasi target. Jika Anda juga ingin memberlakukan otorisasi untuk hanya mengizinkan aplikasi klien tertentu, Anda harus melakukan beberapa konfigurasi tambahan.

  1. Tentukan Peran Aplikasi dalam manifes pendaftaran aplikasi yang mewakili aplikasi App Service atau Function yang ingin Anda lindungi.
  2. Pada pendaftaran aplikasi yang mewakili klien yang perlu diotorisasi, pilih izin API>Tambahkan izin>API Saya.
  3. Pilih pendaftaran aplikasi yang Anda buat sebelumnya. Jika Anda tidak melihat pendaftaran aplikasi, pastikan Anda telah menambahkan Peran Aplikasi.
  4. Di bawah Izin aplikasi, pilih Peran Aplikasi yang Anda buat sebelumnya, lalu pilih Tambahkan izin.
  5. Pastikan untuk mengklik Beri persetujuan admin untuk memberi otorisasi aplikasi klien untuk meminta izin.
  6. Mirip dengan skenario sebelumnya (sebelum peran ditambahkan), Anda sekarang dapat meminta token akses untuk target yang sama resource, dan token akses akan mencakup klaim roles yang berisi Peran Aplikasi yang diizinkan untuk aplikasi klien.
  7. Dalam kode aplikasi App Service atau Function target, Anda sekarang dapat memvalidasi bahwa peran yang diharapkan ada dalam token (ini tidak dilakukan oleh Autentikasi/Otorisasi App Service). Untuk informasi selengkapnya, lihat Mengakses klaim pengguna.

Kini Anda telah mengonfigurasi aplikasi klien daemon yang dapat mengakses aplikasi App Service menggunakan identitasnya sendiri.

Catatan

Token akses yang disediakan untuk aplikasi Anda melalui EasyAuth tidak memiliki cakupan untuk API lain, seperti Graph, meskipun aplikasi Anda memiliki izin untuk mengakses API tersebut. Untuk menggunakan API ini, Anda harus menggunakan Azure Resource Manager untuk mengonfigurasi token yang dikembalikan sehingga dapat digunakan untuk mengautentikasi ke layanan lain. Untuk mengetahui informasi selengkapnya, lihat Tutorial: Mengakses Microsoft Graph dari aplikasi .NET aman sebagai pengguna.

Praktik terbaik

Terlepas dari konfigurasi yang Anda gunakan untuk menyiapkan autentikasi, praktik terbaik berikut akan membuat penyewa dan aplikasi Anda lebih aman:

  • Berikan setiap aplikasi App Service izin dan persetujuannya sendiri.
  • Konfigurasikan setiap aplikasi App Service dengan pendaftarannya sendiri.
  • Hindari berbagi izin antar lingkungan dengan menggunakan pendaftaran aplikasi terpisah untuk slot penyebaran terpisah. Saat menguji kode baru, praktik ini dapat membantu mencegah masalah memengaruhi aplikasi produksi.

Langkah berikutnya