1C ke pengguna ini tidak ada peran yang dapat diakses. Kotak dialog yang paling tidak dapat dipahami di Direktori Aktif

10.29.2012 Tim Springston.

Dalam artikel ini, saya akan mencoba untuk mengklarifikasi beberapa aspek dari "kotak dialog paling tidak dapat dipahami dalam AD", yang merupakan tab delegasi di jendela Properties dari pengguna Active Directory dan komputer dari Microsoft Management Console (MMC) (DSA.MSC) ). Kami akan melihat nilai atribut untuk konfigurasi yang berbeda. Memahami penugasan parameter instalasi akan memungkinkan Anda untuk mengkonfigurasi dengan benar dalam aplikasi dan layanan AD menggunakan delegasi Kerberos

Tim Springston ( [Dilindungi Email]) - Insinyur Layanan Senior dukungan teknis Divisi dukungan teknis komersial di Microsoft bertanggung jawab atas keamanan dan otorisasi.

Salah satu yang paling aktif dibahas dalam teknologi Microsoft adalah otentikasi pada protokol Kerberos. Aneh jika kita menganggap bahwa teknologi itu sendiri dan fungsinya belum mengalami perubahan signifikan sejak rilis Server Windows. 2003. Namun Kerberos tetap menjadi subjek untuk mengkompilasi dokumentasi tambahan.

Permanen perlu mempelajari aspek teknis dari pekerjaan Kerberos dan penyebab kesalahan adalah karena fakta bahwa, meskipun teknologi itu sendiri tetap tidak berubah, menggunakan layanan dan metode penggunaannya seringkali unik. Namun, dalam setiap skenario, penugasan parameter instalasi Active Directory (AD) dan arti pesan kesalahan tetap ada.

Dalam artikel ini, saya akan mencoba untuk mengklarifikasi beberapa aspek dari "kotak dialog paling tidak dapat dipahami dalam AD", yang merupakan tab delegasi di jendela Properties dari pengguna Active Directory dan komputer dari Microsoft Management Console Console (MMC) (DSA) (DSA) (DSA) (DSA. msc). Kami akan melihat nilai atribut untuk konfigurasi yang berbeda. Memahami penugasan parameter instalasi akan memungkinkan Anda untuk mengkonfigurasi dengan benar dalam aplikasi dan layanan AD menggunakan delegasi Kerberos.

Antarmuka sederhana

Mengapa menghabiskan waktu untuk menjelajahi antarmuka "sederhana"? Perlu untuk mempelajari detail, karena pemahaman tentang aspek teknis dari pekerjaan berbagai parameter akan memungkinkan lebih berhasil untuk memperbaiki kesalahan dalam konfigurasi mereka. Karena itu, mari kita mulai dengan memahami makna instalasi. Jika Anda membuka pengguna dan komputer Direktori Aktif dan pergi ke properti akun komputer, Anda akan melihat tab delegasi delegasi (asalkan hutan Anda berada di tingkat fungsional Server 2003). Tab ini ditampilkan di layar 1. Untuk menjelaskan penugasan sakelar tab ini pada layar 2, nama alternatif dapat diberikan.

Sebelum Anda memperdalam arti parameter, jelaskan delegasi apa itu Kerberos. Delegasi (juga disebut sebagai "personifikasi" atau delegasi sederhana) adalah proses penerimaan aplikasi atau layanan tiket Kerberos untuk mengakses sumber daya atau komputer remot Atas nama pengguna. Tepercaya untuk delegasi esensi adalah layanan akun, Atas nama yang digunakan aplikasi. Delegasi memungkinkan aplikasi hanya mengakses sumber daya tempat pengguna akan memiliki akses dan mengirimkan informasi pengguna. Sebagai contoh skrip, Anda dapat membawa server web yang terhubung ke sistem SQL Server untuk menampilkan data yang dibutuhkan pengguna ke klien web.

Dua opsi atas ("Jangan Percayai Delegasi Komputer" dan "Percayai Delegasi Komputer Layanan Apa Pun") pada layar 1 tidak memerlukan klarifikasi. Opsi ketiga adalah delegasi terbatas Kerberos yang dibatasi delegasi (kCD), hampir mirip dengan delegasi sederhana, tetapi memberikan delegasi sertifikat individu hanya untuk layanan atau komputer yang ditentukan. Opsi ini memberikan lebih banyak level tinggi Keamanan, membatasi ruang lingkup delegasi identitas pengguna yang dipersonifikasikan, sehingga dalam hal kompromi sertifikat layanan dipercaya untuk delegasi, konsekuensinya terbatas pada kemampuan untuk mengakses hanya sumber daya tersebut server jarak jauhyang dipilih secara manual untuk delegasi terbatas.

