Lorawan-stack: Pengguna baru (admin) tidak memiliki izin di Konsol

Dibuat pada 14 Agu 2019  ·  6Komentar  ·  Sumber: TheThingsNetwork/lorawan-stack

Ringkasan

Saat membuat pengguna admin di CLI, pengguna ini mungkin tidak memiliki hak yang memadai di Konsol untuk membuat atau mengedit Gateway dan Aplikasi. Dalam kasus lain, pengguna normal baru juga tidak memiliki izin di konsol untuk melakukan apa pun. Mungkin bug atau hanya dokumentasi yang hilang tentang cara membuat pengguna dengan benar.

Langkah-langkah untuk Reproduksi

Saya tidak sepenuhnya yakin. Ada dua kasus di sini yang mungkin terkait dengan penyebab yang sama. Dalam kasus pertama saya mengoperasikan mesin yang tidak saya setel dan saya memiliki informasi terbatas tentang prosesnya.

Kasus 1: tumpukan asing; setup sebagai versi 3.0.0 dan ditingkatkan ke 3.1.0 sebelum menggunakan Konsol.

  1. setup ttn 3.0.0 mengikuti cli memulai
  2. perbarui ke 3.1.0
  3. atur klien Konsol (dan berpotensi mengacaukannya*)
  4. buat pengguna --admin (
    5 .login ke konsol dan coba buat Gateway.

*Apa yang terjadi saat upgrade adalah proses pembuatan Console dilakukan dengan uris yang salah, jadi kami menghapus klien konsol di database dan menggunakan kembali perintah is-db . Mungkin kita kacau di sini.

Kasus 2 : Pada pengaturan saya:

  1. atur ttn setelah memulai
  2. buat pengguna normal ttn-lw-cli users create norman --name norman --primary-email-address norman@localhost menggunakan pengguna admin dari awal
  3. coba buat gateway atau aplikasi

Apa yang kamu lihat sekarang?

Dalam kedua kasus tersebut, Konsol merespons dengan Insufficient rights for user 'myuser' setelah memasukkan detail dan menekan tombol Create Gateway atau Create Application .

Di konsol browser tidak ada yang aneh. Tab jaringan menunjukkan respons 403 Forbidden dari ttn.

Saat membuat aplikasi melalui CLI dengan pengguna admin dan menugaskannya ke pengguna yang bersangkutan, pengguna mungkin melihat aplikasi/gerbang tetapi mengkliknya menghasilkan 403 Forbidden.

Apa yang ingin Anda lihat sebagai gantinya?

Bagaimanapun saya berharap pengguna baru yang dibuat setidaknya dapat membuat gateway dan aplikasi untuk dirinya sendiri dan dapat membuka pandangan mereka ketika ditambahkan sebagai kolaborator.

Saya juga mengharapkan lebih banyak dokumentasi tentang proses pembuatan pengguna dan cara mengelola hak pengguna.

Lingkungan

The Things Network Stack for LoRaWAN: ttn-lw-stack
Version:             3.1.0
Go version:          go1.12.7
OS/Arch:             linux/amd64

Konfigurasi kasus 1:
stack-config.txt

Bagaimana Anda mengusulkan untuk menerapkan ini?

Sayangnya saya tidak tahu di mana letak masalahnya.

Bisakah Anda melakukannya sendiri dan mengajukan Permintaan Tarik?

Saya mungkin tidak dapat menerapkan perbaikan tetapi saya dapat memberikan dokumentasi untuk pembuatan pengguna dan manajemen hak.

ucli

Komentar yang paling membantu

Jika pengguna dibuat oleh admin, bidang state (dan admin ) diambil secara harfiah dari permintaan. Ini berfungsi sebagaimana mestinya, karena kita tidak tahu apakah admin secara eksplisit menyetel state ke REQUESTED atau membiarkannya begitu saja.

Jika pengguna tidak dibuat oleh admin, kami berasumsi bahwa tujuan mereka adalah untuk mendapatkan persetujuan, dan secara otomatis melakukannya jika tidak ada (persyaratan persetujuan admin) yang mencegahnya. Mereka tidak pernah bisa menjadikan diri mereka admin sejak awal.

Fungsionalitas "buat pengguna oleh admin" di UI web akan memperjelas bahwa bidang state perlu disetel, tetapi saya pikir akan lebih baik jika memiliki default yang lebih waras daripada REQUESTED , jadi mari kita ubah CLI dan buat flag state dari users create APPROVED secara default.

Semua 6 komentar

@w4tsn apa konfigurasi Anda? Apakah Anda memerlukan persetujuan admin untuk pengguna baru?

Bisakah Anda menunjukkan output dari $ ttn-lw-cli user get myuser --state ?

Kasus 1:

{
  "ids": {
    "user_id": "someadmin"
  },
  "created_at": "2019-08-14T07:20:10.542Z",
  "updated_at": "2019-08-14T07:20:10.542Z",
  "password_updated_at": "0001-01-01T00:00:00Z"
}

Kasus 2:

{
  "ids": {
    "user_id": "myuser"
  },
  "created_at": "2019-08-06T10:30:34.091Z",
  "updated_at": "2019-08-06T10:30:34.091Z",
  "password_updated_at": "0001-01-01T00:00:00Z"
}

Saya akan memperbarui bagian env dengan konfigurasi kasus 1 saya. Dalam kasus 2 saya juga tidak secara eksplisit mengatur persetujuan admin. Diperlukan persetujuan admin status konfigurasi = false

Saya dapat mengonfirmasi bahwa masalah tersebut dapat direproduksi pada 3.1.0.
Perbaikan yang mungkin dilakukan adalah menggunakan perintah aktivasi manual berikut: ttn-lw-cli users set norman --state=STATE_APPROVED . Saya akan mencari tahu mengapa ini terjadi segera.

Juga, dalam output di atas karena status tidak disebutkan, itu adalah nol, yang berarti STATE_REQUESTED , sehingga pengguna tidak benar-benar diaktifkan.

Ditemukan juga penyebabnya:
https://github.com/TheThingsNetwork/lorawan-stack/blob/55381c15f6902508ea34cd40441ad2bd3146ac37/pkg/identityserver/user_registry.go#L149 -L156
Pengguna yang dibuat oleh admin tidak menghormati pengaturan persetujuan admin dan selalu memiliki status default ( STATE_REQUESTED ). Apakah ini dimaksudkan @htdvisser ?

Jika pengguna dibuat oleh admin, bidang state (dan admin ) diambil secara harfiah dari permintaan. Ini berfungsi sebagaimana mestinya, karena kita tidak tahu apakah admin secara eksplisit menyetel state ke REQUESTED atau membiarkannya begitu saja.

Jika pengguna tidak dibuat oleh admin, kami berasumsi bahwa tujuan mereka adalah untuk mendapatkan persetujuan, dan secara otomatis melakukannya jika tidak ada (persyaratan persetujuan admin) yang mencegahnya. Mereka tidak pernah bisa menjadikan diri mereka admin sejak awal.

Fungsionalitas "buat pengguna oleh admin" di UI web akan memperjelas bahwa bidang state perlu disetel, tetapi saya pikir akan lebih baik jika memiliki default yang lebih waras daripada REQUESTED , jadi mari kita ubah CLI dan buat flag state dari users create APPROVED secara default.

Dengan #1190, yang mencakup fungsionalitas yang saya jelaskan di komentar saya sebelumnya, saya pikir masalah ini sekarang dapat ditutup.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

kschiffer picture kschiffer  ·  4Komentar

bafonins picture bafonins  ·  5Komentar

kschiffer picture kschiffer  ·  6Komentar

MatteMoveSRL picture MatteMoveSRL  ·  7Komentar

htdvisser picture htdvisser  ·  9Komentar