Grup vs peran (Adakah perbedaan nyata?)

126

Adakah yang bisa memberi tahu saya, apa perbedaan nyata antara grup dan peran? Saya sudah mencoba untuk mencari tahu ini untuk beberapa waktu sekarang dan semakin banyak informasi yang saya baca, semakin saya merasa bahwa ini hanya untuk membingungkan orang dan tidak ada perbedaan nyata. Keduanya bisa melakukan tugas satu sama lain. Saya selalu menggunakan grup untuk mengelola pengguna dan hak akses mereka.

Baru-baru ini, saya menemukan perangkat lunak administrasi, di mana ada banyak pengguna. Setiap pengguna dapat menetapkan satu modul (seluruh sistem dibagi menjadi beberapa bagian yang disebut modul yaitu. Modul Administrasi, Modul Survei, Modul Pesanan, Modul Pelanggan). Di atasnya, setiap modul memiliki daftar fungsi, yang dapat diizinkan atau ditolak untuk setiap pengguna. Misalkan, pengguna John Smith dapat mengakses modul Pesanan dan dapat mengedit pesanan apa pun, tetapi belum diberi hak untuk menghapusnya.

Jika ada lebih banyak pengguna dengan kompetensi yang sama, saya akan menggunakan grup untuk mengelolanya. Saya akan menggabungkan pengguna tersebut ke dalam grup yang sama dan menetapkan hak akses ke modul dan fungsinya ke grup. Semua pengguna dalam grup yang sama akan memiliki hak akses yang sama.

Mengapa menyebutnya grup dan bukan peran? Saya tidak tahu, saya hanya merasakannya seperti itu. Bagi saya sepertinya itu tidak terlalu penting:] Tapi saya masih ingin tahu perbedaan yang sebenarnya.

Adakah saran mengapa ini harus lebih disebut peran daripada kelompok atau sebaliknya?

Ondrej
sumber
kemungkinan duplikat Apa perbedaan antara kelompok dan peran?
Steve Chambers
LIHAT DUPLIKAT yang disebutkan di atas. dua jawaban singkat teratasnya lebih baik daripada yang ada di sini. (+ secara teknis kelompok dan peran bekerja sama dengan cara mereka digunakan)
FastAl
2
Saya tidak setuju dengan @FastAl, saya menemukan jawaban untuk pertanyaan ini lebih baik daripada jawaban duplikatnya.
Alex Oliveira

Jawaban:

148

Google adalah temanmu :)

Bagaimanapun, perbedaan antara peran dan grup berasal dari konsep keamanan komputer (bukan hanya manajemen sumber daya). Prof Ravi Sandhu memberikan liputan penting tentang perbedaan semantik antara peran dan kelompok.

http://profsandhu.com/workshop/role-group.pdf

Grup adalah kumpulan pengguna dengan sekumpulan izin yang ditetapkan ke grup (dan secara transitif, untuk pengguna). Peran adalah kumpulan izin, dan pengguna secara efektif mewarisi izin tersebut saat dia bertindak di bawah peran itu.

Biasanya keanggotaan grup Anda tetap selama durasi login Anda. Peran, di sisi lain, dapat diaktifkan sesuai dengan kondisi tertentu. Jika peran Anda saat ini adalah 'staf medis', Anda mungkin dapat melihat beberapa rekam medis untuk pasien tertentu. Namun, jika peran Anda juga sebagai 'dokter', Anda mungkin dapat melihat informasi medis tambahan di luar apa yang dapat dilihat oleh orang yang hanya berperan sebagai 'staf medis'.

Peran dapat diaktifkan berdasarkan waktu, lokasi akses. Peran juga dapat ditingkatkan / dikaitkan dengan atribut. Anda mungkin beroperasi sebagai 'dokter', tetapi jika Anda tidak memiliki atribut atau hubungan 'dokter utama' dengan saya (pengguna dengan peran 'pasien'), Anda tidak dapat melihat keseluruhan riwayat medis saya.

