Izinkan pengguna Administrator untuk masuk sebagai pengguna lain


11

Apakah Anda pikir ini praktik yang baik untuk menerapkan kemungkinan untuk memungkinkan pengguna administrator untuk masuk sebagai pengguna lain, dengan mem-by-pass kata sandi? Ini dapat dengan diimplementasikan oleh kata sandi utama atau fungsi di dalam administrasi pengguna, "Login sebagai pengguna ini".

Administrator meminta fungsi seperti itu untuk dapat mencoba mereproduksi masalah yang dilaporkan atau untuk memeriksa apakah hibah baik-baik saja, misalnya.


9
Secara umum, itu bukan ide yang baik dalam rekayasa keamanan untuk memungkinkan orang masuk sebagai akun bersama (atau akun orang lain, dalam hal ini) bahkan jika izin mereka identik. Otentikasi harus merupakan proses terpisah dari otorisasi. Jika tugas dilakukan di bawah akun pengguna yang terpisah, mereka bertanggung jawab untuk itu.
xmm0

1
+1 ke Mehrdad Afshari. Saya merasa ngeri setiap kali saya mendengar orang berbicara tentang admin seperti ini.
Dan McGrath

2
@Mehrdad Afshari dan @Dan McG, itu semua baik dan benar, tetapi apa yang Anda usulkan lakukan ketika seorang administrator membutuhkan akses ke akun pengguna dalam situasi sehari-hari? Minta pengguna untuk memasukkan kredensial mereka? Sering terjadi untuk memverifikasi atau mereproduksi masalah, Anda perlu memeriksa dengan pengaturan pengguna tertentu, terutama ketika akun terikat dengan hak kompleks dan pengaturan lain yang tidak dapat direproduksi 1: 1 dengan akun netral.
Pekka

4
Anda melihatnya dengan cara yang salah. Jika admin perlu memeriksa pengaturan pengguna, kami perlu mengembangkan alat yang lebih baik untuk mendapatkan informasi diagnostik ini dari pengguna. Sebagai contoh: Jika aplikasi Anda di windows crash, apakah Anda ingin beberapa admin MS di Redmond RDP masuk ke akun pengguna Anda untuk memeriksa hal-hal, atau apakah Anda ingin metode yang sangat otomatis mengirimkan informasi yang diperlukan kembali kepada mereka (atas kebijakan pengguna) ?
Dan McGrath

2
@Dan: Pelanggan mungkin tidak mau membayar untuk itu.

Jawaban:


15

Tidak, tidak sama sekali. Ini melanggar pemisahan tugas.

Hal ini juga menyebabkan kekacauan bergantung pada log untuk menunjukkan tindakan pengguna.

Jika Anda benar-benar perlu memeriksa hal-hal seperti ini, admin juga harus memiliki akun pengujian tiruan yang dibuat seperti pengguna. Dengan cara ini mereka dapat mengkonfirmasi hibah, dll berfungsi dengan benar pada pengguna uji terlebih dahulu.

Selain itu, pengguna admin tidak harus selalu diberikan semua hak yang dimiliki pengguna. Misalnya, pengguna mungkin memiliki alasan yang sah untuk melihat nomor kartu kredit dalam suatu sistem. Admin seharusnya tidak; data ini bukan bagian dari pekerjaan mereka. Sekali lagi, ini berkaitan dengan pemisahan tugas.

Minimalkan paparan Anda dengan meminimalkan pemberian hak yang tidak pantas. Ini harus mencakup admin juga ...


2
Meskipun Anda memiliki poin yang valid, saya kira jawabannya tidak begitu jelas - dalam beberapa kasus ini adalah solusi terbaik.
sleske

11

Dari sudut pandang keamanan dan prinsip pemrograman bersih, itu bukan ide yang baik. Tapi itu bisa menjadi kenyamanan besar dalam pekerjaan sehari-hari untuk administrator, itulah sebabnya saya melakukannya jika diterapkan dengan baik.

Bagi saya, implementasi yang baik harus memenuhi persyaratan berikut:

  • Sistem mencatat Anda sebagai pengguna yang dipermasalahkan, tetapi mengabaikan otentikasi kata sandi jika Anda masuk sebagai admin.

  • Sistem menyadari melalui flag bahwa ini bukan pengguna x, tetapi administrator yang masuk sebagai pengguna x. Setiap fasilitas logging akan mencerminkan perbedaannya.

  • Tidak ada cara untuk "keluar" dari login pengguna kembali ke tingkat administrator.

