Autentikasi dan otorisasi untuk Azure Static Web Apps

Azure Static Web Apps menyediakan pengalaman autentikasi yang disederhanakan. Secara default, Anda memiliki akses ke serangkaian penyedia yang telah dikonfigurasi sebelumnya, atau opsi untuk mendaftarkan penyedia kustom.

  • Setiap pengguna dapat mengautentikasi dengan penyedia yang diaktifkan.
  • Setelah masuk, pengguna termasuk dalam peran anonymous dan authenticated secara default.
  • Pengguna yang berwenang mendapatkan akses ke rute terbatas berdasarkan aturan yang ditentukan staticwebapp.config.jspada file.
  • Pengguna diberi peran kustom menggunakan sistem undangan bawaan.
  • Pengguna dapat diberi peran kustom saat login oleh fungsi API secara terprogram.
  • Semua penyedia autentikasi diaktifkan secara default.
    • Untuk membatasi penyedia autentikasi, akses blokir dengan aturan rute kustom. Mengonfigurasi penyedia kustom juga menonaktifkan penyedia yang telah dikonfigurasi sebelumnya.
  • Penyedia yang telah dikonfigurasi meliputi:
    • Azure Active Directory 1
    • GitHub
    • Twitter

1 Penyedia Azure Active Directory yang telah dikonfigurasi sebelumnya memungkinkan Akun Microsoft mana pun untuk masuk. Untuk membatasi login ke penyewa Direktori Aktif tertentu, konfigurasikan penyedia Azure Active Directory kustom.

Subjek autentikasi dan otorisasi secara signifikan tumpang tindih dengan konsep perutean, yang diperinci dalam panduan konfigurasi aplikasi.

Folder sistem

Azure Static Web Apps menggunakan folder sistem /.auth untuk menyediakan akses ke API terkait otorisasi. Daripada mengekspos salah satu rute di bawah folder /.auth langsung ke pengguna akhir, pertimbangkan untuk membuat aturan perutean untuk membuat URL yang ramah.

Masuk

Gunakan tabel berikut ini untuk menemukan rute khusus penyedia.

Penyedia otorisasi Rute login
Azure Active Directory /.auth/login/aad
GitHub /.auth/login/github
Twitter /.auth/login/twitter

Misalnya, untuk masuk dengan GitHub, Anda dapat menyertakan tautan seperti cuplikan berikut:

<a href="/.auth/login/github">Login</a>

Jika Anda memilih untuk mendukung lebih dari satu penyedia, maka Anda perlu mengekspos tautan khusus penyedia untuk masing-masing di situs web Anda.

Anda dapat menggunakan aturan rute untuk memetakan penyedia default ke rute yang ramah seperti /login.

{
  "route": "/login",
  "redirect": "/.auth/login/github"
}

Pascapengalihan log masuk

Jika Anda ingin pengguna kembali ke halaman tertentu setelah masuk, berikan URL lengkap yang memenuhi syarat dalam parameter string kueri post_login_redirect_uri.

Contohnya:

<a href="/.auth/login/github?post_login_redirect_uri=https://zealous-water.azurestaticapps.net/success">Login</a>

Selain itu, Anda dapat mengalihkan pengguna yang tidak diautentikasi kembali ke halaman referensi setelah mereka masuk. Untuk mengonfigurasi perilaku ini, buat aturan penimpaanpost_login_redirect_uri respons yang diatur ke .referrer.

Contohnya:

{
  "responseOverrides": {
    "401": {
      "redirect": "/.auth/login/github?post_login_redirect_uri=.referrer",
      "statusCode": 302
    }
  }
}

Keluar

Rute /.auth/logout mencatat pengguna keluar dari situs web. Anda bisa menambahkan tautan ke navigasi situs Anda untuk memungkinkan pengguna keluar seperti yang diperlihatkan dalam contoh berikut.

<a href="/.auth/logout">Log out</a>

Anda dapat menggunakan aturan rute untuk memetakan rute yang ramah seperti /logout.

{
  "route": "/logout",
  "redirect": "/.auth/logout"
}

Pascapengalihan log keluar

Jika Anda ingin pengguna kembali ke halaman tertentu setelah log keluar, berikan URL dalam parameter string kueri post_logout_redirect_uri.

Memblokir penyedia autentikasi

Anda mungkin ingin membatasi aplikasi agar tidak menggunakan penyedia autentikasi. Misalnya, aplikasi Anda mungkin ingin menstandarkan hanya pada penyedia yang mengekspos alamat email.

Untuk memblokir penyedia, Anda dapat membuat aturan rute untuk mengembalikan kode status 404 untuk permintaan ke rute khusus penyedia yang diblokir. Misalnya, untuk membatasi Twitter sebagai penyedia, tambahkan aturan rute berikut.

{
  "route": "/.auth/login/twitter",
  "statusCode": 404
}

Peran

Setiap pengguna yang mengakses aplikasi web statis milik satu atau beberapa peran. Ada dua peran bawaan yang dapat dimiliki pengguna:

  • anonim: Semua pengguna secara otomatis termasuk dalam peran anonim.
  • diautentikasi: Semua pengguna yang masuk adalah milik peran terautentikasi.