Versi keempat di layar 1 memungkinkan ekstensi KCD dan layanan untuk ULER (atau S4U). Ekstensi S4U memberikan fungsi yang lebih luas, seperti perubahan protokol. Perubahan protokol terjadi ketika klien pertama kali melakukan otentikasi melalui protokol selain Kerberos, dengan koneksi yang masuk, dan kemudian beralih ke Kerberos. Detil Deskripsi S4U terkandung dalam dokumentasi "Menjelajahi S4u Kerberos di Windows Server 2003" Dokumentasi (MSDN.Microsoft.com/en-us/magazine/cc188757.aspx) dan "Protocol Transition dengan Suplemen Teknis Delegasi Terbatas" (MSDN.Microsoft.com / en- US / library / ff650469.aspx). Sumber daya ini difokuskan pada programmer, dan bukan pada administrator, tetapi juga penting bagi administrator untuk memahami apa yang S4U adalah bagaimana melakukannya dan kapan harus digunakan. Untuk tujuan ini, kami memberikan daftar singkat fitur S4U untuk administrator.

Memperoleh informasi tentang penanda pengguna tanpa penerimaan aktual dari penanda ini dan tanpa menerima tiket tiket pemberian tiket (TGT) dengan tiket layanan tiket tepercaya dari pengguna yang dipercaya atau akses ke data akun. Informasi yang diperoleh kemudian dapat digunakan, misalnya, untuk memverifikasi otorisasi. Perpanjangan ini dikenal sebagai layanan-untuk-pengguna-ke-diri (S4U2).

Memperoleh tiket tanpa perlu menerima tiket utilitas Kerberos, tanpa akses ke data akun, transmisi TGT atau tanpa otentikasi - layanan-untuk-user-to-proxy (S4U2Proxy).

Melakukan perubahan protokol yang disebutkan sebelumnya. Klien mengajukan banding ke layanan perusahaan pada awalnya melakukan otentikasi menggunakan metode selain Kerberos, dan S4U memungkinkan layanan tepercaya untuk mengganti sesi pengguna yang telah lulus otentikasi untuk penggunaan Kerberos. Di sinilah kesalahan konfigurasi yang disebabkan oleh kesalahan konfigurasi sering terjadi, karena dokumentasi aplikasi seringkali tidak mengandung penjelasan yang jelas tentang apakah protokol diperlukan dan bagaimana mengkonfigurasinya dalam AD. Namun, topik ini relevan, karena hari ini hampir tidak ada artikel tanpa menyebutkan "awan". Klien yang menghubungkan melalui "cloud" akan paling sering menerapkan otentikasi NTLM karena kurangnya permintaan pengontrol domain (DC) untuk penerbitan tiket layanan Kerberos di Internet. Mengubah protokol memungkinkan pengguna untuk menghubungkan domain ini melalui perangkat lunak layar jaringan atau server proxy menggunakan salah satu metode otentikasi (misalnya, NTLM), dan kemudian beralih ke otentikasi Kerberos untuk melakukan tindakan lebih lanjut di dalamnya jaringan perusahaan. Karena "cloud" berarti menghubungkan melalui Internet, Anda mungkin tidak ragu jika Anda menggunakan solusi "berawan", maka cepat atau lambat Anda akan menggunakan perubahan protokol Kerberos.

Di bawah selubung luar

Sekarang pertimbangkan apa yang sebenarnya terjadi ketika Anda menginstal masing-masing dari empat parameter ini, menggunakan LDP melihat nilai atribut yang ditetapkan untuk setiap konfigurasi. LDP diinstal dengan hak AD layanan domain secara default dan dapat digunakan sebagai alat pemrosesan LDAP saat ini antarmuka grafis.. LDP memungkinkan Anda untuk membuat permintaan LDAP Anda sendiri dan melihat hasilnya dalam bentuk yang nyaman untuk persepsi. Keuntungan tambahan menggunakan LDP untuk melihat nilai atribut (misalnya, UserAccountControl) adalah untuk mentransfer nilai parameter yang dihitung ke formulir kukus alih-alih kombinasi angka. Ngomong-ngomong, lebih versi terlambat Adsiedit.msc juga menyediakan pemrosesan nilai parameter yang dihitung serupa.