Ini benar-benar dapat meningkatkan keamanan karena administrator tidak harus mencari dan menggunakan kredensial pengguna, yang dalam kenyataannya sering terjadi karena alasan OP menyebutkan: Sesuatu harus diperiksa, diuji, dll ... pada akun pengguna .


8

Seperti biasa ... itu tergantung. Tidak ada jawaban yang mudah dan kedua sistem digunakan dalam praktiknya (misalnya Windows: Admin tidak dapat masuk sebagai pengguna tanpa mengatur ulang kata sandi vs Linux: Admin dapat masuk sebagai pengguna lokal menggunakan su).

Jelas, tidak mengizinkan admin untuk masuk karena pengguna lain adalah opsi yang lebih aman, jadi Anda harus memutuskan apakah kenyamanan tambahan (bisa men-debug masalah yang hanya terjadi untuk pengguna tertentu) lebih besar daripada risikonya. Jika Anda memutuskan untuk menerapkan opsi semacam itu, pastikan ada pencatatan yang ketat, sehingga admin (atau seseorang yang memegang kata sandi admin) tidak dapat menyembunyikan jejaknya.

Atau, Anda dapat menggunakan pola yang digunakan Windows: Admin tidak dapat masuk sebagai pengguna lain, tetapi admin dapat mengatur ulang kata sandi pengguna. Dengan begitu, admin dapat memperoleh akses, tetapi pengguna akan selalu tahu bahwa seseorang mengakses akunnya.


Nitpick: sudotidak login Anda sebagai pengguna lokal, itu hanya menjalankan satu proses sebagai pengguna (ala Window "Jalankan sebagai pengguna"). Untuk masuk sebagai pengguna lokal, gunakan su. Kalau tidak, saya setuju.
sleske

@sleske: Tentu saja, terima kasih telah melihat ini. Tetap.

@sleske: belum tentu, lihat sudo -i.
liori

Gagasan 'shell login' lebih terkait dengan bagaimana shperilaku yang dapat dieksekusi daripada yang dilakukannya dengan izin apa yang diberikan. su - userdan sudo -u user shmemberikan akses yang sama; perbedaannya adalah shmenjalankan skrip startup yang berbeda.
jpaugh

3

Nah, phpBB3 memiliki "Uji izin pengguna" -fungsi untuk admin, yang sangat membantu. Juga tidak benar-benar membiarkan Anda mengganggu akun pengguna itu tetapi benar-benar hanya mendapatkan pengalaman yang mereka miliki, berdasarkan izin mereka.

Tetapi sebenarnya login sebagai orang lain datang dengan sejumlah masalah, seperti yang lain disebutkan.


1

Ya, fungsi seperti itu bisa bermasalah, tetapi kadang-kadang tidak ada cara lain, jadi mungkin perlu.

Beberapa contoh:

  • Di Unix / Linux, fungsi ini ada ( su - <username>, yang memberikan hasil yang sama dengan masuk sebagai pengguna itu, tetapi tidak memerlukan kata sandi untuk root)
  • aplikasi tempat saya bekerja juga memiliki ini, dan ini penting untuk debugging masalah dengan pengaturan pribadi pengguna (yang mana aplikasi kami memiliki banyak)

Seperti yang ditunjukkan, jika pengaturan kompleks tergantung pada pengguna yang masuk (lingkungan vars, jalur, pengaturan pribadi dalam suatu aplikasi) sering kali tidak ada cara praktis lain untuk men-debug masalah pengguna.

Adapun logging / audit: Penggunaan fungsi ini tentu saja harus dicatat. Selain itu, Anda harus memercayai admin Anda untuk tidak menyalahgunakannya. Tapi itu berlaku untuk admin secara umum.

Jika Anda perlu membatasi admin Anda lebih lanjut, Anda memerlukan semacam sistem MAC (kontrol akses wajib), tanpa admin "benar". Itu mungkin, tetapi jauh lebih rumit, jadi itu sebuah tradeoff.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.