Anda bisa melakukan semua itu dengan kelompok, tetapi sekali lagi, kelompok cenderung berfokus pada identitas, bukan peran atau aktivitas. Dan jenis aspek keamanan yang baru saja dijelaskan cenderung menyesuaikan diri lebih baik dengan yang belakangan dibandingkan dengan yang sebelumnya.

Untuk banyak kasus, untuk penggunaan mengklasifikasikan sesuatu bersama (dan tidak lebih), grup dan peran berfungsi sama. Namun, kelompok didasarkan pada identitas, sedangkan peran dimaksudkan untuk membatasi aktivitas. Sayangnya, sistem operasi cenderung mengaburkan perbedaan, memperlakukan peran sebagai kelompok.

Anda melihat perbedaan yang jauh lebih jelas dengan aplikasi atau peran tingkat sistem - membawa aplikasi atau semantik khusus sistem (seperti dalam peran Oracle ) - sebagai lawan dari 'peran' yang diterapkan di tingkat OS (yang biasanya identik dengan grup.)

Mungkin ada batasan untuk peran dan model kontrol akses berbasis peran (seperti yang lainnya, tentu saja):

http://www.lhotka.net/weblog/CommentView,guid,9efcafc7-68a2-4f8f-bc64-66174453adfd.aspx

Sekitar satu dekade yang lalu saya melihat beberapa penelitian tentang kontrol akses berbasis atribut dan berbasis hubungan yang memberikan perincian yang jauh lebih baik daripada kontrol akses berbasis peran. Sayangnya, saya belum melihat banyak aktivitas di dunia itu selama bertahun-tahun.

Perbedaan terpenting antara peran dan grup adalah bahwa peran biasanya menerapkan mekanisme kontrol akses wajib (MAC). Anda tidak dapat menetapkan diri Anda (atau orang lain) untuk peran. Admin peran atau teknisi peran melakukan itu.

Ini secara dangkal mirip dengan grup UNIX di mana pengguna dapat / mungkin dapat menempatkan dirinya ke grup (melalui sudo tentu saja.) Ketika grup ditetapkan menurut proses rekayasa keamanan, perbedaannya sedikit kabur.

Ciri penting lainnya adalah model RBAC sejati dapat memberikan konsep peran yang saling eksklusif. Sebaliknya, kelompok berbasis identitas bersifat aditif - identitas kepala sekolah adalah jumlah (atau konjungsi) dari kelompok tersebut.

Karakteristik lain dari model keamanan berbasis RBAC sejati adalah bahwa elemen yang dibuat untuk peran tertentu biasanya tidak dapat diakses secara sementara oleh seseorang yang tidak bertindak di bawah peran tersebut.

Di sisi lain, di bawah model discretionary access control (DAC) (model default di Unix), Anda tidak bisa mendapatkan jenis jaminan itu hanya dengan grup. BTW, ini bukan batasan grup atau Unix, tetapi batasan model DAC berdasarkan identitas (dan secara transitif, dengan grup berbasis identitas.)

Semoga membantu.

=======================

Menambahkan beberapa lagi setelah melihat tanggapan Simon yang baik. Peran membantu Anda mengelola izin. Grup membantu Anda mengelola objek dan subjek. Selain itu, peran dapat dianggap sebagai 'konteks'. Peran 'X' dapat menggambarkan konteks keamanan yang mengatur bagaimana subjek Y mengakses (atau tidak mengakses) objek Z.

Perbedaan penting lainnya (atau ideal) adalah bahwa ada seorang insinyur peran, seseorang yang merancang peran, konteks, yang diperlukan dan / atau terbukti dalam aplikasi, sistem, atau OS. Seorang insinyur peran biasanya (tetapi tidak harus) juga seorang admin peran (atau sysadmin). Selain itu, peran sebenarnya (no pun intended) dari seorang insinyur peran ada di bidang teknik keamanan, bukan administrasi.

Ini adalah grup baru yang diformalkan oleh RBAC (meskipun jarang digunakan), grup yang biasanya tidak ada dengan sistem yang mendukung grup.

