Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Artikel ini memperlihatkan kepada Anda cara mengelola token OAuth untuk autentikasi dan otorisasi bawaan di Azure App Service.
Mengambil token dalam kode aplikasi
Azure App Service menyuntikkan token khusus penyedia Anda ke header permintaan sehingga Anda dapat dengan mudah mengaksesnya. Untuk mendapatkan token khusus penyedia, penyimpanan token harus diaktifkan untuk aplikasi.
Kirim permintaan HTTP GET
ke /.auth/me
dari kode klien Anda, seperti aplikasi seluler atau JavaScript di browser. JSON yang dikembalikan berisi token khusus penyedia.
Catatan
Token akses adalah untuk mengakses sumber daya penyedia, jadi hanya ada jika Anda mengonfigurasi penyedia Anda dengan rahasia klien.
Tabel berikut mencantumkan nama header token OAuth untuk beberapa penyedia bawaan App Service:
Penyedia | Nama header |
---|---|
Microsoft Entra | X-MS-TOKEN-AAD-ID-TOKEN X-MS-TOKEN-AAD-ACCESS-TOKEN X-MS-TOKEN-AAD-EXPIRES-ON X-MS-TOKEN-AAD-REFRESH-TOKEN |
X-MS-TOKEN-FACEBOOK-ACCESS-TOKEN X-MS-TOKEN-FACEBOOK-EXPIRES-ON |
|
X-MS-TOKEN-GOOGLE-ID-TOKEN X-MS-TOKEN-GOOGLE-ACCESS-TOKEN X-MS-TOKEN-GOOGLE-EXPIRES-ON X-MS-TOKEN-GOOGLE-REFRESH-TOKEN |
|
X | X-MS-TOKEN-TWITTER-ACCESS-TOKEN X-MS-TOKEN-TWITTER-ACCESS-TOKEN-SECRET |
Catatan
Kerangka kerja bahasa yang berbeda mungkin menyajikan header ini ke kode aplikasi dalam format yang berbeda, seperti huruf kecil atau huruf besar/kecil.
Perbarui token otentikasi
Informasi berikut mengacu pada token penyedia. Untuk token sesi, lihat Memperpanjang masa tenggang kedaluwarsa token sesi.
Jika token akses penyedia Anda kedaluwarsa, Anda harus mengautentikasi ulang pengguna sebelum Anda dapat menggunakan token tersebut lagi. Anda dapat menghindari kedaluwarsa token dengan melakukan panggilan GET
ke titik akhir /.auth/refresh
aplikasi Anda.
Untuk memperbarui token akses Anda kapan saja, panggil /.auth/refresh
dalam bahasa apapun. Cuplikan berikut menggunakan jQuery untuk menyegarkan token akses Anda dari klien JavaScript.
function refreshTokens() {
let refreshUrl = "/.auth/refresh";
$.ajax(refreshUrl) .done(function() {
console.log("Token refresh completed successfully.");
}) .fail(function() {
console.log("Token refresh failed. See application logs for details.");
});
}
Saat dipanggil, App Service secara otomatis menyegarkan token akses di penyimpanan token untuk pengguna yang diautentikasi. Permintaan berikutnya untuk token mendapatkan token yang telah diperbarui. Anda dapat melihat token refresh dan waktu kedaluwarsa untuk token dengan menggunakan header yang tercantum dalam Mengambil token dalam kode aplikasi.
Catatan
Jika pengguna mencabut hak akses yang mereka berikan kepada aplikasi milik Anda, panggilan Anda ke /.auth/me
mungkin gagal dengan tanggapan 403 Forbidden
. Untuk mendiagnosis kesalahan, periksa detail log aplikasi Anda.
Mengonfigurasi penyedia untuk menyediakan token refresh
Agar refresh token berfungsi, penyimpanan token harus berisi token refresh dari penyedia Anda. Setiap penyedia mendokuensikan cara mendapatkan token refresh mereka. Tabel berikut ini menyediakan ringkasan singkat:
Penyedia | Token penyegaran |
---|---|
Microsoft | Ikuti prosedur di Mengonfigurasi penyedia Microsoft Entra untuk menyediakan token refresh. |
Tidak menyediakan token refresh. Token berumur panjang kedaluwarsa dalam 60 hari. Untuk informasi selengkapnya, lihat Long-Lived Token Akses. | |
Tambahkan parameter string kueri access_type=offline ke panggilan API /.auth/login/google Anda. Untuk informasi selengkapnya, lihat Token Google Refresh. |
|
X | Token akses tidak kedaluwarsa. Untuk informasi selengkapnya, lihat FAQ OAuth. |
Mengonfigurasi penyedia Microsoft Entra untuk menyediakan token refresh
- Di portal Microsoft Azure, buka API Playground (pratinjau), dan pilih Permintaan baru jika perlu.
- Di bidang Masukkan jalur relatif ARM di sini termasuk versi API , masukkan string berikut, ganti tempat penampung dengan ID langganan, nama grup sumber daya, dan nama aplikasi Anda:
subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.Web/sites/<app-name>/config/authsettingsV2?api-version=2024-11-01
- Pilih Jalankan.
- Pilih
PUT
di kiri atas, dan pilih tab Isi permintaan . -
GET
Salin konten respons dari bidang Isi respons dan tempelkan ke tab Isi permintaan. - Dalam kode, temukan bagian
"identityProviders":
>>"azureActiveDirectory":
"login":
, dan tambahkan baris berikut:"loginParameters": ["scope=openid profile email offline_access"]
- Pilih Jalankan. Bidang Isi respons memperlihatkan perubahan Anda.
Offline_access adalah cakupan yang menyediakan token refresh. App Service sudah meminta cakupan lain secara default. Untuk informasi selengkapnya, lihat Cakupan OpenID Connect dan Web Apps - Perbarui Pengaturan Autentikasi V2.
Memperpanjang masa tenggang kedaluwarsa token sesi
Sesi yang diautentikasi kedaluwarsa setelah 8 jam, dan masa tenggang default 72 jam mengikutinya. Dalam masa tenggang ini, Anda dapat me-refresh token sesi dengan App Service tanpa mengautentikasi ulang pengguna. Anda cukup memanggil /.auth/refresh
ketika token sesi Anda menjadi tidak valid, dan Anda tidak perlu melacak kedaluwarsa token sendiri.
Ketika masa tenggang 72 jam berakhir, pengguna harus masuk lagi untuk mendapatkan token sesi yang valid. Jika Anda memerlukan jendela kedaluwarsa yang lebih lama dari 72 jam, Anda dapat memperpanjangnya, tetapi memperpanjang kedaluwarsa untuk jangka waktu yang lama dapat memiliki implikasi keamanan yang signifikan jika token autentikasi bocor atau dicuri. Sebaiknya biarkan pengaturan pada 72 jam default atau atur periode ekstensi ke nilai sekecil mungkin.
Untuk memperluas jendela kedaluwarsa default, jalankan perintah Azure CLI berikut ini di Azure Cloud Shell:
az webapp auth update --resource-group <group_name> --name <app_name> --token-refresh-extension-hours <hours>
Catatan
Masa tenggang hanya berlaku untuk sesi terautentikasi App Service, bukan ke token akses dari penyedia identitas. Tidak ada masa tenggang untuk token penyedia yang kedaluwarsa.