คำถามติดแท็ก oauth

3
การรักษาความปลอดภัย REST API โทเค็นที่เก็บไว้กับ JWT vs OAuth
ฉันยังคงพยายามค้นหาโซลูชันความปลอดภัยที่ดีที่สุดสำหรับปกป้อง REST API เนื่องจากจำนวนแอปพลิเคชันมือถือและ API เพิ่มขึ้นทุกวัน ฉันลองใช้วิธีการพิสูจน์ตัวตนแบบต่างๆ แต่ยังมีความเข้าใจผิดอยู่บ้างดังนั้นฉันต้องการคำแนะนำจากคนที่มีประสบการณ์มากกว่า ให้ฉันบอกว่าฉันเข้าใจทุกสิ่งนี้ได้อย่างไร หากฉันเข้าใจบางสิ่งผิดพลาดโปรดแจ้งให้เราทราบ เท่าที่ REST API นั้นไร้สัญชาติเช่นเดียวกับเว็บโดยทั่วไปเราจำเป็นต้องส่งข้อมูลรับรองความถูกต้องในแต่ละคำขอ (คุกกี้โทเค็น .... ) ฉันรู้สามกลไกที่ใช้กันอย่างแพร่หลายในการตรวจสอบผู้ใช้ โทเค็นด้วย HTTPS ฉันใช้วิธีนี้หลายครั้งดีพอกับ HTTPS หากผู้ใช้ระบุรหัสผ่านที่ถูกต้องและเข้าสู่ระบบเขาจะได้รับโทเค็นตอบสนองและจะใช้สำหรับการร้องขอเพิ่มเติม โทเค็นถูกสร้างขึ้นโดยเซิร์ฟเวอร์และเก็บไว้เช่นในตารางแยกกันหรือที่เก็บข้อมูลผู้ใช้ ดังนั้นสำหรับแต่ละเซิร์ฟเวอร์คำขอจะตรวจสอบว่าผู้ใช้มีโทเค็นหรือไม่และเหมือนกับในฐานข้อมูล ทุกอย่างตรงไปตรงมาสวย โทเค็น JWT โทเค็นนี้เป็นการอธิบายตนเองประกอบด้วยข้อมูลที่จำเป็นทั้งหมดเกี่ยวกับโทเค็นผู้ใช้ไม่สามารถเปลี่ยนแปลงได้เช่นวันหมดอายุหรือการอ้างสิทธิ์อื่น ๆ เนื่องจากโทเค็นนี้สร้างขึ้น (ลงชื่อ) โดยเซิร์ฟเวอร์ที่มีคีย์เวิร์ดลับ นี่ก็ชัดเจน แต่ปัญหาใหญ่อย่างหนึ่งส่วนตัวสำหรับฉันวิธีทำให้โทเค็นเป็นโมฆะ OAuth 2. ฉันไม่เข้าใจว่าทำไมควรใช้วิธีการนี้เมื่อมีการสื่อสารโดยตรงระหว่างเซิร์ฟเวอร์กับลูกค้า เท่าที่ฉันเข้าใจเซิร์ฟเวอร์ OAuth ใช้ในการออกโทเค็นที่มีขอบเขต จำกัด เพื่ออนุญาตให้แอปพลิเคชันอื่นเข้าถึงข้อมูลผู้ใช้โดยไม่ต้องเก็บรหัสผ่านและการเข้าสู่ระบบ นี่เป็นโซลูชันที่ยอดเยี่ยมสำหรับเครือข่ายสังคมเมื่อผู้ใช้ต้องการลงทะเบียนในบางหน้าเซิร์ฟเวอร์สามารถขอสิทธิ์ในการรับข้อมูลผู้ใช้เช่นจาก twitter หรือ facebook และกรอกข้อมูลลงทะเบียนด้วยข้อมูลผู้ใช้และอื่น ๆ พิจารณาลูกค้ามือถือสำหรับร้านค้าออนไลน์ …
104 security  rest  api  oauth  https 

5
ฉันจะจัดเก็บรหัสผู้ใช้และความลับ OAuth v1 สำหรับไคลเอนต์ Twitter บนเดสก์ท็อปโอเพนซอร์สได้อย่างไรโดยไม่เปิดเผยให้ผู้ใช้เห็น
ฉันต้องการสร้างไคลเอนต์หนาเดสก์ท็อปไคลเอนต์ทวิตเตอร์โอเพนซอร์ส ฉันเคยใช้. NET เป็นภาษาของฉันและTwitterizerเป็น wrapper OAuth / Twitter ของฉันและแอพของฉันน่าจะเปิดตัวเป็นโอเพ่นซอร์ส ในการรับโทเค็น OAuth ต้องมีข้อมูลสี่ชิ้น: เข้าสู่ Token (ชื่อผู้ใช้ตัวสั่นด้วยความตื่นเต้น) การเข้าถึงลับ (รหัสผ่าน Twitter) รหัสผู้ใช้ ความลับของผู้บริโภค ข้อมูลสองชิ้นที่สองจะไม่ถูกแชร์เช่นคีย์ส่วนตัวของ PGP อย่างไรก็ตามเนื่องจากวิธีการกำหนดขั้นตอนการอนุมัติ OAuth ทำให้ต้องมีแอพพลิเคชั่นนี้ แม้ว่าแอปพลิเคชันจะไม่เปิดแหล่งที่มาและรหัสผู้บริโภค / ความลับถูกเข้ารหัสลับผู้ใช้ที่มีเหตุผลสามารถเข้าถึงคู่ค้าของผู้บริโภค / คู่ความลับได้ ดังนั้นคำถามของฉันคือฉันจะแก้ไขปัญหานี้ได้อย่างไร กลยุทธ์ที่เหมาะสมสำหรับไคลเอนต์ Twitter บนเดสก์ท็อปคือการปกป้องรหัสผู้บริโภคและความลับ?