luis.espinal
sumber
4
Pada dasarnya apa yang Anda katakan adalah bahwa: Jika Anda mendapatkan daftar izin dari grup, Anda melihat peran tersebut dan jika Anda mendapatkan daftar pengguna dari sebuah peran, Anda sedang melihat grup.
Natim
Tidak. Apa yang terjadi adalah banyak sistem menerapkan peran sebagai grup (atau lebih buruk lagi, menyebut grup "peran".) Ketika itu terjadi, Anda melihat kesetaraan yang baru saja Anda gambarkan. Biarkan saya melihat apakah saya dapat menjelaskan ini lebih baik dengan balasan tindak lanjut.
luis.espinal
Salah satu perbedaan utama adalah keanggotaan grup tetap terpisah dari sesi Anda (sesi logging Anda.) Keanggotaan Anda ke grup berubah hanya ketika seseorang (Anda atau seseorang dengan hak istimewa yang cukup) mengubahnya.
luis.espinal
Peran, bukan gagasan grup yang dijual sebagai "peran", tetapi peran sebenarnya, peran tersebut dikaitkan dengan kepala sekolah (alias "peran sedang aktif") saat kepala sekolah memulai sesi (sesi masuk atau sesi khusus aplikasi) di bawah peran itu.
luis.espinal
1
Secara analogis, dapatkah kita mengatakan bahwa grup seperti pohon dan peran seperti tag?
ton
26

Grup adalah alat untuk mengatur pengguna, sedangkan peran biasanya merupakan alat untuk mengatur hak.

Ini dapat berguna dalam beberapa cara. Misalnya, sekumpulan izin yang dikelompokkan ke dalam peran dapat ditetapkan ke sekumpulan grup, atau sekumpulan pengguna secara terpisah dari grup mereka.

Misalnya, CMS mungkin memiliki beberapa izin seperti Baca postingan, Buat postingan, Edit postingan. Peran Editor mungkin dapat Membaca dan Mengedit, tetapi tidak dapat membuat (tidak tahu mengapa!). Sebuah pos mungkin dapat Membuat dan Membaca, dll. Sekelompok manajer mungkin memiliki peran editor, sementara pengguna di TI, yang tidak berada dalam grup manajer, mungkin juga memiliki peran editor, meskipun anggota lainnya kelompok tidak.

Jadi, meskipun dalam sistem yang sederhana, grup dan peran sering kali selaras, tidak selalu demikian.

Simon Elliston Ball
sumber
Jadi, jika saya memahaminya dengan benar, Anda tidak dapat menetapkan pengguna ke peran, tetapi dapat menetapkan pengguna ke grup. Setelah itu, Anda dapat menetapkan peran ke grup pengguna.
Ondrej
Belum tentu Ondrej. Aplikasi, sistem, atau OS dapat mengimplementasikan mekanisme untuk menugaskan pengguna ke suatu peran (hal ini bisa menjadi sangat cepat). Jawaban Simon tepat dengan peran sebagai sarana untuk mengelola izin (sebagai lawan kelompok sebagai sarana untuk mengelola subjek dan objek.)
luis.espinal
Terima kasih teman-teman, ini jauh lebih jelas bagi saya sekarang. Dalam sistem yang dijelaskan di atas, saya baru saja memperhatikan, ada mekanisme lain untuk membedakan pengguna. Setiap pengguna yang ditugaskan ke modul mana pun bisa lebih dibedakan menurut kompetensinya sebagai PENGGUNA, SUPERVISOR, dan ADMINISTRATOR, yang menurut saya, inilah sistem ROLE:] Jadi sekali lagi, terima kasih kalian berdua! ;)
Ondrej
Saya suka penjelasan Anda, tetapi untuk beberapa alasan tidak ada orang di sini yang menulis tentang kemungkinan pengguna menjadi bagian dari lebih dari satu grup ... bukankah juga mungkin grup menjadi bagian dari grup dan peran lain yang memungkinkan pemberian peran, dan apa tentang sumber daya? tidak bisakah sumber daya juga dimiliki oleh grup? tidak dapatkah sumber daya memiliki peran?
atau
19