Jadi, di Windows Server 2008 dan versi LDP.exe dan adsiedit.msc yang lebih baru menyediakan terjemahan otomatis Nilai atribut (misalnya, useraccountcontrol), yang menghilangkan kebutuhan untuk membuka Calc.exe dan mengakses dokumentasi online di MSDN atau ke basis pengetahuan Microsoft.

Sekarang pertimbangkan untuk mengubah nilai atribut dalam LDP, tergantung pada installer. Mari kita mulai dengan akun yang tidak dipercaya untuk delegasi. Di layar 3, jelas bahwa akun test2 tidak tepercaya dan nilai heksadesimal 1020 dari atribut UserAccountCountControl (sesuai dengan desimal 4128) diterjemahkan ke workstation_trust_account dan passwd_notreqd.

Di layar 4 menunjukkan akun yang dipercayakan untuk delegasi. Kita dapat melihat nilai atribut UserAccountControl diterjemahkan ke dalam tepercaya_for_delegation, menunjukkan resolusi delegasi Kerberos tanpa batas sederhana ke sertifikat layanan ini.

Delegasi kepercayaan ke layanan tertentu

Pengaturan berikut sangat penting jika dimaksudkan untuk menggunakan S4U atau KCD. Kasus pertama sesuai dengan pilihan kepercayaan komputer ini untuk delegasi ke layanan yang ditentukan saja ("Trust komputer ini hanya mendelegasikan layanan yang ditentukan") dan gunakan Kerberos saja ("hanya menggunakan Kerberos"). Di layar 5, dapat dilihat bahwa dengan pilihan atribut useraccountcontrol seperti itu lagi menerima workstation_trust_account, dan atribut msds-allowntodelegto secara otomatis diisi dengan layanan yang dipilih yang diizinkan delegasi. Tidak ada prosedur lain yang diisi dengan atribut ini dan tidak terpengaruh. Sebagai catatan mencantumkan layanan tertentu pada komputer tempat delegasi diizinkan.

Opsi kedua kurang aman - Gunakan protokol otentikasi apa pun ("Gunakan protokol apa pun untuk otentikasi"), memungkinkan perubahan protokol dan opsi ekstensi lainnya. Selain entri di atribut MSDS-BizeTodelegateto, pengaturan ini mengubah atribut UserAccountControl, yang menerima trusted_to_authenticate_for_delegation (T2A4D), seperti yang ditunjukkan pada layar 6. Tanpa bendera T2A4D, Anda dapat mengharapkan kesalahan perubahan protokol. Tidak ada komponen lain dalam bendera ini yang digunakan. Perhatikan bahwa sakelar sederhana ini sangat penting karena jika tidak dipilih, maka S4U2, S4U2Proxy dan perubahan protokol akan berperilaku berbeda, yang dapat menciptakan masalah untuk aplikasi dan layanan yang menunggu jenis tiket yang relevan. Secara khusus, perubahan protokol akan berakhir dengan kesalahan, dan tiket tidak akan dikeluarkan. S4U2Proxy dan S4U2Self tidak akan memiliki bendera penerusan (pengalihan), yang akan menghasilkan kesalahan: Untuk S4U2Proxy - dalam hal apa pun, dan untuk S4U2 - dalam situasi, ketika Anda perlu mengirim tiket ke layanan atau node lain.

"Lakukan sendiri"

Apa yang terjadi jika akun layanan layanan yang digunakan oleh aplikasi atau layanan harus melakukan tindakan yang memerlukan perubahan protokol, dan tab delegasi akan diatur ke penggunaan Kerberos saja ("hanya menggunakan Kerberos") alih-alih menggunakan apa pun Protokol otentikasi ("Gunakan otentikasi protokol apa pun")? Untuk aplikasi klien, kesalahan dapat mengambil formulir akses yang ditolak ("ditolak akses") ketika Anda mencoba untuk mendapatkan akses ke sumber daya jaringan, atau kesalahan dapat terjadi tanpa memberi tahu otentikasi NTLM, atau kesalahan ketergantungan aplikasi yang tidak terduga. Ketidakpastian manifestasi kesalahan lebih lanjut mempersulit tugas. Hasil yang paling mungkin, bagaimanapun, akan diakses ditolak ("mengakses akses"). Dalam situasi seperti itu, pastikan untuk mempelajari dokumentasi aplikasi atau layanan dan mencari tahu apakah protokol berubah atau permintaan untuk menerima tiket dari layanan tanpa TGT tidak akan dikatakan. Masalahnya adalah bahwa sebagian besar kompilasi dokumentasi benar-benar tidak memahami makna konfigurasi KCD dan karenanya memberikan penjelasan yang tidak cukup, atau mereka umumnya biaya tanpa mereka.

