Gagasan tentang bagaimana memberi karyawan akses sementara ke sumber daya pelanggan tanpa menyinari kembali kata sandi

Sedikit latar belakang


Setelah kuliah tentang HighLoad ++ 2017. Saya melihat laporan ini, "Bagaimana kami memecat admin," dalam rekaman. Pembicara mengatakan bahwa semua perusahaan web memiliki masalah dengan kata sandi, dan saya punya ide bagaimana menyelesaikannya. Kemungkinan besar seseorang sudah melakukannya, tetapi jujur ​​saja, saya tidak tahu, saya hanya ingin menggambarkannya, maka mungkin seseorang akan melakukannya atau entah bagaimana saya akan melakukannya sendiri. Saya harap jika seseorang memutuskan untuk melakukan sesuatu seperti ini, itu akan menjadi opensource.

Sebenarnya deskripsi masalah dan cara mengatasinya


Apa masalahnya, betapapun anehnya kata sandi itu sendiri, atau lebih tepatnya, sehingga karyawan yang tidak bertanggung jawab tidak mengambilnya dari perusahaan.

Ada dua opsi untuk menyelesaikan masalah ini.

  1. Poskan semua perubahan ke situs secara pribadi ke kepala perusahaan.
  2. Untuk menciptakan dan melakukan sesuatu.

Secara umum, kami bertindak berdasarkan opsi kedua. Yang pertama sulit dan mahal jika perusahaan terdiri dari sejumlah kecil orang.

Apa yang harus dilakukan sudah diputuskan, sekarang Anda perlu memutuskan bagaimana melakukannya.

Di sini sekaligus ide paling sederhana, mengapa tidak membuat proxy? Yah, kemungkinan besar proxy yang super. Skema kerja pada dasarnya sederhana dan saya menggambar di bawah ini.


Gambar 1 - Skema umum sistem

Seperti yang bisa dilihat dari diagram dan ide itu sendiri, elemen utama di sini adalah server proxy.

Tugasnya adalah sebagai berikut:

  • Sejalan dengan itu, terima lalu lintas, atau bahkan bekerja pada level perintah SSH dan SFTP, untuk permulaan, dan kirim respons dari server klien ke spesialis.
  • Otentikasi dan otorisasi seorang spesialis
  • Memeriksa legitimasi tim, ini bisa dilakukan nanti.


Struktur server proxy itu sendiri adalah sebagai berikut:


Gambar 2 - Blok diagram komponen super proxy

Proxy - langsung mengarahkan lalu lintas melalui SSH, (S) FTP, HTTP, HTTPS
CA (Kontrol Akses) - Mengontrol akses spesialis ke sumber daya klien.
SAP (Sever Admin Panel) - Langsung server yang berkomunikasi dengan administrator melalui panel kontrol.
Inti - Inti dari sistem itu sendiri adalah mengelola permintaan antara modul dan manajemen model.

Saya percaya bahwa akses harus ditangani secara terpisah, karena semuanya dimulai karena ini.

Semua pengguna termasuk dalam kebijakan grup, kebijakan grup menentukan aturan untuk akses ke server klien, serta aturan yang dipatuhi administrator sistem. Kebijakan grup memiliki struktur hierarkis, setiap tingkat atas memiliki kekuatan yang sama dengan tingkat yang lebih rendah. Sejak awal ada kebijakan '.', Ini mencakup semua izin untuk semuanya dan mungkin termasuk satu pengguna, administrator utama. Lalu ada dua kelompok untuk kebijakan, administrator sistem dan proyek.

Tabel pivot - administrator dan hak-hak mereka
Judul peranHak akses
Administrator Kebijakan GrupPengeditan Pengguna Grup
Administrator Kebijakan GrupBuat Kebijakan GrupMembuat Menghapus dan Mengedit Pengguna dalam Kebijakan Grup
Administrator manajemen penggunaMenghapus pengguna dari Kebijakan GrupBuat hapus dan edit pengguna
Administrator cadanganMembaca informasi tentang pengguna dan administratorEntri Kebijakan Grup Membaca
Administrator kepalaYang lainnya, serta mengedit dan menghapus kebijakan grupPaksa perubahan kata sandi di server klien

Kebijakan grup itu sendiri berisi catatan server yang menerapkan kebijakan ini.
Dan pengguna memiliki aturan berikut, yang ditetapkan untuk setiap pengguna atau grup secara terpisah, pada kenyataannya, ini adalah nilai Boolean yang menentukan apakah objek memiliki akses HTTP / HTTPS ke panel kontrol sumber daya (panel admin), SFTP / FTP, akses SSH.

Sekarang beberapa kata tentang panel kontrol dan klien.

Panel kontrol atau semuanya jelas, tetapi Anda perlu menulis lagi, itu akan jelas.
Panel kontrol Diperlukan langsung untuk mengelola kebijakan grup dan server secara keseluruhan, super proxy. Didistribusikan sebagai aplikasi mandiri atau layanan web.

Dengan demikian, administrator memiliki akses ke panel kontrol.

Klien sederhana dalam penampilan, rumit di dalam.

Klien membutuhkan aplikasi, dalam hal HTTP (S), murni secara teoritis, aplikasi ini dapat berupa browser yang dikonfigurasi secara langsung untuk bekerja melalui server proxy, dan server proxy kami harus memasukkan dirinya ke lalu lintas. Secara umum, kemungkinan besar, perlu untuk mengembangkan aplikasi terpisah yang akan bekerja melalui SSH, (S) FTP, HTTP (S), dengan server klien, melalui server super-proxy kami, atau bahkan akan lebih mudah untuk menginstal dan berkomunikasi dengan server klien itu sendiri adalah server super-proxy, dan pada klien yang diinstal pada komputer, seluruh proses hanya akan ditiru oleh spesialis.

Perhatikan contoh HTTP (S).

  1. Klien mengirim permintaan untuk komunikasi dengan klien ke server proxy.
  2. Server proxy super memungkinkan atau tidak, jika memungkinkan, server proxy super itu sendiri meningkatkan koneksi dan masuk ke panel kontrol.
  3. Server proxy super langsung menerima halaman utama panel admin.
  4. Server proxy super melewati halaman ini ke klien, mengganti alamat sumber daya klien dengan spidol khusus.
  5. Spesialis mengikuti tautan atau mengisi bidang di browser dan mengirimkan formulir. Data masuk ke server proxy super.
  6. Server proxy super menggantikan token kembali ke alamat sumber daya klien dan, karenanya, mengirimkannya langsung ke sumber daya klien itu sendiri.

Dengan bekerja pada SSH, Anda dapat mentransfer teks murni. Dan langsung dari server super-proxy ke sumber daya klien, koneksi SSH normal naik.

Sesuatu seperti ini. Saya menantikan tanggapan Anda di komentar, dan tautan ke repositori, jika seseorang memutuskan untuk membuat sistem seperti itu.

Source: https://habr.com/ru/post/id438436/


All Articles