Komputer lokal saya menggunakan Windows 7 Pro dan milik ranah LR, dikelola oleh server AD. Saya login ke komputer saya ketika terhubung ke jaringan ranah itu. Saya dapat melihat TGT dengan MIT Kerberos untuk Windows ver. 4.0.1.
Saya ingin mengakses sumber daya di ranah asing, FR. Tidak ada kepercayaan Kerberos antara LR dan FR, tetapi mereka mengizinkan lalu lintas TCP antara satu sama lain. Saya meminta TGT untuk FR dengan KDC-nya (Red Hat IdM / FreeIPA) dan berhasil memasukkan kata sandi saya ketika ditantang. Sekali lagi, saya dapat melihat TGT dengan MIT Kerberos untuk Windows ver. 4.0.1. Saya sekarang dapat mengakses sumber daya di FR melalui SSH tanpa diminta kata sandi, meskipun berasal dari LR.
Masalahnya adalah ketika saya mendapatkan TGT untuk FR, TGT untuk prinsipal LR saya menghilang. Hanya FR TGT yang terlihat di MIT Kerberos. Jika saya mengunci komputer saya dan kemudian membuka kunci dengan kata sandi saya, sekarang FR TGT hilang, diganti dengan LR TGT baru.
Tampaknya MIT Kerberos untuk Windows hanya dapat menyimpan satu TGT dalam satu waktu. Setiap TGT sepenuhnya bekerja untuk wilayahnya untuk semua maksud dan tujuan. Bagaimana saya bisa mengkonfigurasi MIT Kerberos agar saya memiliki dua TGT sekaligus, satu untuk setiap bidang? Apakah mungkin untuk "memisah-misahkan" dengan beberapa instance klien, masing-masing menunjuk ke KRB5_CONFIG dan keytab lokal yang berbeda? Jika saya tidak bisa, apakah ada implementasi Windows alternatif Kerberos 5 sisi-klien yang akan, bahkan ketika tidak ada kepercayaan antar-wilayah?
PS - Saya tidak ingin kepercayaan. Tidak bisa mendapatkan kepercayaan
UPDATE: Saya meninggalkan beberapa detail ini sebelumnya karena saya pikir itu mungkin membingungkan masalah ini. Tetapi berdasarkan jawaban Brad, itu mungkin perlu. Saya berharap sebagian besar perangkat lunak lokal akan menggunakan implementasi Windows bawaan Kerberos dan selalu menggunakan LR keytab.
Namun, pengguna listrik seperti saya menggunakan heimdal di bawah Cygwin ke SSH ke FR. Saya mengharapkan sesuatu melalui Cygwin DLL menggunakan heimdal dan tidak pernah melihat LR TGT (yang tidak, setidaknya tidak secara default). Saya secara eksplisit kinit dan melanjutkan.
Bagian yang sulit muncul untuk pengguna non-daya yang harus saya dukung yang tidak menggunakan Cygwin tetapi gunakan Putty. Putty memungkinkan Anda menentukan jalur pustaka dan DLL untuk penerapan GSSAPI yang digunakan. Misalnya, saya mengkonfigurasi sesi SSH untuk menggunakan DLL MIT Kerberos alih-alih Windows DLL bawaan. Saya berharap ada DLL di luar sana yang entah tidak pernah mencoba menemukan LR TGT (seperti heimdal) atau mengizinkan beberapa TGT dari berbagai bidang. Tidak harus memiliki jendela GUI seperti MIT Kerberos, tetapi itu membantu.
Jawaban:
Yah saya tidak akan mengatakan itu TIDAK BISA dilakukan dengan Windows, tapi saya akan mengatakan bahwa batasannya adalah sesi berbasis. Masalahnya kemudian, adalah bahwa untuk setiap sesi Windows cache satu tiket. Ketika Anda mengunci komputer Anda, lalu buka kunci, sesi lain akan dimulai dan kunci baru diminta dari KDC. Hal yang sama terjadi ketika Anda log off kemudian ke komputer Anda lagi. Metode ini sebenarnya adalah bagaimana izin pengguna ditentukan untuk sesi server juga, yang berarti kunci / tiket dapat di-cache sehingga setiap sumber daya server atau sesi yang Anda mulai tidak harus meminta kata sandi, tetapi saya tidak pernah mendengar / baca / teliti itu untuk dapat men-cache lebih dari satu.
Sekarang, Anda mungkin sudah tahu bahwa dengan pengetahuan Anda bahwa Anda telah ditampilkan dalam pertanyaan Anda, jadi saya akan mengatakan bahwa berdasarkan fakta bahwa Windows menyimpan kunci yang Anda dapatkan ketika TGT dikeluarkan dan berbasis sesi, saya tidak pikir itu mungkin dengan HANYA Windows. MIT Kerberos untuk Windows mungkin memiliki cara untuk memulai dua sesi di bawah satu pengguna, tetapi meskipun begitu, saya tidak yakin bagaimana sumber daya yang Anda akses akan tahu tiket / kunci pasangan mana yang akan digunakan. Apakah itu masuk akal?
Silakan lihat ini untuk deskripsi bagaimana Windows menyimpan TGT / pasangan kunci.
Pertanyaan yang sangat bagus.
sumber
OK, saya datang dengan solusi kerja yang membutuhkan lebih banyak polesan, jadi mungkin tidak bekerja di semua lingkungan.
Ini bekerja dengan:
Saya mencari di sumber MIT Kerberos dan menemukan README untuk Windows . Yang menarik adalah nilai yang berbeda untuk Credentials Cache . Ini mendukung nilai default API :, tetapi saya secara mengejutkan menemukan registri saya menggunakan MSLSA: sebagai gantinya.
Saya bermain-main dengan berbagai nilai ccname di bawah
HKEY_CURRENT_USER\Software\MIT\Kerberos5
. Saya mencoba MEMORY: pada awalnya, yang mengarah pada perilaku yang menarik. Saat membuka sesi Putty, jendela MIT Kerberos Ticket Manager saya akan pulih dan datang ke latar depan, meminta saya untuk memasukkan kredensial. Wow! Itu tidak pernah terjadi sebelumnya, tetapi sayangnya, Putty akan menolaknya. Nilai yang berhasil bagi saya adalahFILE:C:\Some\Full\File\Path
. Saya tidak yakin bagaimana cara mengamankan akses ke file yang ditentukan, jadi saya akan meninggalkan itu sebagai latihan untuk pembaca. Saya mendapat perilaku window-to-the-foreground yang sama, hanya PuTTY yang menyukainya saat ini. Jendela Ticket Manager akhirnya juga menampilkan tiket LR dan FR. Tiket terbukti dapat diteruskan dan akan bertahan beberapa Windows Lock / Unlock. CATATAN:pastikan untuk sepenuhnya Keluar dan memulai kembali Tiket Manajer di antara suntingan registri. Saya belum mencoba keluar ccname dari API: belum.Saya tidak tahu apakah ini membuat perbedaan atau tidak, tetapi saya juga bermain-main dengan KSETUP sebelum ini mulai bekerja. Pada awalnya, KSETUP tanpa parameter hanya akan menunjukkan kepada saya informasi tentang LR. Saya menambahkan beberapa info tentang FR di workstation lokal saya.
sumber
Bagi saya, sepertinya ada bug di Kerberos untuk Windows.
Saya menemukan yang berikut:
Jika saya menggunakan opsi "dapatkan tiket" di jendela KfW 4.0.1, itu hanya berfungsi (TM); Saya bisa menekan tombol "Dapatkan tiket", dan mendapatkan tiket tambahan ke tiket asli yang saya dapatkan ketika saya masuk.
Jika saya menekan opsi "make default" di jendela KfW, maka sejak saat itu setiap kali saya menekan "dapatkan tiket", tiket baru akan menggantikan tiket apa pun yang merupakan bawaan, daripada menambahkan entri lain ke daftar tiket yang dikenal . Memeriksa registri pada saat itu akan menunjukkan bahwa
ccname
entri (seperti dalam jawaban Toddius) telah ditambahkan. Menghapus entri itu, secara mengejutkan, mengembalikan perilaku sebelumnya yang mengizinkan beberapa tiket.sumber
Mengikuti jawaban Toddius, saya memiliki rekan kerja dalam situasi yang sama (Windows 7 Enterprise 64-bit, bergabung dengan domain AD, juga menjalankan MIT Kerberos untuk Windows 4.0.1): Salinannya dari Manajer Tiket Kerberos akan hanya mengizinkannya untuk memiliki satu kepala sekolah / satu TGT. Kapan pun dia akan menggunakan tombol "Dapatkan Tiket" untuk mendapatkan TGT untuk kepala sekolah yang berbeda, kepala sekolah sebelumnya akan hilang.
Saya meninjau README , dan sebagian besar kunci registri ditetapkan seperti yang diharapkan, kecuali untuk ccname kunci di jalan
HKEY_CURRENT_USER\Software\MIT\Kerberos5
. Kunci itu disetel ke nilainyaMSLSA:
. Perbaikan kami adalah mengubahnya menjadiAPI:
. Lebih khusus lagi, langkah-langkahnya adalah:HKEY_CURRENT_USER\Software\MIT\Kerberos5
, ubah kunci ccname keAPI:
(API, lalu titik dua).Dengan langkah-langkah di atas, semuanya bekerja, dan saya rekan kerja sekarang dapat melihat beberapa prinsipal / TGT sekaligus.
Omong-omong, MIT Kerberos untuk Windows menghadirkan serangkaian program command-line-nya sendiri (seperti klist), dan program-program itu mendukung banyak cache kredensial. Pada sistem 64-bit saya, ketika saya menjalankan
"C:\Program Files\MIT\Kerberos\bin\klist.exe" -A"
setelah mendapatkan beberapa TGT, saya melihat prinsip Active Directory saya di cache MSLSA, dan kemudian saya memiliki satu cache API untuk setiap prinsipal tambahan.PS Ini adalah entri pertama saya di situs ini, jadi saya tidak dapat menambahkannya sebagai komentar untuk jawaban Toddius. Permintaan maaf!
sumber