Selain peran bawaan, Anda dapat menetapkan peran kustom kepada pengguna, dan mereferensikannya dalam file staticwebapp.config.json.

Manajemen peran

Menambahkan pengguna ke peran

Untuk menambahkan pengguna ke peran, Anda menghasilkan undangan yang memungkinkan Anda mengaitkan pengguna ke peran tertentu. Peran didefinisikan dan dipertahankan dalam file staticwebapp.config.json.

Membuat undangan

Undangan khusus untuk penyedia otorisasi individual, jadi pertimbangkan kebutuhan aplikasi Anda saat Anda memilih penyedia mana yang akan didukung. Beberapa penyedia mengekspos alamat email pengguna, sementara yang lain hanya menyediakan nama pengguna situs.

Penyedia otorisasi Mengekspos pengguna
Azure Active Directory alamat email
GitHub nama pengguna
Twitter nama pengguna
  1. Navigasi ke sumber daya Aplikasi Web Statis di portal Microsoft Azure.
  2. Di bawah Pengaturan, klik Manajemen Peran.
  3. Klik tombol Undang.
  4. Pilih Penyedia otorisasi dari daftar opsi.
  5. Tambahkan nama pengguna atau alamat email penerima dalam kotak Detail undangan.
    • Untuk GitHub dan Twitter, Anda memasukkan nama pengguna. Untuk yang lainnya, masukkan alamat email penerima.
  6. Pilih domain situs statis Anda dari drop-down Domain.
    • Domain yang Anda pilih adalah domain yang muncul dalam undangan. Jika Anda memiliki domain kustom yang terkait dengan situs Anda, Anda mungkin ingin memilih domain kustom.
  7. Tambahkan daftar nama peran yang dipisahkan koma dalam kotak Peran.
  8. Masukkan jumlah jam maksimum yang Anda inginkan agar undangan tetap valid.
    • Batas maksimum yang dimungkinkan adalah 168 jam, yaitu 7 hari.
  9. Klik tombol Hasilkan.
  10. Salin tautan dari kotak Tautan undang.
  11. Kirim tautan undangan melalui email ke orang yang Anda berikan akses ke aplikasi Anda.

Saat pengguna mengklik tautan dalam undangan, mereka akan diminta untuk masuk dengan akun terkait mereka. Setelah berhasil masuk, pengguna dikaitkan dengan peran yang dipilih.

Perhatian

Pastikan aturan rute Anda tidak berkonflik dengan penyedia autentikasi yang Anda pilih. Memblokir penyedia dengan aturan rute akan mencegah pengguna menerima undangan.

Memperbarui penetapan peran

  1. Navigasi ke sumber daya Aplikasi Web Statis di portal Microsoft Azure.
  2. Di bawah Pengaturan, klik Manajemen Peran.
  3. Klik pengguna dalam daftar.
  4. Edit daftar peran dalam kotak Peran.
  5. Klik tombol Perbarui.

Menghapus pengguna

  1. Navigasi ke sumber daya Aplikasi Web Statis di portal Microsoft Azure.
  2. Di bawah Pengaturan, klik Manajemen Peran.
  3. Temukan pengguna dalam daftar.
  4. Centang kotak centang pada baris pengguna.
  5. Klik tombol Hapus.

Saat Anda menghapus pengguna, ingatlah item berikut:

  1. Menghapus pengguna membatalkan izin mereka.
  2. Penyebaran di seluruh dunia mungkin memakan waktu beberapa menit.
  3. Jika pengguna ditambahkan kembali ke aplikasi, userId mengubah.

Menghapus informasi identifikasi pribadi

Ketika Anda memberikan persetujuan untuk aplikasi sebagai pengguna akhir, aplikasi memiliki akses ke alamat email atau nama pengguna Anda bergantung pada penyedia identitas. Setelah informasi ini diberikan, pemilik aplikasi memutuskan cara mengelola informasi identifikasi pribadi.

Pengguna akhir perlu menghubungi administrator aplikasi web individual untuk mencabut informasi ini dari sistem mereka.

Untuk menghapus informasi identifikasi pribadi dari platform Azure Static Web Apps, dan mencegah platform memberikan informasi ini pada permintaan di masa mendatang, kirimkan permintaan menggunakan URL:

https://identity.azurestaticapps.net/.auth/purge/<AUTHENTICATION_PROVIDER_NAME>

Untuk mencegah platform memberikan informasi ini pada permintaan mendatang ke aplikasi individual, kirim permintaan ke URL berikut:

https://<WEB_APP_DOMAIN_NAME>/.auth/purge/<AUTHENTICATION_PROVIDER_NAME>

Perhatikan bahwa jika Anda menggunakan Azure Active Directory, gunakan aad sebagai nilai untuk <AUTHENTICATION_PROVIDER_NAME> placeholder.

Batasan

Lihat artikel Kuota untuk batasan dan pembatasan umum.

Langkah berikutnya