Meskipun ada perbedaan semantik antara Peran dan Grup (seperti yang dijelaskan di atas oleh jawaban lain), secara teknis Peran dan Grup tampaknya sama. Tidak ada yang menghalangi Anda untuk menetapkan Izin langsung ke Pengguna dan Grup (ini dapat dianggap sebagai kontrol akses yang menyempurnakan). Dengan kata lain, ketika Pengguna diberi Peran, itu dapat dianggap sebagai Anggota peran, dalam arti yang sama ketika pengguna menjadi Anggota Grup.

Jadi kita bisa berakhir tanpa perbedaan nyata antara Peran dan Grup. Keduanya dapat dipertimbangkan untuk mengelompokkan Pengguna DAN / ATAU Izin. Jadi, perbedaan hanya semantik: - jika digunakan secara semantik untuk mengelompokkan Izin, maka ini adalah Peran; - jika digunakan secara semantik untuk mengelompokkan Pengguna, maka itu adalah Grup. Secara teknis tidak ada perbedaan.

Mileta Cekovic
sumber
Sebenarnya ada perbedaan bahasa komputer seperti c # di kelas yang ditugaskan untuk mengakses grup vs. bahasa untuk mengakses peran. Mereka memiliki nama properti yang berbeda dan metode yang berbeda, seperti yang diharapkan dari sebuah peran (sebagai sekumpulan izin), vs grup (sebagai sekumpulan pengguna).
pashute
Jika Anda menambahkan grup sebagai anggota grup lain dan keduanya memiliki izin terkait, izin tambahan akan berfungsi dengan baik. Begitulah cara kerja NTFS. Namun, ketika kita berbicara tentang sistem, saya yakin pengguna berpikir dalam istilah "biarkan saya masuk sebagai Keuangan", "biarkan saya masuk sebagai Tamu", dan dalam hal ini menurut saya peran hierarkis akan membingungkan. Saya tidak akan mengizinkan apa pun kecuali grup tingkat atas untuk memiliki izin terkait.
drizin
18

Sebuah "grup" adalah kumpulan pengguna. Sebuah "peran" adalah kumpulan izin. Artinya ketika grup alfa menyertakan grup beta , alfa menerima semua pengguna dari beta dan beta menerima semua izin dari alfa. Sebaliknya, Anda bisa mengatakan peran beta menyertakan peran alfa dan kesimpulan yang sama akan berlaku.

Contoh konkret membuat segalanya lebih jelas. Pertimbangkan "dukungan pelanggan" dan "dukungan pelanggan senior". Jika Anda menganggap koleksi tersebut sebagai grup, maka jelaslah bahwa pengguna dukungan pelanggan "termasuk" pengguna dukungan pelanggan senior. Namun, jika Anda melihatnya sebagai peran, maka jelas bahwa izin dukungan pelanggan senior "termasuk" izin dukungan pelanggan.

Secara teori, Anda hanya dapat memiliki satu jenis koleksi. Namun, akan menjadi ambigu jika Anda mengatakan bahwa "koleksi alfa menyertakan koleksi beta" . Dalam hal ini, Anda tidak dapat mengetahui apakah pengguna dalam alfa dalam beta (seperti peran) atau pengguna dalam beta dalam alfa (seperti grup). Untuk membuat terminologi seperti "termasuk" dan elemen visual seperti tampilan hierarki tidak ambigu, kebanyakan sistem rbac mengharuskan Anda menentukan apakah koleksi yang dipermasalahkan adalah "grup" atau "peran" setidaknya untuk tujuan diskusi.

Beberapa analogi mungkin bisa membantu. Dibingkai dalam istilah teori himpunan , ketika alfa grup adalah bagian dari grup beta, maka alfa izin adalah superset dari beta izin. Dibandingkan genealogi , jika kelompok seperti pohon keturunan, maka perannya seperti pohon leluhur.

