Apakah pengaturan Kerberos / AD ini dimungkinkan?

10

Kami memiliki pengaturan IDAM yang sedikit rumit:

masukkan deskripsi gambar di sini

Yaitu mesin pengguna akhir dan browser duduk di satu jaringan dengan AD induk, dan aplikasi berbasis Jetty kami dan AD yang dapat berbicara dengan (AD lokal) duduk di yang lain.

Ada kepercayaan dua arah antara kedua iklan. Browser di jaringan induk memiliki domain lokal di situs tepercaya.

Pengaturan server Jetty adalah sebagai berikut:

  • menggunakan file keytab yang dihasilkan terhadap prinsipal di AD lokal
  • itu berjalan sebagai layanan Windows di bawah pengguna yang ditentukan dalam AD lokal
  • ranah, pemetaan domain-ranah dan kdc didefinisikan terhadap domain AD lokal
  • ia menggunakan spnego - isInitiator disetel ke false; doNotPrompt benar; storeKey benar

Masalahnya adalah:

  • sebagai tes, mengakses server dari browser di dalam jaringan lokal (mis. tertaut ke AD lokal) berfungsi - info debug Kerberos muncul di log, saya bisa melihat negosiasi Kerberos yang benar dalam lalu lintas HTTP, dan pengguna masuk secara otomatis . Cemerlang.
  • namun , mengakses server dari browser di dalam jaringan induk (yang merupakan cara pengguna kami melakukan sesuatu) tidak berfungsi! Browser mendapat kembali 401 unauth tetapi kemudian meminta kredensial, yang ketika dimasukkan memberikan layar kosong. Kemudian mengklik ke bilah alamat dan menekan Enter melakukan salah satu dari dua hal, tergantung pada apakah kredensial untuk AD jarak jauh atau lokal:

    • Kredensial AD lokal kemudian masuk dengan baik, dengan Kerberos dari awal di log (Dapatkan permintaan, 401 respons tidak sah, permintaan header Kerberos, dll)
    • kredensial AD terpencil tidak login (permintaan GET, 401 respon unauth, apa yang tampak seperti header NTLM: Authorization: Negotiate <60 or so random chars>)

Apa pun itu, fakta bahwa dorongan itu salah!

Adakah penjelasan untuk gejala-gejala ini? Bisakah pengaturan yang kita lakukan melakukan apa yang kita inginkan?

Dalam hal bagaimana dengan uraian di atas bisa salah: konfigurasi apa pun yang saya sebutkan mengenai server Jetty harus akurat, seperti yang saya lakukan. Saya senang memberikan detail lebih lanjut. Konfigurasi apa pun mengenai AD atau browser jaringan induk berpotensi dicurigai, karena tidak di bawah kendali saya dan konfigurasi saya sudah dilaporkan kepada saya daripada melihatnya sendiri.

Robert Grant
sumber
apakah TCP / 88 terbuka di antara browser untuk server yang terdaftar di hasil dns untuk _kerberos._tcp.OurITOrgDomain dan _kerberos._tcp.partentdomain? dapatkah Anda melakukan kinit dari 'browser' mesin dengan kredensial yang Anda perlukan untuk mengautentikasi di server Jetty?
Jacob Evans
roguelynn.com/words/explain-like-im-5-kerberos mungkin menjelaskan bagaimana firewall Anda mungkin menyebabkan masalah Anda (sekali lagi, 88 untuk kedua dc dari klien Anda)
Jacob Evans
Ada terlalu banyak variabel untuk penjelasan langkah demi langkah yang terperinci tanpa mengambil tangkapan jaringan. Kemudian Anda akan dengan cepat melihat apakah SPN diatur dengan benar atau jika browser perlu dikonfigurasi untuk otentikasi secara diam-diam.
user2320464

Jawaban:

3

Tanpa melihat tangkapan paket, saya kira SPN HTTP / www.website.com perlu didaftarkan ke akun yang menjalankan aplikasi. Tim Layanan Direktori Microsoft memiliki pos multi-bagian hebat yang membahas topik ini di URL berikut.

https://blogs.technet.microsoft.com/askds/2008/05/29/kerberos-authentication-problems-service-principal-name-spn-issues-part-1/

Jalankan tangkapan paket (netmon, wireshark) dari klien di setiap lingkungan untuk mengidentifikasi SPN apa yang sedang dicari. Setelah ditentukan, gunakan cmd setspn untuk mendaftarkannya ke akun yang menjalankan aplikasi.

FWIW, Kerberos hanya berfungsi saat di LAN. Jika seseorang membutuhkan akses di mana pengontrol domain tidak dapat diakses, maka Anda ingin mempertimbangkan SSO seperti Shibboleth atau ADFS.

EDIT: seperti yang disebutkan oleh @ alex-h , browser perlu dikonfigurasi untuk mengautentikasi secara diam-diam melalui Kerberos.

  • Internet Explorer - sementara artikel TechNet tidak khusus untuk aplikasi Anda, langkah-langkahnya sama.
  • Firefox - sama seperti tautan IE, tidak sama persis tetapi langkah-langkahnya sama.

Terakhir, ini adalah masalah umum dengan penyebaran Microsoft Sharepoint. Mereka ingin SSO melalui Kerberos terjadi secara diam-diam setelah pengguna mengautentikasi ke domain. Jadi jika jawaban di atas tidak menyelesaikan masalah Anda, coba periksa forum mereka seperti berikut ini:

Kerberos di Chrome, Safari atau FireFox

pengguna2320464
sumber
Jawaban yang bagus, lebih baik dari saya!
Alex H
Terima kasih untuk Anda berdua - saya butuh beberapa hari untuk membaca dokumen terkait, tapi saya belum meninggalkan pertanyaan atau apa pun!
Robert Grant
Eh, ini sebenarnya bukan, tapi saya pikir mungkin yang terbaik untuk menerima jawaban ini karena yang asli adalah kasus yang sangat tidak biasa yang akan saya tambahkan sebagai jawaban terpisah. Terima kasih banyak!
Robert Grant