จะใช้การรับรองความถูกต้องเบื้องต้นของบริการได้อย่างไร


10

จะใช้โมดูลการรับรองความถูกต้องเบื้องต้นของบริการได้อย่างไร

ฉันต้องการเพิ่ม http auth พื้นฐานสำหรับบริการของฉัน ฉันได้ติดตั้งและเปิดใช้งานการกำหนดค่าจุดสิ้นสุดของฉัน ฉันได้รับ "การตรวจสอบสิทธิ์พื้นฐาน HTTP Services_basic_auth ไม่มีการตั้งค่า" ในการกำหนดค่าจุดสิ้นสุดของฉัน หน้าการตั้งค่าอยู่ที่ไหน

คำตอบ:


11

โมดูลรับรองความถูกต้องของการโทรบริการบนเว็บกับบัญชี drupal

  1. เปิดใช้งานโมดูล
  2. ตั้งค่าผู้ใช้ drupal
  3. โทรผ่านเว็บเซอร์วิสด้วยข้อมูลประจำตัวของผู้ใช้

โปรดทราบว่าด้วยการรับรองความถูกต้องขั้นพื้นฐานข้อมูลประจำตัวสามารถถูกดักจับหากไม่ได้ใช้ SSL

โมดูลใช้ส่วนหัวการรับรองความถูกต้อง PHPมาตรฐานและส่งแบบฟอร์มการเข้าสู่ระบบ drupal มาตรฐานโดยไม่ต้องตรวจสอบบทบาทหรือการอนุญาตที่เฉพาะเจาะจง ดังนั้นผู้ใช้ drupal จะทำงานได้

ทำการทดสอบการโทรทางเว็บด้วย curlหรือ wget เพื่อทดสอบ นอกจากนี้ยังมีคำแนะนำในการโทรด้วย PHP ในการโทรด้วยคำตอบของcurl stackoverflow


สิ่งนี้แตกต่างจากการใช้โครงสร้างนี้ในการเรียก URL ครั้งเดียวหรือไม่ myusername: mypassword@example.com/callback
Citricguy

@Citricguy ไม่แตกต่างกัน รูปแบบนี้มีให้โดย URI โครงการen.wikipedia.org/wiki/URI_scheme ฉันจะไม่ทำแบบนั้น บริการ REST บางอย่างสามารถทดสอบได้ในเบราว์เซอร์และฉันกังวลว่าข้อมูลรับรองจะเข้าสู่ประวัติเบราว์เซอร์ ด้วยข้อมูลรับรอง https ถูกเข้ารหัส นอกจากนี้ยังจะขึ้นอยู่กับห้องสมุดที่ http, PHP http อาจจะตกลงเห็นความคิดเห็นบนphp.net/manual/en/features.http-auth.php#44686 เบราว์เซอร์ Microsoft ไม่สนับสนุนไวยากรณ์อีกต่อไปดังนั้นหากคุณใช้จาวาสคริปต์เพื่อโทรออกอาจไม่ทำงาน API บางตัวใช้วิธีนี้goo.gl/eS9mqv
Interlated

ขออภัยวิธีที่คุณใช้การโทรไม่มีผลกับการโทร ดังนั้นทดสอบกับ u: p@host.com ถ้าใช้งานได้ ฉันกำลังบอกว่าอาจมีปัญหาในการใช้งานเช่นนั้น ฉันคิดว่าส่วนหัวไม่ใช่ URL เร็วที่สุดเพื่อปรับปรุงการทดสอบ
Interlated

4

โมดูลข้างต้นใช้สำหรับตรวจสอบสิทธิ์การโทรของบริการโดยใช้เทคนิคการตรวจสอบสิทธิ์การเข้าถึงระดับพื้นฐาน .. คุณจะใช้ชื่อผู้ใช้และรหัสผ่าน Drupal เพื่อตรวจสอบสิทธิ์การโทรของบริการ

เมื่อตัวแทนผู้ใช้ต้องการส่งข้อมูลรับรองความถูกต้องเซิร์ฟเวอร์อาจใช้ส่วนหัวการอนุญาต

ส่วนหัวการอนุญาตถูกสร้างขึ้นดังนี้:

ชื่อผู้ใช้และรหัสผ่านรวมกันเป็นสตริง "ชื่อผู้ใช้: รหัสผ่าน"

สตริงตัวอักษรผลลัพธ์จะถูกเข้ารหัสโดยใช้ตัวแปร RFC2045-MIME ของ Base64 ยกเว้นไม่ จำกัด เพียง 76 อักขระ / บรรทัดวิธีการอนุญาตและพื้นที่เช่น "พื้นฐาน" จะถูกใส่ไว้ก่อนสตริงที่เข้ารหัส

