Konfigurasikan otentikasi Kerberos di situs IIS

Petunjuk langkah demi langkah untuk mengatur otentikasi transparan pengguna domain dalam mode SSO (Single Sign-On) menggunakan protokol Kerberos di situs web IIS pada Windows Server 2012 R2.

Di server web, luncurkan konsol IIS Manager, pilih situs yang diinginkan dan buka bagian tersebut Otentikasi. Seperti yang Anda lihat, secara default hanya otentikasi anonim yang diizinkan (Anonim Otentikasi) Matikan dan nyalakan Windows Otentikasi (IIS selalu mencoba otentikasi anonim terlebih dahulu).

Kami membuka daftar penyedia yang tersedia untuk otentikasi Windows (Penyedia) Secara default, dua penyedia tersedia: Bernegosiasi dan NTLM. Negotiate adalah sebuah wadah yang menggunakan Kerberos sebagai metode otentikasi pertamanya, jika otentikasi ini gagal, NTLM digunakan. Perlu bahwa dalam daftar penyedia metode Bernegosiasi berdiri duluan.

Langkah selanjutnya adalah pendaftaran Nama Pokok Layanan (SPN) catatan untuk nama situs yang akan diakses pengguna. Jika situs IIS harus dapat diakses hanya dengan nama server di mana ia berada (http: // server-name atau http://server-name.contoso.com), Anda tidak perlu membuat catatan SPN tambahan (catatan SPN sudah ada di akun server dalam AD). Jika Anda menggunakan alamat situs selain nama host, atau ketika membangun web farm yang seimbang, Anda harus mengikat SPN tambahan ke server atau akun pengguna.

Misalkan kita memiliki server farm IIS. Dalam hal ini, optimal untuk membuat akun terpisah dalam AD dan mengikat catatan SPN ke sana. Dari bawah akun yang sama mereka akan meluncurkan Pool Aplikasi target situs kami.

Buat akun domain iis_layanan. Pastikan tidak ada entri SPN yang ditetapkan untuk objek ini (atribut servicePrincipalName kosong).

Asumsikan bahwa situs tersebut harus menanggapi alamat _http: // webportal dan _http: //webportal.contoso.loc. Kami harus mendaftarkan alamat ini dalam atribut SPN dari akun layanan.

Setspn / s HTTP / webportal contoso \ iis_service
Setspn / s HTTP / webportal.contoso.loc contoso \ iis_service

Karenanya, kami akan mengizinkan akun ini untuk mendekripsi tiket Kerberos ketika pengguna mengakses alamat ini dan mengotentikasi sesi.

Anda dapat memeriksa pengaturan SPN untuk akun Anda sebagai berikut:

setspn / l iis_service

Kiat. Kerberos tidak akan berfungsi dengan benar jika ada duplikat SPN pada catatan domain yang berbeda. Menggunakan perintah berikut, verifikasi bahwa tidak ada duplikat SPN di domain: setspn -x

Langkah selanjutnya adalah mengonfigurasi Pool Aplikasi IIS untuk dijalankan dari bawah akun layanan yang dibuat.

Pilih situs Application Pool (dalam contoh kami, ini adalah DefaultAppPool).

Buka bagian pengaturan Mahir Pengaturan  dan pergi ke parameter Identitas.

Ubah dengan ApplicationPoolIdentity pada contoso \ iis_service.

Kemudian, di konsol IIS Manager, buka situs Anda dan pilih bagian Editor konfigurasi.

Di menu tarik-turun, buka bagian system.webServer> keamanan> otentikasi> windowsAuthentication

Ubah gunakanAppPoolCredentials pada Benar.

Dengan demikian, kami akan memungkinkan IIS untuk menggunakan akun domain untuk mendekripsi tiket Kerberos dari klien.

Mulai ulang IIS dengan perintah:

iisreset

Konfigurasi yang sama harus dilakukan pada semua server pertanian web.

Kami menguji otorisasi Kerberos dengan membuka alamat klien di browser klien (browser terlebih dahulu harus dikonfigurasi untuk menggunakan Kerberos) _http: //webportal.contoso.loc

Catatan. Dalam contoh saya, saya tidak bisa segera masuk di IE11. Saya harus menambahkan alamat ke yang tepercaya dan dalam pengaturan Situs Zona Tepercaya mengatur nilai Otentikasi Pengguna -> parameter Logon ke Otomatis masuk dengan saat ini pengguna nama dan kata sandi

Anda dapat memverifikasi bahwa Kerberos digunakan untuk otorisasi di situs dengan memeriksa lalu lintas HTTP dengan utilitas Fiddler (kami telah menyebutkan utilitas ini sebelumnya).

Kami memulai Fiddler, di browser kami membuka situs target. Di jendela kiri kami menemukan garis akses ke situs. Di sebelah kanan, buka tab Inspektur. Tali Header Otorisasi (Negosiasi) tampaknya berisi tiket Kerberos, mengatakan bahwa protokol Kerberos digunakan untuk otorisasi di situs IIS.