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.
Gambaran Umum
Elemen <extendedProtection>
menentukan pengaturan yang mengonfigurasi perlindungan yang diperluas untuk autentikasi Windows di IIS 7.5.
Perlindungan yang diperluas meningkatkan fungsionalitas autentikasi Windows yang ada untuk mengurangi relai autentikasi atau serangan "man in the middle". Mitigasi ini dilakukan dengan menggunakan informasi keamanan yang diterapkan melalui dua mekanisme keamanan:
- Informasi pengikatan saluran yang ditentukan melalui Token Pengikatan Saluran (CBT), yang terutama digunakan untuk koneksi SSL.
- Informasi pengikatan layanan yang ditentukan melalui Nama Prinsip Layanan (SPN), yang terutama digunakan untuk koneksi yang tidak menggunakan SSL, atau ketika koneksi dibuat melalui skenario yang menyediakan offloading SSL, seperti server proksi atau load-balancer.
Elemen <extendedProtection>
mungkin berisi kumpulan <spn>
elemen, yang masing-masing berisi SPN unik untuk informasi pengikatan layanan. Setiap SPN mewakili titik akhir unik di jalur koneksi, yang mungkin merupakan Nama Domain yang Sepenuhnya Memenuhi Syarat (FQDN) atau nama NetBIOS dari server tujuan atau server proksi. Misalnya, jika klien terhubung ke server tujuan melalui server proksi, koleksi SPN di server tujuan harus berisi SPN untuk server proksi. Setiap SPN dalam koleksi harus diawali dengan "HTTP," sehingga SPN yang dihasilkan untuk "www.contoso.com" adalah "HTTP/www.contoso.com."
Ada dua atribut <extendedProtection>
elemen yang mengonfigurasi pengikatan saluran dan perilaku tambahan untuk perlindungan IIS yang diperluas:
Atribut tokenChecking mengonfigurasi perilaku untuk memeriksa token pengikatan saluran. Nilai yang mungkin untuk atribut ini adalah:
Nama Deskripsi None
Nilai ini menentukan bahwa IIS tidak akan melakukan pemeriksaan token pengikatan saluran. Pengaturan ini menimpulkan perilaku yang ada sebelum perlindungan yang diperpanjang.
Nilai numerik adalah0
.Allow
Nilai ini menentukan bahwa pemeriksaan token pengikatan saluran diaktifkan, tetapi tidak diperlukan. Pengaturan ini memungkinkan komunikasi yang aman dengan klien yang mendukung perlindungan yang diperpanjang, tetapi masih mendukung klien yang tidak mampu menggunakan perlindungan yang diperluas.
Nilai numerik adalah1
.Require
Nilai ini menentukan bahwa pemeriksaan token pengikatan saluran diperlukan. Pengaturan ini tidak menyediakan dukungan untuk klien yang tidak mendukung perlindungan yang diperpanjang.
Nilai numerik adalah2
.Atribut bendera mengonfigurasi perilaku tambahan untuk perlindungan yang diperpanjang. Bendera yang mungkin adalah:
Nama Deskripsi None
Bendera ini menentukan bahwa tidak ada perilaku tambahan yang diaktifkan untuk perlindungan yang diperpanjang. (Misalnya, tidak ada server proksi yang digunakan dan pemeriksaan SPN diaktifkan dan memerlukan FQDN.)
Nilai numerik adalah0
.Proxy
Bendera ini menentukan bahwa bagian dari jalur komunikasi akan melalui proksi, atau bahwa klien terhubung langsung ke server tujuan melalui HTTP.
Nilai numerik adalah1
.NoServiceNameCheck
Bendera ini menentukan bahwa pemeriksaan SPN dinonaktifkan; bendera ini tidak boleh digunakan dalam skenario di mana hanya SPN yang sedang diperiksa.
Nilai numerik adalah2
.AllowDotlessSpn
Bendera ini menentukan bahwa SPN tidak diperlukan untuk menjadi FQDN. Mengatur bendera ini memungkinkan SPN berbasis NetBIOS. Catatan: Mengatur bendera ini bukan skenario yang aman; nama berbasis non-FQDN rentan terhadap serangan keracunan resolusi nama.
Nilai numerik adalah4
.ProxyCohosting
Bendera ini menentukan bahwa seluruh jalur komunikasi klien-ke-server hanya akan menggunakan HTTP; tidak ada bagian dari jalur komunikasi yang akan menggunakan SSL, dan pemeriksaan SPN akan digunakan. Catatan: Saat Anda menentukan bendera ini, Anda juga harus menentukan Proxy
bendera .
Nilai numerik adalah32
.
Skenario Perlindungan yang Diperluas
Pertimbangkan contoh skenario berikut:
- Dalam setiap skenario berikut, Anda juga dapat menentukan
AllowDotlessSpn
bendera jika lingkungan jaringan Anda mendukung SPN berbasis NetBIOS; namun, SPN berbasis NetBIOS tidak aman. - Untuk setiap skenario berikut di mana pemeriksaan SPN akan digunakan dan pemeriksaan token pengikatan saluran tidak akan digunakan, Anda tidak boleh menentukan
NoServiceNameCheck
bendera.
Skenario | Bendera | Deskripsi |
---|---|---|
Klien terhubung langsung ke server tujuan menggunakan HTTP |
Proxy , ProxyCohosting |
Pemeriksaan SPN akan digunakan dan pemeriksaan token pengikatan saluran tidak akan digunakan. |
Klien terhubung langsung ke server tujuan menggunakan SSL | None |
Pemeriksaan token pengikatan saluran digunakan dan pemeriksaan SPN tidak digunakan. |
Klien terhubung ke server tujuan melalui server proksi menggunakan HTTP untuk seluruh jalur |
Proxy , ProxyCohosting |
Pemeriksaan SPN akan digunakan dan pemeriksaan token pengikatan saluran tidak akan digunakan. |
Klien terhubung ke server tujuan melalui server proksi menggunakan SSL untuk seluruh jalur | Proxy |
Pemeriksaan SPN akan digunakan dan pemeriksaan token pengikatan saluran tidak akan digunakan. |
Klien terhubung ke server proksi menggunakan SSL dan server proksi terhubung ke server tujuan menggunakan HTTP (SSL off-loading) | Proxy |
Pemeriksaan SPN akan digunakan dan pemeriksaan token pengikatan saluran tidak akan digunakan. |
Informasi Tambahan
Informasi selengkapnya tentang Extended Protection tersedia dalam topik berikut:
Autentikasi Windows Terintegrasi dengan Perlindungan yang Diperluas
Kompatibilitas
Versi | Catatan |
---|---|
IIS 10.0 | Elemen <extendedProtection> tidak dimodifikasi di IIS 10.0. |
IIS 8.5 | Elemen <extendedProtection> tidak dimodifikasi di IIS 8.5. |
IIS 8.0 | Elemen <extendedProtection> tidak dimodifikasi di IIS 8.0. |
IIS 7.5 | Elemen <extendedProtection> ini diperkenalkan di IIS 7.5. |
IIS 7.0 | T/A |
IIS 6.0 | T/A |
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 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 ganda 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 yang Diperluas :
Klik OK untuk menutup kotak dialogPengaturan Tingkat Lanjut.
Konfigurasi
Elemen <extendedProtection>
ini dapat dikonfigurasi di tingkat direktori situs, aplikasi, atau virtual dalam file ApplicationHost.config.
Atribut
Atribut | Deskripsi | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
flags |
Atribut bendera opsional. Menentukan pengaturan perilaku tambahan untuk perlindungan yang diperluas. Atribut flags dapat berupa kombinasi dari nilai berikut; nilai defaultnya adalah None .
|
||||||||||||
tokenChecking |
Atribut enum opsional. Menentukan perilaku untuk memeriksa informasi pengikatan saluran. Atribut tokenChecking dapat menjadi salah satu nilai berikut; nilai defaultnya adalah None .
|
Elemen Anak
Elemen | Deskripsi |
---|---|
spn |
Menambahkan SPN ke koleksi. |
clearSpns |
Menghapus koleksi SPN. |
removeSpn |
Menghapus SPN dari koleksi. |
Sampel Konfigurasi
Contoh berikut menampilkan <extendedProtection>
elemen yang menunjukkan pengaktifan autentikasi Windows dengan perlindungan yang diperluas untuk Situs Web Default, dan menambahkan dua entri SPN ke kumpulan SPN.
<location path="Default Web Site">
<system.webServer>
<security>
<authentication>
<windowsAuthentication enabled="true">
<extendedProtection tokenChecking="Allow" flags="None">
<spn name="HTTP/www.contoso.com" />
<spn name="HTTP/contoso.com" />
</extendedProtection>
</windowsAuthentication>
</authentication>
</security>
</system.webServer>
</location>
Kode Sampel
Contoh berikut menunjukkan konfigurasi autentikasi Windows dengan perlindungan yang diperluas untuk Situs Web Default, dan menambahkan dua entri SPN ke kumpulan SPN.
AppCmd.exe
appcmd.exe set config "Default Web Site" -section:system.webServer/security/authentication/windowsAuthentication /enabled:"True" /commit:apphost
appcmd.exe set config "Default Web Site" -section:system.webServer/security/authentication/windowsAuthentication /extendedProtection.tokenChecking:"Allow" /extendedProtection.flags:"None" /commit:apphost
appcmd.exe set config "Default Web Site" -section:system.webServer/security/authentication/windowsAuthentication /+"extendedProtection.[name='HTTP/www.contoso.com']" /commit:apphost
appcmd.exe set config "Default Web Site" -section:system.webServer/security/authentication/windowsAuthentication /+"extendedProtection.[name='HTTP/contoso.com']" /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 windowsAuthenticationSection = config.GetSection("system.webServer/security/authentication/windowsAuthentication", "Default Web Site");
windowsAuthenticationSection["enabled"] = true;
ConfigurationElement extendedProtectionElement = windowsAuthenticationSection.GetChildElement("extendedProtection");
extendedProtectionElement["tokenChecking"] = @"Allow";
extendedProtectionElement["flags"] = @"None";
ConfigurationElementCollection extendedProtectionCollection = extendedProtectionElement.GetCollection();
ConfigurationElement spnElement = extendedProtectionCollection.CreateElement("spn");
spnElement["name"] = @"HTTP/www.contoso.com";
extendedProtectionCollection.Add(spnElement);
ConfigurationElement spnElement1 = extendedProtectionCollection.CreateElement("spn");
spnElement1["name"] = @"HTTP/contoso.com";
extendedProtectionCollection.Add(spnElement1);
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 windowsAuthenticationSection As ConfigurationSection = config.GetSection("system.webServer/security/authentication/windowsAuthentication", "Default Web Site")
windowsAuthenticationSection("enabled") = True
Dim extendedProtectionElement As ConfigurationElement = windowsAuthenticationSection.GetChildElement("extendedProtection")
extendedProtectionElement("tokenChecking") = "Allow"
extendedProtectionElement("flags") = "None"
Dim extendedProtectionCollection As ConfigurationElementCollection = extendedProtectionElement.GetCollection
Dim spnElement As ConfigurationElement = extendedProtectionCollection.CreateElement("spn")
spnElement("name") = "HTTP/www.contoso.com"
extendedProtectionCollection.Add(spnElement)
Dim spnElement1 As ConfigurationElement = extendedProtectionCollection.CreateElement("spn")
spnElement1("name") = "HTTP/contoso.com"
extendedProtectionCollection.Add(spnElement1)
serverManager.CommitChanges()
End Sub
End Module
JavaScript
var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";
var windowsAuthenticationSection = adminManager.GetAdminSection("system.webServer/security/authentication/windowsAuthentication", "MACHINE/WEBROOT/APPHOST/Default Web Site");
windowsAuthenticationSection.Properties.Item("enabled").Value = true;
var extendedProtectionElement = windowsAuthenticationSection.ChildElements.Item("extendedProtection");
extendedProtectionElement.Properties.Item("tokenChecking").Value = "Allow";
extendedProtectionElement.Properties.Item("flags").Value = "None";
var extendedProtectionCollection = extendedProtectionElement.Collection;
var spnElement = extendedProtectionCollection.CreateNewElement("spn");
spnElement.Properties.Item("name").Value = "HTTP/www.contoso.com";
extendedProtectionCollection.AddElement(spnElement);
var spnElement1 = extendedProtectionCollection.CreateNewElement("spn");
spnElement1.Properties.Item("name").Value = "HTTP/contoso.com";
extendedProtectionCollection.AddElement(spnElement1);
adminManager.CommitChanges();
Vbscript
Set adminManager = createObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"
Set windowsAuthenticationSection = adminManager.GetAdminSection("system.webServer/security/authentication/windowsAuthentication", "MACHINE/WEBROOT/APPHOST/Default Web Site")
windowsAuthenticationSection.Properties.Item("enabled").Value = True
Set extendedProtectionElement = windowsAuthenticationSection.ChildElements.Item("extendedProtection")
extendedProtectionElement.Properties.Item("tokenChecking").Value = "Allow"
extendedProtectionElement.Properties.Item("flags").Value = "None"
Set extendedProtectionCollection = extendedProtectionElement.Collection
Set spnElement = extendedProtectionCollection.CreateNewElement("spn")
spnElement.Properties.Item("name").Value = "HTTP/www.contoso.com"
extendedProtectionCollection.AddElement(spnElement)
Set spnElement1 = extendedProtectionCollection.CreateNewElement("spn")
spnElement1.Properties.Item("name").Value = "HTTP/contoso.com"
extendedProtectionCollection.AddElement(spnElement1)
adminManager.CommitChanges()