ตัวอย่างเช่นหากตัวแทนผู้ใช้ใช้ 'Aladdin' เป็นชื่อผู้ใช้และ 'open งา' เป็นรหัสผ่านแล้วส่วนหัวจะเกิดขึ้นดังนี้:

การอนุญาต: พื้นฐาน QWxhZGRpbjpvcGVuIHNlc2FtZQ ==

ตัวอย่างด้านล่างคือการโทรโดยใช้ curl ..

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

2
ใช่ฉันอ่านไปแล้วแต่ยังไม่รู้วิธีใช้ จะทำอย่างไรหลังจากติดตั้งโมดูล? ความช่วยเหลือใด ๆ จะดีมาก ขอบคุณ
Rijalul fikri

2
  1. เมื่อโมดูลถูกเปิดใช้งานไปที่โครงสร้าง> บริการ
  2. เลือกปลายทางของคุณและคลิกแก้ไข ป้อนคำอธิบายรูปภาพที่นี่

  3. ใช้เครื่องมือเช่นhttps://addons.mozilla.org/fr/firefox/addon/restclient/เพื่อทดสอบลูกค้าของคุณ:

ป้อนคำอธิบายรูปภาพที่นี่

หมายเหตุ: ผมเคยมีปัญหากับมันเช่นแม้ว่าตัวเลือกHTTP การตรวจสอบเบื้องต้นที่ถูกทำเครื่องหมายโทรทรัพยากรของปลายทางนี้กำลังจะกลับ200แทน401 คือว่าโมดูลล้มเหลวในการรักษาความปลอดภัยจุดสิ้นสุดของฉัน

ปัญหาปรากฏใน:

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

ฉันแก้ไขมันโดยทำ patch สำหรับโมดูล:

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


1

มีอะไรผิดปกติ: หลังจากตั้งค่าทั้งหมดแล้ว:

  1. เปิดใช้งานโมดูลบริการเบื้องต้น
  2. สร้างบริการจุดปลาย api ตัวอย่างเช่น: รับโหนดทั้งหมดโดย
  3. ตั้งค่าช่องทำเครื่องหมาย "การรับรองความถูกต้องพื้นฐาน HTTP" ในหน้าแก้ไข
  4. สร้างผู้ใช้

และสังเกตว่าหากคุณจะไม่ปิดใช้งานสิทธิ์ "ดูเนื้อหาที่เผยแพร่" ผู้ใช้ทุกคนสามารถมีสิทธิ์เข้าถึงจุดสิ้นสุดของบริการพร้อมผลลัพธ์ที่ส่งคืน


0

หลังจากติดตั้งServices Basic Authenticationโมดูลไปที่การตั้งค่า REST ของเซิร์ฟเวอร์ของคุณ:

/admin/structure/services

ป้อนEditตัวเลือกและที่ด้านล่างจะมีช่องทำเครื่องหมาย:

HTTP basic authentication

เปิดใช้งานและกดปุ่มบันทึก


ผู้ใช้คนใด: รหัสผ่านที่ฉันจะใช้สำหรับการตรวจสอบสิทธิ์พื้นฐาน HTTP
AshwinP

-1

อย่าลืมที่จะใช้โมดูลการเข้าถึงเนื้อหา

การเพิ่มรายละเอียดเพิ่มเติมตามคำขอของ MPD

หากคุณไม่ได้ใช้งานโมดูลการเข้าถึงเนื้อหาผู้ใช้จะเห็นเนื้อหาทั้งหมดรวมถึงเนื้อหาที่สร้างโดยผู้อื่นซึ่งพวกเขาไม่ควรเห็น ตัวอย่างเช่นผู้ใช้ A เก็บข้อมูลส่วนบุคคลที่ผู้ใช้ B ไม่ควรเห็นหรือฉลาดในทางกลับกัน โมดูลการรับรองความถูกต้องพื้นฐานของบริการเปิดใช้งานการรับรองความถูกต้อง แต่ไม่บังคับใช้การเข้าถึงเนื้อหา โมดูลการเข้าถึงเนื้อหาบังคับใช้ หากคุณไม่ได้ใช้การควบคุมการเข้าถึงเนื้อหาจะไม่มีจุดตรวจสอบสิทธิ์ผู้ใช้


คุณสามารถขยายวิธีการที่โมดูลนี้สามารถแก้ไขความต้องการของผู้ใช้ได้หรือไม่?
mpdonadio

โปรดดูการปรับปรุงของฉันในคำตอบเดิม
techwestcoastsfosea
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.