Otentikasi Windows di ASP.NET Core: Login manual vs. Login Intranet Otomatis dan Grup Tersedia

9

Saya memiliki aplikasi ASP.NET Core 3.0 yang bekerja dengan Otentikasi Windows Intranet lokal untuk mengidentifikasi pengguna yang masuk. Menggunakan perilaku Otentikasi Windows standar, saya dapat menangkap pengguna WindowsIdentitytanpa masalah.

Namun, tergantung pada bagaimana pengguna login ke browser menggunakan login Browser Intranet otomatis (mis. Tidak ada dialog kata sandi) atau secara eksplisit masuk menggunakan kotak dialog Kata sandi browser, saya mendapatkan hasil yang berbeda untuk grup pengguna .

Berikut ini adalah permintaan API yang menggemakan kembali informasi pengguna termasuk daftar keanggotaan grup yang difilter (yang tidak termasuk akun bawaan). Yang di sebelah kiri adalah login manual, yang di sebelah kanan login otomatis.

Untuk login eksplisit saya dengan benar melihat semua grup kustom yang menjadi bagian dari pengguna. Namun, untuk masuk otomatis, grup yang sama tidak muncul:

perbedaan grup untuk login manual vs otomatis

Saya juga mencermati contoh User dan Identity di server, dan ini mereferensikan SID yang sama persis untuk pengguna, jadi sepertinya aneh bahwa hasil yang berbeda sedang dikembalikan untuk Keanggotaan Grup.

Adakah gagasan mengapa daftar grup berbeda ketika saya mendapatkan akun yang sama dikembalikan? Perhatikan bahwa grup tersebut bersifat lokal sehingga tidak boleh menjadi masalah karena akses domain.

Catatan: Saya bahkan menguji secara lokal di localhost, dan untuk mengujinya saya menetapkan Pengaturan Proxy Windows di sini:

Konfigurasi masuk

Dengan kotak centang mati, saya dipaksa untuk masuk. Dengan diaktifkannya (di browser Chromium) saya harus memasukkan kredensial saya secara eksplisit ke dialog login browser.

Rick Strahl
sumber

Jawaban:

9

Sudahkah pengguna keluar dari komputer mereka sejak ditambahkan ke grup itu?

Grup yang terdaftar disimpan di token login pengguna. Saya pikir yang mungkin terjadi adalah bahwa masuk otomatis mengirim token masuk pengguna yang ada (dibuat saat mereka masuk ke Windows), sehingga tidak akan berisi grup apa pun yang telah mereka tambahkan sejak mereka masuk terakhir kali.

Memasukkan nama pengguna dan kata sandi secara manual melakukan login baru, dan dengan demikian mendapat token baru dengan semua grup pada saat login. Jadi grup baru akan muncul di sana.

Gabriel Luci
sumber
1
Setelah beberapa pemeriksaan tambahan ternyata Anda benar sekali. Awalnya saya pikir saya telah me-reboot mesin sejak masalah muncul, tetapi setelah benar-benar memaksa keluar dan masuk saya menemukan bahwa memang setelah masuk lagi saya bisa melihat grup. Terima kasih - begitu jelas dalam retrospeksi namun masih begitu mudah untuk dilewatkan.
Rick Strahl