james turner
sumber
Penjelasan Anda mencakup persis mengapa kami tidak bisa begitu saja memperlakukan kelompok sebagai peran (seperti yang disarankan jawaban Mileta). Contoh sempurna.
drizin
2
Sebenarnya kita bisa memperlakukan kelompok sebagai peran (seperti yang dikatakan Mileta Cekovic ). Misalnya, kita dapat menetapkan peran unik untuk setiap grup (hubungan 1: 1). Tapi kita tidak bisa menafsirkan hubungan antar kelompok sebagai hubungan antar peran yang sesuai. Misalnya, jika grup "dukungan pelanggan" menyertakan grup "dukungan pelanggan senior" - itu tidak berarti bahwa peran "dukungan pelanggan" mencakup peran "dukungan pelanggan senior".
ruvim
3

CATATAN - ocehan berikut hanya masuk akal jika seseorang mencoba untuk memaksakan keamanan dalam sebuah organisasi - artinya, mencoba untuk membatasi akses ke informasi ...

Kelompok bersifat empiris - mereka menjawab pertanyaan "apa". Mereka adalah "ada" dalam arti mereka mencerminkan realitas akses yang ada. Orang-orang IT menyukai grup - mereka sangat literal dan mudah didefinisikan. Akhirnya, semua kontrol akses pada akhirnya beralih (seperti yang kita semua pelajari di sekolah menengah ...) untuk menjawab pertanyaan "Anda termasuk dalam kelompok apa?"

Peran, bagaimanapun, lebih normatif - mereka memandu apa yang "seharusnya". Manajer yang baik dan HR menyukai "peran" - mereka tidak menjawab - mereka mengajukan pertanyaan "Mengapa?" Sayangnya, peran juga bisa kabur dan "ketidakjelasan" bisa membuat orang (TI) gila.

Untuk menggunakan contoh medis di atas, jika peran "dokter perawatan primer" memiliki lebih banyak hak (yaitu akses ke lebih banyak kelompok) daripada peran "teknisi sinar-X", ini karena orang (manajer dan SDM) memutuskan mengapa hal itu perlu terjadi. Dalam pengertian itu mereka adalah "kebijaksanaan kolektif" dari sebuah organisasi.

Katakanlah seorang dokter diberi akses (keanggotaan ke sebuah grup dengan akses) ke catatan keuangan pasien. Ini biasanya di luar "peran" dokter dan harus diperdebatkan. Jadi, tidak seorang pun (betapapun kualifikasinya) harus memiliki akses penuh ke semua kelompok - hal itu mengundang penyalahgunaan kekuasaan. Inilah mengapa "rekayasa peran" sangat penting - tanpanya, Anda hanya memiliki akses grup yang dibagikan seperti banyak permen. Orang-orang akan mengumpulkan (dan kadang-kadang mengerahkan) akses kelompok tanpa diskusi mengenai bahaya kekuasaan yang terlalu besar.

Sebagai kesimpulan, kebijaksanaan peran yang didefinisikan dengan baik membantu mengurangi bahaya akses kelompok yang kabur. Siapa pun dalam organisasi dapat memperdebatkan akses ke grup tertentu. Tapi begitu akses itu diberikan, jarang sekali diberikan. Rekayasa peran (bersama dengan praktik terbaik seperti deskripsi grup yang terdefinisi dengan baik dan manajer akses grup yang diberdayakan) dapat membatasi konflik kepentingan dalam organisasi, mendesentralisasi pengambilan keputusan, dan membantu membuat manajemen keamanan lebih rasional.

TJ Evert
sumber
3

