Làm cách nào để sử dụng Dịch vụ Xác thực Cơ bản?


10

Làm cách nào để sử dụng mô-đun Xác thực Cơ bản ?

Tôi muốn thêm http cơ bản auth cho dịch vụ của tôi. Tôi đã cài đặt nó và kích hoạt nó trên cấu hình điểm cuối của tôi. Tôi đã nhận được "Dịch vụ xác thực cơ bản HTTP_basic_auth không có sẵn cài đặt" trong cấu hình điểm cuối của tôi. trang cài đặt ở đâu?

Câu trả lời:


11

Mô-đun xác thực một cuộc gọi dịch vụ web đối với các tài khoản drupal.

  1. Kích hoạt mô-đun
  2. Thiết lập người dùng drupal
  3. Thực hiện cuộc gọi dịch vụ web với thông tin đăng nhập của người dùng.

Lưu ý rằng với xác thực cơ bản, thông tin đăng nhập có thể bị chặn nếu SSL không được sử dụng.

Mô-đun sử dụng các tiêu đề xác thực PHP tiêu chuẩn và gửi biểu mẫu đăng nhập drupal tiêu chuẩn, mà không cần kiểm tra bất kỳ vai trò hoặc quyền cụ thể nào. Vì vậy, bất kỳ người dùng drupal sẽ làm việc.

Thực hiện một cuộc gọi dịch vụ web thử nghiệm với curl hoặc wget để kiểm tra nó. Ngoài ra còn có hướng dẫn về cách gọi với PHP trong cuộc gọi với câu trả lời stackoverflow curl .


Điều này có hoàn toàn khác với việc sử dụng cấu trúc này trong một cuộc gọi URL không? tên người dùng: mypassword@example.com/callback
Citricguy

@Citricguy không khác. Cú pháp này được cung cấp bởi lược đồ URI en.wikipedia.org/wiki/URI_scheme . Tôi sẽ không làm theo cách đó. Một số dịch vụ REST có thể được kiểm tra trong trình duyệt và tôi lo lắng thông tin đăng nhập đã đi vào lịch sử trình duyệt. Với thông tin đăng nhập https được mã hóa. Nó cũng phụ thuộc vào thư viện http, php http có thể ổn khi xem nhận xét về php.net/manual/en/features.http-auth.php#44686 . Các trình duyệt của Microsoft không hỗ trợ cú pháp nữa, vì vậy nếu bạn sử dụng javascript để thực hiện cuộc gọi thì nó có thể không hoạt động. Một số API sử dụng phương pháp này goo.gl/eS9mqv
Interlated

Xin lỗi, cách bạn thực hiện cuộc gọi không ảnh hưởng đến cuộc gọi. Vì vậy, thử nghiệm với u: p@host.com nếu nó hoạt động tốt. Tôi đang nói rằng có thể có vấn đề thực hiện như vậy. Tôi sẽ nghĩ các tiêu đề, không phải URL càng sớm càng tốt để hợp lý hóa thử nghiệm.
Xen kẽ

4

Mô-đun trên được sử dụng để xác thực các cuộc gọi dịch vụ bằng kỹ thuật xác thực truy cập Cơ bản .. Bạn sẽ sử dụng Tên người dùng và mật khẩu Drupal để xác thực các cuộc gọi dịch vụ bằng cách thêm tiêu đề Ủy quyền vào cuộc gọi dịch vụ như sau

Khi tác nhân người dùng muốn gửi thông tin xác thực máy chủ, nó có thể sử dụng tiêu đề Ủy quyền.

Tiêu đề ủy quyền được xây dựng như sau:

Tên người dùng và mật khẩu được kết hợp thành một chuỗi "tên người dùng: mật khẩu"

Chuỗi ký tự kết quả sau đó được mã hóa bằng biến thể RFC2045-MIME của Base64, ngoại trừ không giới hạn ở 76 char / line Phương thức ủy quyền và khoảng trắng tức là "Cơ bản" được đặt trước chuỗi được mã hóa.

Ví dụ: nếu tác nhân người dùng sử dụng 'Aladdin' làm tên người dùng và 'mở vừng' làm mật khẩu thì tiêu đề được hình thành như sau :.

Ủy quyền: QWxhZGRpbjpvcGVuIHNlc2FtZQ cơ bản ==

Ví dụ dưới đây là cuộc gọi sử dụng curl ..

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

2
vâng, tôi đã đọc nó, nhưng vẫn không biết làm thế nào để thực hiện nó? Làm gì sau khi cài đặt module?. Bất kỳ sự trợ giúp nào đều sẽ là tuyệt vời. cảm ơn
Rijalul fikri

2
  1. Khi mô-đun được bật, đi đến Cấu trúc> Dịch vụ
  2. Chọn Điểm cuối của bạn và nhấp vào Chỉnh sửa nhập mô tả hình ảnh ở đây

  3. Sử dụng một công cụ như https://addons.mozilla.org/fr/firefox/addon/restclient/ để kiểm tra khách hàng của bạn:

nhập mô tả hình ảnh ở đây

Lưu ý: Tôi đã gặp sự cố với nó vì mặc dù tùy chọn xác thực cơ bản HTTP đã được đánh dấu khi gọi một tài nguyên của điểm cuối này đang trả về 200 thay vì 401 . Có thể nói, mô-đun không bảo đảm điểm cuối của tôi.

Vấn đề xuất hiện trong:

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

Tôi đã giải quyết nó làm một bản vá cho mô-đun:

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


1

Điều gì có thể sai: Sau khi thiết lập tất cả các cài đặt:

  1. cho phép mô-đun xác thực dịch vụ cơ bản
  2. tạo dịch vụ điểm cuối api, ví dụ: lấy tất cả các nút bằng
  3. đặt hộp kiểm "Xác thực cơ bản HTTP" trên trang chỉnh sửa
  4. tạo người dùng

Và lưu ý rằng, nếu bạn sẽ không vô hiệu hóa quyền "Xem nội dung được xuất bản" thì bất kỳ người dùng nào cũng có thể có quyền truy cập vào điểm cuối api của dịch vụ với kết quả được trả về.


0

Sau khi cài đặt Services Basic Authenticationmô-đun, hãy chuyển đến cài đặt REST của máy chủ của bạn:

/admin/structure/services

Nhập Edittùy chọn và ở dưới cùng có một hộp kiểm:

HTTP basic authentication

Kích hoạt nó và nhấn nút Save.


Người dùng nào: mật khẩu tôi sẽ sử dụng để xác thực cơ bản HTTP?
AshwinP

-1

Đừng quên sử dụng mô-đun truy cập nội dung.

Thêm chi tiết bổ sung theo yêu cầu của MPD.

Nếu bạn không sử dụng mô-đun truy cập nội dung thì người dùng sẽ thấy tất cả nội dung bao gồm cả những người khác tạo ra mà họ không được phép xem. Ví dụ: người dùng A đã lưu trữ dữ liệu cá nhân mà người dùng B không được phép nhìn thấy hoặc ngược lại. Mô-đun xác thực cơ bản dịch vụ cho phép xác thực nhưng không thực thi quyền truy cập nội dung. Mô-đun truy cập nội dung thực thi điều đó. Nếu bạn không sử dụng điều khiển truy cập nội dung thì sẽ không có điểm nào trong việc xác thực người dùng.


Bạn có thể mở rộng về cách mô-đun này có thể giải quyết nhu cầu của người dùng không?
mpdon Arena

Xin vui lòng xem cập nhật của tôi trong câu trả lời ban đầu.
techwestcoastsfosea
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.