4
ฉันจะออกแบบเว็บเซอร์ RESTful ให้ใช้บุคคลที่สาม (เช่น Google, Facebook, Twitter) สำหรับการตรวจสอบได้อย่างไร
สำหรับงานของฉันเรามี webservice สงบดีที่เราสร้างขึ้นที่เราใช้ในการขับเคลื่อนเว็บไซต์สองสามที่เรามี โดยทั่วไปเว็บเซอร์วิซให้คุณสร้างและทำงานกับตั๋วสนับสนุนและเว็บไซต์รับผิดชอบส่วนหน้า การร้องขอบริการเว็บเซอร์ใด ๆ ใช้ส่วนหัวรับรองความถูกต้องซึ่งเราใช้ในการตรวจสอบผู้ใช้และรหัสผ่านสำหรับการโทรแต่ละครั้ง ในปีนี้เราต้องการขยายตัวเลือกการเข้าสู่ระบบของเราเพื่อให้ผู้ใช้บนเว็บไซต์สามารถเข้าสู่ระบบผ่านทาง Google, Twitter และ Facebook อย่างไรก็ตามฉันมีปัญหามากมายในการหาวิธีการออกแบบสิ่งนี้ดังนั้นเว็บเซอร์วิซจึงสามารถใช้ผู้ให้บริการการพิสูจน์ตัวตนบุคคลที่สามเพื่อให้แน่ใจว่าผู้ใช้เป็นคนที่พวกเขาพูด มีวิธีปฏิบัติที่ดีที่สุดในการทำเช่นนี้หรือไม่? ขณะนี้เรากำลังคิดที่จะให้เว็บไซต์จัดการกับการรับรองความถูกต้องของผู้ใช้แล้วใช้การเรียก setSessionId ใหม่ที่ลงทะเบียนเซสชันปัจจุบันด้วยเว็บเซอร์แบ็กเอนด์ คำขอเพิ่มเติมแต่ละรายการไปยังเว็บเซอร์วิซจะส่งผ่าน sessionId นั้นและจะตรวจสอบความถูกต้อง สิ่งเหล่านี้ดูเหมือนจะโอเค แต่ฉันมีความรู้สึกที่ด้านหลังของหัวของฉันที่ฉันไม่ได้คิดเรื่องนี้ผ่านและทุกการเรียกดูฟอรั่มของฉันและการอ่านรายละเอียด Oauth และ openid เป็นเพียงทำให้ฉันสับสนมากขึ้น เคล็ดลับใด ๆ สำหรับวิธีแก้ไขปัญหานี้

5
OAuth2 ROPC vs Basic Auth สำหรับ REST API สาธารณะหรือไม่
กรณีการใช้งานเฉพาะที่ฉันสนใจที่นี่กำลังตรวจสอบสิทธิ์ลูกค้า REST กับจุดสิ้นสุดเซิร์ฟเวอร์ที่เปิดเผยต่อสาธารณะ (เช่น REST API สาธารณะ) ทางออกที่ง่ายที่สุดที่นี่คือการตรวจสอบสิทธิ์พื้นฐาน แต่ฉันมักจะได้ยิน OAuth2 โน้มน้าวว่าเป็นวิธีแก้ปัญหาที่ยอดเยี่ยมในเกือบทุกสถานการณ์ สิ่งที่เป็นประเภทการให้สิทธิ์ OAuth2 เพียงอย่างเดียวที่เป็นไปได้สำหรับลูกค้า REST ที่รับรองความถูกต้องกับเซิร์ฟเวอร์ REST คือข้อมูลประจำตัวของรหัสผ่านเจ้าของทรัพยากร (ROPC)เนื่องจากการให้รหัสและการให้สิทธิ์โดยปริยายต้องใช้ UI / หน้าเว็บ ผู้ใช้เพื่อเข้าสู่ระบบและอนุญาตแอปไคลเอ็นต์ด้วยตนเอง วิธีการทำงานของ ROPC คือการส่งชื่อผู้ใช้ / รหัสผ่านของเจ้าของทรัพยากรและรหัสลูกค้าเป็นพารามิเตอร์สตริงแบบสอบถาม ?!? นี่คือความปลอดภัยที่น้อยลง (IMHO) จากนั้น Auth พื้นฐานซึ่งฐานอย่างน้อย 64 เข้ารหัสข้อมูลประจำตัวและส่งภายในส่วนหัวซึ่ง TLS สามารถเข้ารหัสได้! ดังนั้นผมจึงถาม: ในบริบทของ API REST ประชาชนเป็น OAuth2 ROPC จริงๆดีกว่าตรวจสอบสิทธิ์พื้นฐาน? อะไรคือความปลอดภัยมากกว่า OAuth2 ROPC ปรับปรุง …
21 rest  oauth  https 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.