Jawaban sebelumnya semuanya luar biasa. Seperti yang telah disebutkan, konsep Kelompok vs Peran lebih konseptual daripada teknis. Kami telah mengambil sikap bahwa Grup digunakan untuk memuat pengguna (pengguna dapat berada di lebih dari satu grup: yaitu Joe ada di grup Manajer serta grup TI [dia adalah manajer di TI]) dan untuk menetapkan hak yang luas (yaitu sistem kartu mag kami memungkinkan semua pengguna di grup TI mengakses ke ruang server). Peran digunakan untuk sekarang menambahkan hak istimewa ke pengguna tertentu (yaitu orang dalam grup TI dapat RDP ke server tetapi tidak dapat menetapkan pengguna atau mengubah izin, orang dalam grup TI dengan peran Admin dapat menetapkan pengguna dan mengubah izin). Peran dapat terdiri dari peran lain juga (Joe memiliki peran Admin untuk menambahkan pengguna / hak istimewa dan juga memiliki peran DBA untuk melakukan perubahan database ke DBMS di server). Peran bisa sangat spesifik juga karena kita bisa membuat Peran pengguna individu (yaitu JoesRole) yang bisa sangat spesifik untuk pengguna. Jadi, untuk rekap, kami menggunakan Grup untuk mengelola pengguna dan menetapkan Peran dan Peran umum untuk mengelola hak istimewa. Ini juga kumulatif. Grup tempat pengguna berada mungkin memiliki Peran yang ditetapkan (atau daftar Peran yang tersedia) yang akan memberikan hak yang sangat umum (yaitu, pengguna grup TI memiliki peran ServerRDP yang memungkinkan mereka masuk ke server) sehingga ditetapkan ke pengguna. Kemudian Peran apa pun yang dimiliki pengguna akan ditambahkan dalam urutan yang ditentukan dengan Peran terakhir yang memiliki keputusan akhir (Peran dapat Mengizinkan, Menolak, atau tidak menerapkan hak istimewa sehingga setiap Peran diterapkan, hal itu akan menggantikan pengaturan sebelumnya untuk hak istimewa atau tidak mengubahnya). Setelah semua Peran tingkat Grup dan Peran tingkat Pengguna telah diterapkan,

Steve Smith
sumber
+1 untuk memberikan contoh yang sangat nyata, karena tumpang tindih konsep ini berarti tidak ada perbedaan nyata kecuali dalam penerapan tertentu. Namun, itu tidak membuat sangat jelas keuntungan Anda yang diperoleh menambahkan peran: Contoh Anda Pengguna TI dengan peran Admin bisa dengan mudah dilakukan dengan menempatkan pengguna di Pengguna IT dan Admin kelompok . Tidak ada perbedaan nyata antara implisit "izin" "yang diizinkan untuk RDP ke" dan "peran": "dapat menetapkan pengguna". Juga Anda mengatakan bahwa Peran dapat dibuat dari peran lain, tetapi contoh Anda adalah Joe yang memiliki 2 peran, bukan peran yang menggabungkan yang lain
Rhubarb
1

Pengguna ditetapkan ke Peran berdasarkan tanggung jawab yang mereka mainkan di sistem apa pun. Misalnya pengguna dalam peran Manajer Penjualan dapat melakukan tindakan tertentu seperti memberikan diskon tambahan untuk suatu produk.

Grup digunakan untuk 'mengelompokkan' pengguna atau peran dalam sistem untuk memudahkan pengelolaan keamanan. Misalnya, grup bernama "Grup Kepemimpinan" dapat memiliki anggotanya dari peran Manajer, Direktur & Arsitek, dan pengguna individu yang berada di luar peran ini juga. Sekarang Anda harus dapat menetapkan hak istimewa tertentu ke grup ini.

Saju Mathew
sumber
1

Tujuan Grup dan Peran bervariasi dalam aplikasi, tetapi terutama yang saya pahami adalah sebagai berikut, Grup (kumpulan pengguna) bersifat statis sedangkan Peran (kumpulan izin) bersifat dinamis dengan kebijakan, misalnya berdasarkan waktu dari (9 hingga 6) a grup atau pengguna mungkin memiliki peran ini tetapi bukan itu.

Salahuddin Khan
sumber
0

Anda dapat menetapkan peran ke grup. Anda dapat menetapkan pengguna ke grup dan Anda dapat menetapkan peran ke pengguna individu di pengguna peran apa pun. Berarti. Jean Doe dapat berada di Grup SalesDeptartment dengan peran di luar ReportWritter yang memungkinkan untuk mencetak laporan kami dari SharePoint, tetapi di grup SalesDepartment, orang lain mungkin tidak memiliki peran ReportWritter. - Dengan kata lain, peran adalah hak istimewa dalam grup yang ditetapkan. Semoga ini membuat adegan apa pun.

Bersulang!!!

Chirag Patel
sumber