Metode klarifikasi penyebab kesalahan pada prinsip "DIY" dapat menjadi koleksi sederhana data jejak jaringan dari server yang dipercaya untuk delegasi. Data Collected Filter oleh Kerberos (Kerberosv5 di Microsoft Network Monitor atau Kerberos di Wireshark). Permintaan tiket untuk menerbitkan tiket (TGS_REQ) ditransmisikan ke Pusat Distribusi Kerberos Distribution Center (KDC) dan berisi parameter KDC dengan bendera delegasi terbatas. Jika Anda menolak untuk mengeluarkan tiket, respons server (TGS_REP) akan berisi kesalahan KDC_ERR_BAD_OPTION, yang mudah diperhatikan dalam hasil tracing jaringan.

Informasi lebih lanjut tentang pekerjaan implementasi Microsoft Kerberos dapat ditemukan dalam spesifikasi Online Protokol Terbuka. Kerberos Protocol Extensions (msdn.microsoft.com/en-us/library/cc233855%28v\u003dprot.13%29.aspx) berisi dokumentasi umum untuk Kerberos, dan "Kerberos Protocol Extensions: Layanan untuk pengguna dan spesifikasi protokol delegasi yang dibatasi" ( Msdn.microsoft.com/en-us/library/cc246071%28v\u003dprot.13%29.aspx) - Dokumentasi tentang delegasi terbatas Kerberos dan S4U.

Dunia yang sempurna

Saya berharap bahwa analisis pengaturan di atas di jendela Antarmuka Kerberos dan korespondensi mereka dalam AD akan membantu Anda lebih memahami makna mereka. Ideal bisa menjadi dunia di mana dokumentasi layanan yang dikelola akan berisi panduan teknis untuk mereka pengaturan yang tepat Untuk otentikasi. Namun, jika kenyataannya jauh dari ideal, informasi ini harus membantu meningkatkan toolkit Anda. Memahami aspek teknis dari pekerjaan parameter akan menjadi kunci kesuksesan.



2 jawaban

terpecahkan.

Babak pertama adalah tekanan berlebih saya. Paruh kedua ... Yah, aku tidak punya kabar tentang apa yang salah. Bahkan, ini bukan kesalahan, atau ketidakcocokan, tetapi ada sesuatu yang sangat tidak nyaman, intermiten dan sulit dipahami. Pertama, ringkasan, dan kemudian penjelasan panjang bagi mereka yang peduli:

Terlepas dari kalimat pesan kesalahan, ini bukan masalah dengan model konseptual (CSDL), tetapi masalah membandingkan kolom, yang dibuat kembali dengan interupsi.

Model konseptual dibangun menggunakan EDMXWriter untuk analisis sintaksis DBContext dan bagian utamanya.

Model ini kemudian digunakan untuk menghasilkan skrip SQL untuk mentransfer sirkuit ke basis data baru. Fokusnya adalah bahwa basis data adalah Oracle.

Oracle adalah anak dan tidak menerima nama kolom yang panjang. Dengan demikian, skrip EDMX dan SQL yang dihasilkan harus dimodifikasi untuk membuat dan membandingkan bagian dari model konseptual dengan nama kolom pendek.

Bukan masalah yang sangat besar. Ini berfungsi dengan baik. Jadi di mana semuanya salah?

Oracle tidak mendukung "kode dulu". Dan meskipun dilakukan secara manual, penggunaan EDMXWriter adalah pendekatan kode di Oracle. Oleh karena itu, ketika skema EDMX pertama dibongkar, itu Binal pada perbandingan logis. Keputusan itu adalah untuk menghapus bool untuk sementara dari model C # saya, tambahkan ke EDMX secara manual dan memetakan Web.Config Oracle (pemetaan bool ke nomor (1.0)).

Semua lagi Groovy. Tetapi mengapa dia terus mengulangi?

Pada waktu yang berbeda sepanjang proses pengembangan, beberapa tujuan perjanjian - baik C #, EDMX atau Oracle berubah. Dan setiap kali sepertinya, kolom-kolom secara otomatis dipindahkan, dan saya tidak tahu. Jika model EDMX telah diperbarui dari Oracle, yang sebanding menunjukkan sifat-sifat C #, yang tidak (nama kolom pendek). Jika model telah diperbarui dari kode C #, pemetaan tidak disimpan, dan mereka mencoba membandingkan nama panjang kolom yang tidak ada di Oracle.

