Windows Authentication <windowsAuthentication>
Gambaran Umum
Elemen menentukan <windowsAuthentication>
pengaturan konfigurasi untuk modul autentikasi Windows Internet Information Services (IIS) 7. Anda dapat menggunakan autentikasi Windows saat server IIS 7 berjalan di jaringan perusahaan yang menggunakan identitas domain layanan Microsoft Active Directory atau akun Windows lainnya untuk mengidentifikasi pengguna. Karena itu, Anda dapat menggunakan autentikasi Windows apakah server Anda adalah anggota domain Direktori Aktif atau tidak.
Autentikasi Windows (sebelumnya bernama NTLM, dan juga disebut sebagai autentikasi Windows NT Challenge/Response) adalah bentuk autentikasi yang aman karena nama pengguna dan kata sandi di-hash sebelum dikirim di seluruh jaringan. Saat Anda mengaktifkan autentikasi Windows, browser klien mengirimkan versi kata sandi yang sangat di-hash dalam pertukaran kriptografi dengan server Web Anda.
Autentikasi Windows mendukung dua protokol autentikasi, Kerberos dan NTLM, yang didefinisikan dalam <providers>
elemen . Ketika Anda menginstal dan mengaktifkan autentikasi Windows pada IIS 7, protokol defaultnya adalah Kerberos. Elemen ini <windowsAuthentication>
juga dapat berisi atribut useKernelMode yang mengonfigurasi apakah akan menggunakan fitur autentikasi mode kernel yang baru untuk Windows Server 2008.
Autentikasi Windows paling cocok untuk lingkungan intranet karena alasan berikut:
- Komputer klien dan server Web berada di domain yang sama.
- Administrator dapat memastikan bahwa setiap browser klien adalah Internet Explorer 2.0 atau yang lebih baru.
- Koneksi proksi HTTP, yang tidak didukung oleh NTLM, tidak diperlukan.
- Kerberos versi 5 memerlukan koneksi ke Direktori Aktif, yang tidak layak di lingkungan Internet.
Baru di IIS 7.5
Elemen <extendedProtection>
ini diperkenalkan di IIS 7.5, yang memungkinkan Anda mengonfigurasi pengaturan untuk fitur perlindungan diperluas baru yang telah diintegrasikan ke dalam autentikasi Windows.
Kompatibilitas
Versi | Catatan |
---|---|
IIS 10.0 | Elemen <windowsAuthentication> tidak dimodifikasi di IIS 10.0. |
IIS 8.5 | Elemen <windowsAuthentication> tidak dimodifikasi di IIS 8.5. |
IIS 8.0 | Elemen <windowsAuthentication> tidak dimodifikasi di IIS 8.0. |
IIS 7.5 | Elemen <extendedProtection> ditambahkan dalam IIS 7.5. |
IIS 7.0 | Elemen <windowsAuthentication> ini diperkenalkan di IIS 7.0. |
IIS 6.0 | Elemen menggantikan <windowsAuthentication> bagian dari properti metabase IIS 6.0 AuthType dan AuthFlags . |
Siapkan
Penginstalan default IIS 7 dan yang lebih baru tidak menyertakan layanan peran autentikasi Windows. Untuk menggunakan autentikasi Windows pada IIS, Anda harus menginstal layanan peran, menonaktifkan autentikasi Anonim untuk situs web atau aplikasi Anda, lalu mengaktifkan autentikasi Windows untuk situs atau aplikasi.
Catatan
Setelah Anda menginstal layanan peran, IIS 7 menerapkan pengaturan konfigurasi berikut ke file ApplicationHost.config.
<windowsAuthentication enabled="false" />
Windows Server 2012 atau Windows Server 2012 R2
- Pada taskbar, klik Manajer Server.
- Di Manajer Server, klik menu Kelola , lalu klik Tambahkan Peran dan Fitur.
- Di wizard Tambahkan Peran dan Fitur , klik Berikutnya. Pilih jenis penginstalan dan klik Berikutnya. Pilih server tujuan dan klik Berikutnya.
- Pada halaman Peran Server , perluas Server Web (IIS), perluas Server Web, perluas Keamanan, lalu pilih Autentikasi Windows. Klik Berikutnya.
. - Pada halaman Pilih fitur, klik Berikutnya.
- Pada halaman Konfirmasi pilihan instalasi, klik Instal.
- Pada halaman Hasil , klik Tutup.
Windows 8 atau Windows 8.1
- Pada layar Mulai, pindahkan penunjuk ke sudut kiri bawah, klik kanan tombol Mulai, lalu klik Panel Kontrol.
- Di Panel Kontrol, klik Program dan Fitur, lalu klik Aktifkan atau nonaktifkan fitur Windows.
- Perluas Layanan Informasi Internet, perluas World Wide Web Services, perluas Keamanan, lalu pilih Autentikasi Windows.
- Klik OK.
- Klik Tutup.
Windows Server 2008 atau Windows Server 2008 R2
- Pada taskbar, klik Mulai, arahkan ke Alat Administratif, lalu klik Manajer Server.
- Di panel hierarki Manajer Server , perluas Peran, lalu klik Server Web (IIS).
- Di panel Server Web (IIS), gulir ke bagian Layanan Peran , lalu klik Tambahkan Layanan Peran.
- Pada halaman Pilih Layanan Peran dari Wizard Tambahkan Layanan Peran, pilih Autentikasi Windows, lalu klik Berikutnya.
- Pada halaman Konfirmasi Pilihan Penginstalan , klik Instal.
- Pada halaman Hasil , klik Tutup.
Windows Vista atau Windows 7
- Pada taskbar, klik Mulai, lalu klik Panel Kontrol.
- Di Panel Kontrol, klik Program dan Fitur, lalu klik Aktifkan atau nonaktifkan Fitur Windows.
- Perluas Layanan Informasi Internet, lalu World Wide Web Services, lalu Keamanan.
- Pilih Autentikasi Windows, lalu klik OK.
Bagaimana Caranya
Cara mengaktifkan autentikasi Windows untuk situs Web, aplikasi Web, atau layanan Web
Buka Manajer Layanan Informasi Internet (IIS):
Jika Anda menggunakan Windows Server 2012 atau Windows Server 2012 R2:
- Pada bilah tugas, klik Manajer Server, klik Alat, lalu klik Manajer Layanan Informasi Internet (IIS).
Jika Anda menggunakan Windows 8 atau Windows 8.1:
- Tahan tombol Windows, tekan huruf X, lalu klik Panel Kontrol.
- Klik Alat Administratif, lalu klik dua kali Manajer Layanan Informasi Internet (IIS).
Jika Anda menggunakan Windows Server 2008 atau Windows Server 2008 R2:
- Pada taskbar, klik Mulai, arahkan ke Alat Administratif, lalu klik Manajer Layanan Informasi Internet (IIS).
Jika Anda menggunakan Windows Vista atau Windows 7:
- Pada taskbar, klik Mulai, lalu klik Panel Kontrol.
- Klik dua kali Alat Administratif, lalu klik dua kali Manajer Layanan Informasi Internet (IIS).
Di panel Koneksi , perluas nama server, perluas Situs, lalu situs, aplikasi, atau layanan Web yang ingin Anda aktifkan autentikasi Windowsnya.
Gulir ke bagian Keamanan di panel Beranda , lalu klik ganda Autentikasi.
Di panel Autentikasi , pilih Autentikasi Windows, lalu klik Aktifkan di panel Tindakan .
Cara mengaktifkan Extended Protection untuk autentikasi Windows
Buka Manajer Layanan Informasi Internet (IIS):
Jika Anda menggunakan Windows Server 2012 atau Windows Server 2012 R2:
- Pada bilah tugas, klik Manajer Server, klik Alat, lalu klik Manajer Layanan Informasi Internet (IIS).
Jika Anda menggunakan Windows 8 atau Windows 8.1:
- Tahan tombol Windows, tekan huruf X, lalu klik Panel Kontrol.
- Klik Alat Administratif, lalu klik dua kali Manajer Layanan Informasi Internet (IIS).
Jika Anda menggunakan Windows Server 2008 atau Windows Server 2008 R2:
- Pada taskbar, klik Mulai, arahkan ke Alat Administratif, lalu klik Manajer Layanan Informasi Internet (IIS).
Jika Anda menggunakan Windows Vista atau Windows 7:
- Pada taskbar, klik Mulai, lalu klik Panel Kontrol.
- Klik dua kali Alat Administratif, lalu klik dua kali Manajer Layanan Informasi Internet (IIS).
Di panel Koneksi , perluas nama server, perluas Situs, lalu situs, aplikasi, atau layanan Web yang ingin Anda aktifkan Perlindungan Diperpanjang untuk autentikasi Windows.
Gulir ke bagian Keamanan di panel Beranda , lalu klik dua kali Autentikasi.
Di panel Autentikasi , pilih Autentikasi Windows.
Klik Pengaturan Tingkat Lanjut di panel Tindakan .
Saat kotak dialog Pengaturan Tingkat Lanjut muncul, pilih salah satu opsi berikut ini di menu drop-down Perlindungan Diperpanjang :
Klik OK untuk menutup kotak dialogPengaturan Tingkat Lanjut.
Konfigurasi
Elemen <windowsAuthentication>
ini dapat dikonfigurasi di tingkat direktori situs, aplikasi, atau virtual dalam file ApplicationHost.config.
Atribut
Atribut | Deskripsi |
---|---|
authPersistNonNTLM |
Atribut Boolean opsional. Menentukan apakah IIS secara otomatis mengautentikasi ulang setiap permintaan non-NTLM (misalnya, Kerberos), bahkan yang berada pada koneksi yang sama. False memungkinkan beberapa autentikasi untuk koneksi yang sama. Catatan: Pengaturan true berarti bahwa klien hanya akan diautentikasi sekali pada koneksi yang sama. IIS akan menyimpan token atau tiket di server untuk sesi TCP yang tetap dibuat. Default adalah false . |
authPersistSingleRequest |
Atribut Boolean opsional. Mengatur bendera ini ke true menentukan bahwa autentikasi hanya bertahan untuk satu permintaan pada koneksi. IIS mengatur ulang autentikasi di akhir setiap permintaan, dan memaksa autentikasi ulang pada permintaan sesi berikutnya. Nilai defaultnya adalah false . |
enabled |
Atribut Boolean yang diperlukan. Menentukan apakah autentikasi Windows diaktifkan. Nilai defaultnya adalah false . |
useKernelMode |
Atribut Boolean opsional. Menentukan apakah autentikasi Windows dilakukan dalam mode kernel. True menentukan bahwa autentikasi Windows menggunakan mode kernel. Autentikasi mode kernel dapat meningkatkan performa autentikasi dan mencegah masalah autentikasi dengan kumpulan aplikasi yang dikonfigurasi untuk menggunakan identitas kustom. Sebagai praktik terbaik, jangan nonaktifkan pengaturan ini jika Anda menggunakan autentikasi Kerberos dan memiliki identitas kustom pada kumpulan aplikasi. Defaultnya adalah true . |
Elemen Anak
Elemen | Deskripsi |
---|---|
extendedProtection |
Elemen opsional. Menentukan opsi perlindungan yang diperluas untuk autentikasi Windows. Catatan: Elemen ini ditambahkan dalam IIS 7.5. |
providers |
Elemen opsional. Menentukan penyedia dukungan keamanan yang digunakan untuk autentikasi Windows. |
Sampel Konfigurasi
Elemen default <windowsAuthentication>
berikut dikonfigurasi pada file ApplicationHost.config root di IIS 7.0, dan menonaktifkan autentikasi Windows secara default. Ini juga mendefinisikan dua penyedia autentikasi Windows untuk IIS 7.0.
<windowsAuthentication enabled="false">
<providers>
<add value="Negotiate" />
<add value="NTLM" />
</providers>
</windowsAuthentication>
Contoh berikut mengaktifkan autentikasi Windows dan menonaktifkan autentikasi Anonim untuk situs Web bernama Contoso.
<location path="Contoso">
<system.webServer>
<security>
<authentication>
<anonymousAuthentication enabled="false" />
<windowsAuthentication enabled="true" />
</authentication>
</security>
</system.webServer>
</location>
Kode Sampel
Contoh berikut menonaktifkan autentikasi Anonim untuk situs bernama Contoso, lalu aktifkan autentikasi Windows untuk situs tersebut.
AppCmd.exe
appcmd.exe set config "Contoso" -section:system.webServer/security/authentication/anonymousAuthentication /enabled:"False" /commit:apphost
appcmd.exe set config "Contoso" -section:system.webServer/security/authentication/windowsAuthentication /enabled:"True" /commit:apphost
Catatan
Anda harus memastikan untuk mengatur parameter penerapan ke apphost
saat Anda menggunakan AppCmd.exe untuk mengonfigurasi pengaturan ini. Ini menerapkan pengaturan konfigurasi ke bagian lokasi yang sesuai dalam file ApplicationHost.config.
C#
using System;
using System.Text;
using Microsoft.Web.Administration;
internal static class Sample {
private static void Main() {
using(ServerManager serverManager = new ServerManager()) {
Configuration config = serverManager.GetApplicationHostConfiguration();
ConfigurationSection anonymousAuthenticationSection = config.GetSection("system.webServer/security/authentication/anonymousAuthentication", "Contoso");
anonymousAuthenticationSection["enabled"] = false;
ConfigurationSection windowsAuthenticationSection = config.GetSection("system.webServer/security/authentication/windowsAuthentication", "Contoso");
windowsAuthenticationSection["enabled"] = true;
serverManager.CommitChanges();
}
}
}
VB.NET
Imports System
Imports System.Text
Imports Microsoft.Web.Administration
Module Sample
Sub Main()
Dim serverManager As ServerManager = New ServerManager
Dim config As Configuration = serverManager.GetApplicationHostConfiguration
Dim anonymousAuthenticationSection As ConfigurationSection = config.GetSection("system.webServer/security/authentication/anonymousAuthentication", "Contoso")
anonymousAuthenticationSection("enabled") = False
Dim windowsAuthenticationSection As ConfigurationSection = config.GetSection("system.webServer/security/authentication/windowsAuthentication", "Contoso")
windowsAuthenticationSection("enabled") = True
serverManager.CommitChanges()
End Sub
End Module
JavaScript
var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";
var anonymousAuthenticationSection = adminManager.GetAdminSection("system.webServer/security/authentication/anonymousAuthentication", "MACHINE/WEBROOT/APPHOST/Contoso");
anonymousAuthenticationSection.Properties.Item("enabled").Value = false;
var windowsAuthenticationSection = adminManager.GetAdminSection("system.webServer/security/authentication/windowsAuthentication", "MACHINE/WEBROOT/APPHOST/Contoso");
windowsAuthenticationSection.Properties.Item("enabled").Value = true;
adminManager.CommitChanges();
Vbscript
Set adminManager = CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"
Set anonymousAuthenticationSection = adminManager.GetAdminSection("system.webServer/security/authentication/anonymousAuthentication", "MACHINE/WEBROOT/APPHOST/Contoso")
anonymousAuthenticationSection.Properties.Item("enabled").Value = False
Set windowsAuthenticationSection = adminManager.GetAdminSection("system.webServer/security/authentication/windowsAuthentication", "MACHINE/WEBROOT/APPHOST/Contoso")
windowsAuthenticationSection.Properties.Item("enabled").Value = True
adminManager.CommitChanges()