Bagaimana cara menggunakan Layanan Otentikasi Dasar?


10

Bagaimana cara menggunakan modul Otentikasi Layanan Dasar ?

Saya ingin menambahkan autentikasi dasar http untuk layanan saya. Saya telah menginstalnya dan mengaktifkannya pada konfigurasi titik akhir saya. Saya mendapatkan ini "Layanan otentikasi HTTP dasar Services_basic_auth tidak memiliki pengaturan yang tersedia" dalam konfigurasi titik akhir saya. di mana halaman pengaturan?

Jawaban:


11

Modul mengotentikasi panggilan layanan web terhadap akun drupal.

  1. Aktifkan modul
  2. Siapkan pengguna drupal
  3. Lakukan panggilan layanan web dengan kredensial pengguna.

Perhatikan bahwa dengan auth dasar, kredensial dapat disadap jika SSL tidak digunakan.

Modul ini menggunakan header otentikasi PHP standar dan mengirimkan formulir login drupal standar, tanpa memeriksa peran atau izin tertentu. Jadi, setiap pengguna drupal akan bekerja.

Buat panggilan uji layanan web dengan curl atau wget untuk mengujinya. Ada juga petunjuk tentang cara menelepon dengan PHP dalam panggilan dengan jawaban curl stackoverflow.


Apakah ini sama sekali berbeda dari menggunakan struktur ini dalam satu panggilan URL? myusername: mypassword@example.com/callback
Citricguy

@Citricguy tidak berbeda. Sintaks ini disediakan oleh skema URI en.wikipedia.org/wiki/URI_scheme . Saya tidak akan melakukannya dengan cara itu. Beberapa layanan REST dapat diuji di browser dan saya khawatir kredensial masuk ke riwayat browser. Dengan https kredensial dienkripsi. Itu juga tergantung pada pustaka http, php http mungkin OK melihat komentar di php.net/manual/en/features.http-auth.php#44686 . Browser Microsoft tidak mendukung sintaks lagi jadi jika Anda menggunakan javascript untuk melakukan panggilan mungkin tidak berfungsi. Beberapa API menggunakan metode ini goo.gl/eS9mqv
Interlated

Maaf, cara Anda menerapkan panggilan tidak berdampak pada panggilan. Jadi pengujian dengan u: p@host.com jika berfungsi dengan baik. Saya mengatakan bahwa mungkin ada masalah implementasi seperti itu. Saya akan berpikir tajuk, bukan URL sedini mungkin untuk merampingkan pengujian.
Disatukan

4

Modul di atas digunakan untuk mengautentikasi panggilan layanan menggunakan teknik otentikasi akses dasar .. Anda akan menggunakan Nama Pengguna dan kata sandi Drupal Anda untuk mengautentikasi panggilan layanan dengan menambahkan header Otorisasi ke panggilan layanan sebagai berikut

Ketika agen pengguna ingin mengirim kredensial otentikasi server, ia dapat menggunakan header Otorisasi.

Header Otorisasi dibuat sebagai berikut:

Nama pengguna dan kata sandi digabungkan menjadi string "nama pengguna: kata sandi"

Literal string yang dihasilkan kemudian dikodekan menggunakan varian RFC2045-MIME dari Base64, kecuali tidak terbatas pada 76 karakter / baris. Metode otorisasi dan spasi yaitu "Dasar" kemudian diletakkan sebelum string yang dikodekan.

Misalnya, jika agen pengguna menggunakan 'Aladdin' sebagai nama pengguna dan 'buka wijen' sebagai kata sandi maka tajuk dibentuk sebagai berikut :.

Otorisasi: QWxhZGRpbjpvcGVuIHNlc2FtZQ Dasar ==

Untuk Contoh di bawah ini adalah panggilan menggunakan ...

curl -H "Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==" http://www.example.com/endpoint/yourservice

2
ya, saya sudah membacanya, tetapi masih belum tahu bagaimana cara mengimplementasikannya? apa yang harus dilakukan setelah menginstal modul? bantuan apa pun akan bagus. terima kasih
Rijalul fikri

2
  1. Setelah modul diaktifkan, buka Struktur> Layanan
  2. Pilih Titik Akhir Anda dan klik Edit masukkan deskripsi gambar di sini

  3. Gunakan alat seperti https://addons.mozilla.org/fr/firefox/addon/restclient/ untuk menguji klien Anda:

masukkan deskripsi gambar di sini

Catatan: Saya mengalami masalah dengan itu meskipun opsi otentikasi HTTP dasar ditandai memanggil sumber daya titik akhir ini kembali 200 bukannya 401 . Singkatnya, modul gagal mengamankan titik akhir saya.

Masalahnya muncul di:

https://www.drupal.org/project/services_basic_auth
version: 7.x-1.4

Saya menyelesaikannya dengan melakukan patch untuk modul:

https://www.drupal.org/node/2734207


1

Apa yang bisa salah: Setelah mengatur semua pengaturan:

  1. aktifkan modul layanan-dasar-otentikasi
  2. buat layanan titik akhir api, misalnya: dapatkan semua node dengan
  3. setel kotak centang "Otentikasi dasar HTTP" di halaman edit
  4. buat pengguna

Dan perhatikan, bahwa jika Anda tidak akan menonaktifkan izin "Lihat konten yang diterbitkan" setiap pengguna dapat memiliki akses ke titik akhir layanan api dengan hasil yang dikembalikan.


0

Setelah menginstal Services Basic Authenticationmodul pergi ke pengaturan REST server Anda:

/admin/structure/services

Masukkan Editopsi dan di bagian bawah ada kotak centang:

HTTP basic authentication

Aktifkan dan tekan tombol Simpan.


Pengguna apa: kata sandi yang akan saya gunakan untuk otentikasi dasar HTTP?
AshwinP

-1

Jangan lupa untuk menggunakan modul akses konten.

Menambahkan detail tambahan per permintaan MPD.

Jika Anda tidak menggunakan modul akses konten maka pengguna akan melihat semua konten termasuk yang dibuat oleh orang lain yang seharusnya tidak mereka lihat. Misalnya, pengguna A telah menyimpan data pribadi yang tidak seharusnya dilihat oleh pengguna B atau sebaliknya. Modul Otentikasi Layanan Dasar memungkinkan otentikasi tetapi tidak memaksakan akses konten. Modul Akses Konten memberlakukan hal itu. Jika Anda tidak menggunakan kontrol akses konten maka tidak ada gunanya mengautentikasi pengguna.


Bisakah Anda mengembangkan bagaimana modul ini dapat menyelesaikan kebutuhan pengguna?
mpdonadio

Silakan lihat pembaruan saya di jawaban asli.
techwestcoastsfosea
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.