Bug dengan pendekatan ini (pertama kode hybrid pertama dan model) adalah jika saya ingin terus mengontrol model saya sendiri dan menangani pengaturan yang diperlukan untuk sikap kecil terhadap seorang anak, saya harus sangat berhati-hati dan mengikuti fitur file EDMX .

Situs, aplikasi, game - sumber informasi yang dikelola oleh pengguna. Untuk membagi operasi yang diizinkan dan dilarang untuk satu atau pengguna tindakan, hak akses (PD) digunakan. Ruang lingkup PD membentuk peran. Misalnya, lihat situs dasar dengan kemungkinan pendaftaran.

Di situs ini "hidup" 3 peran dengan hak dan kewajiban mereka:

1.

Semua default anonim beroperasi dalam peran ini. Jika kita berpakaian para tamu situs dengan benar "menambahkan komentar", maka pengguna yang datang ke situs akan dapat mengomentari minat Anda. Dan jika tidak, maka untuk mengomentari konten yang perlu Anda daftarkan terlebih dahulu.

2.

Autentikasi lalu dan otorisasi anonim peran Baru. Hanya pengguna yang berwenang yang dapat mengelola akun pribadi, Tambahkan dan edit data pribadi, lihat informasi tentang karakter lain. Pengguna yang tidak terdaftar tidak memiliki hak atas operasi ini.

3. Administrator

Peran default ini memberikan akses penuh pengguna ke situs. Administrator sumber daya menambahkan, menghapus blok dan memberi atau mengambil dari pengguna lain hak untuk mengakses satu atau fungsionalitas lain.

Bagaimana cara menguji dan apa yang Anda perhatikan?

Pertama-tama, kami akan mencoba untuk menghapus "super-admin", bermain dengan pengaturan.

  • Buat karakter yang aman

Untuk mendekati kegiatan nyata pada proyek, ada cukup uang tambahan dengan kekuatan administrasi yang serupa. Dan sudah dengan karakter ini, kami menguji sumber daya dan mengubah izin untuk akses pengguna lain.

  • Periksa di beberapa browser

Kami melakukan pada saat yang sama: dalam satu memodifikasi PD, di tempat lain Anda memeriksa penggunaan hak untuk pengguna, sehingga berbagi sesi pengguna.

  • Kami melewati tautan langsung

Pembatasan blok tes, pindah pada mereka Alamat URL.. Lihat beberapa data sumber daya harus tidak tersedia dengan referensi untuk situs tamu yang tidak sah. Jika akses terbatas, maka semuanya OK: Alih-alih informasi tertutup, anonim akan menerima pesan peringatan dalam bentuk halaman khusus, paling sering dengan kode 403.

  • Kami menguji pemblokiran entitas

Untuk sumber daya, seperti tiket tiket dan tur, penting untuk memblokir item ketika beberapa pengguna dapat segera mengaksesnya. Ada dua opsi pemblokiran:

+ Pemblokiran yang optimis Saat menyimpan memeriksa database untuk lebih versi baru Data ditinggalkan oleh pengguna lain. Jika ya, maka pengguna saat ini memperbarui instance entitas ini.

+ Pemblokiran pesimistis Entitas digunakan ketika optimis menghasilkan terlalu banyak tabrakan. Dalam hal ini, hanya satu pengguna yang saat ini menggunakan dan mengubah pilihan ini Entitas.

Dapat diuji dari satu komputer di beberapa browser atau akun yang berbeda.

  • Kami menggunakan matriks uji

Dia menyederhanakan karya tester, jelas menunjukkan tindakan yang diizinkan dan dilarang, dan itu hanya membantu tidak melewatkan apa pun. Kami melukis di dalamnya semua peran, pengguna, variasi pembatasan kemungkinan karakter kami.

Dan di sini adalah contoh paling sederhana dari matriks uji:

Kontrol akses adalah salah satu pemeriksaan utama dalam. Bahkan memeriksa situs perpustakaan lokal dengan tiga peran menghadapi ujian kesulitan. Tetapi sumber daya populer dengan puluhan peran, ribuan pengguna dan jutaan izin memerlukan seluruh pasukan administrator! Sulit bagi kita untuk membayangkan skala kerusakan jika pengujian mengambil diletkan. Menarik spesialis yang kompeten dan jangan izinkan ruang aman produk Anda!