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

การรับรองความถูกต้องเป็นกระบวนการของการตรวจสอบตัวตน

30
การให้สิทธิ์ Google OAuth 2 - ข้อผิดพลาด: redirect_uri_mismatch
บนเว็บไซต์https://code.google.com/apis/consoleฉันได้ลงทะเบียนแอปพลิเคชันของฉันแล้วตั้งค่ารหัสลูกค้าที่สร้าง:และความลับลูกค้าในแอปของฉันและพยายามลงชื่อเข้าใช้ด้วย Google น่าเสียดายที่ฉันได้รับข้อความแสดงข้อผิดพลาด: Error: redirect_uri_mismatch The redirect URI in the request: http://127.0.0.1:3000/auth/google_oauth2/callback did not match a registered redirect URI scope=https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email response_type=code redirect_uri=http://127.0.0.1:3000/auth/google_oauth2/callback access_type=offline approval_prompt=force client_id=generated_id ข้อความนี้หมายถึงอะไรและฉันจะแก้ไขได้อย่างไร ผมใช้อัญมณีomniauth-google-OAuth2

15
วิธีรักษาความปลอดภัย MongoDB ด้วยชื่อผู้ใช้และรหัสผ่าน
ฉันต้องการตั้งค่าการตรวจสอบชื่อผู้ใช้และรหัสผ่านสำหรับอินสแตนซ์ MongoDB ของฉันเพื่อให้การเข้าถึงระยะไกลใด ๆ จะขอชื่อผู้ใช้และรหัสผ่าน ฉันพยายามสอนจากเว็บไซต์ MongoDB และทำตาม: use admin db.addUser('theadmin', '12345'); db.auth('theadmin','12345'); หลังจากนั้นฉันก็ออกมาแล้วก็วิ่งอีกครั้ง และฉันไม่ต้องการรหัสผ่านเพื่อเข้าถึง แม้ว่าฉันจะเชื่อมต่อกับฐานข้อมูลจากระยะไกลฉันยังไม่ได้รับแจ้งชื่อผู้ใช้และรหัสผ่าน UPDATEนี่คือทางออกที่ฉันใช้ 1) At the mongo command line, set the administrator: use admin; db.addUser('admin','123456'); 2) Shutdown the server and exit db.shutdownServer(); exit 3) Restart mongod with --auth $ sudo ./mongodb/bin/mongod --auth --dbpath /mnt/db/ 4) Run …

9
อะไรคือความแตกต่างที่สำคัญระหว่างการตรวจสอบ JWT และ OAuth?
ฉันมี SPA ใหม่พร้อมโมเดลการพิสูจน์ตัวตนแบบไร้รัฐโดยใช้ JWT ฉันมักถูกขอให้อ้างถึง OAuth สำหรับกระบวนการตรวจสอบสิทธิ์เช่นขอให้ฉันส่ง 'โทเค็นโทเค็น' สำหรับทุกคำขอแทนที่จะเป็นส่วนหัวโทเค็นธรรมดา แต่ฉันคิดว่า OAuth นั้นซับซ้อนกว่าการรับรองความถูกต้อง JWT ธรรมดา อะไรคือความแตกต่างที่สำคัญฉันควรทำให้การตรวจสอบ JWT มีลักษณะเหมือน OAuth หรือไม่ ฉันใช้ JWT เป็น XSRF-TOKEN ของฉันเพื่อป้องกัน XSRF แต่ฉันถูกขอให้แยกพวกเขาหรือไม่ ฉันควรแยกพวกเขาออกจากกันหรือไม่? ความช่วยเหลือใด ๆ ที่นี่จะได้รับการชื่นชมและอาจนำไปสู่ชุดแนวทางสำหรับชุมชน

2
ทำความเข้าใจกับหนังสือเดินทางทำให้เป็นอันดับซีเรียล
คุณจะอธิบายเวิร์กโฟลว์ของวิธีการทำให้เป็นอันดับและวิธีการซีเรียลไลเซชันของ Passport อย่างไรให้กับคนธรรมดา ไม่อยู่ที่ไหนuser.idไปหลังจากที่passport.serializeUserได้รับการเรียกว่า? เรากำลังโทรหาpassport.deserializeUserหลังจากนั้นมันเข้ากับกระแสงานได้ที่ไหน? // used to serialize the user for the session passport.serializeUser(function(user, done) { done(null, user.id); // where is this user.id going? Are we supposed to access this anywhere? }); // used to deserialize the user passport.deserializeUser(function(id, done) { User.findById(id, function(err, user) { done(err, user); }); }); …

3
แนวทางปฏิบัติที่ดีที่สุดของ SPA สำหรับการรับรองความถูกต้องและการจัดการเซสชัน
เมื่อสร้างแอพพลิเคชั่นสไตล์ SPA โดยใช้เฟรมเวิร์กเช่น Angular, Ember, React เป็นต้นคนใดที่เชื่อว่าเป็นแนวปฏิบัติที่ดีที่สุดสำหรับการพิสูจน์ตัวตนและการจัดการเซสชัน ฉันสามารถนึกถึงวิธีการพิจารณาเข้าใกล้ปัญหา ถือว่าไม่แตกต่างจากการรับรองความถูกต้องด้วยเว็บแอปพลิเคชันทั่วไปโดยสมมติว่า API และ UI มีโดเมนต้นทางเดียวกัน สิ่งนี้น่าจะเกี่ยวข้องกับการมีคุกกี้เซสชันที่เก็บข้อมูลเซสชันฝั่งเซิร์ฟเวอร์และอาจเป็นจุดสิ้นสุด API เซสชันที่เว็บรับรองความถูกต้องของ UI สามารถรับข้อมูลผู้ใช้ปัจจุบันเพื่อช่วยในการกำหนดค่าส่วนบุคคลหรืออาจกำหนดบทบาท / ความสามารถในฝั่งไคลเอ็นต์ เซิร์ฟเวอร์จะยังคงบังคับใช้กฎที่ป้องกันการเข้าถึงข้อมูลแน่นอน UI จะใช้ข้อมูลนี้เพื่อกำหนดประสบการณ์เอง ปฏิบัติต่อเหมือนลูกค้าบุคคลที่สามใด ๆ ที่ใช้ API สาธารณะและรับรองความถูกต้องกับระบบโทเค็นบางประเภทที่คล้ายกับ OAuth กลไกโทเค็นนี้จะใช้โดย UI ไคลเอนต์เพื่อรับรองความถูกต้องของทุกคำขอที่ทำกับเซิร์ฟเวอร์ API ฉันไม่ใช่ผู้เชี่ยวชาญมากนักที่นี่ แต่ # 1 ดูเหมือนจะเพียงพอสำหรับกรณีส่วนใหญ่ แต่ฉันอยากได้ยินความเห็นที่มีประสบการณ์มากกว่านี้


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

14
ไลบรารีการพิสูจน์ตัวตนผู้ใช้สำหรับ node.js?
มีไลบรารีการพิสูจน์ตัวตนผู้ใช้ที่มีอยู่สำหรับ node.js หรือไม่? โดยเฉพาะฉันกำลังมองหาบางอย่างที่สามารถทำการตรวจสอบรหัสผ่านสำหรับผู้ใช้ (ใช้ฐานข้อมูลรับรองความถูกต้องที่กำหนดเอง) และเชื่อมโยงผู้ใช้นั้นกับเซสชัน ก่อนที่ฉันจะเขียนห้องสมุดรับรองความถูกต้องฉันคิดว่าฉันจะรู้ว่าคนรู้จักห้องสมุดที่มีอยู่หรือไม่ ไม่พบสิ่งที่ชัดเจนผ่านการค้นหาของ Google -Shreyas

7
เหตุใด AuthorizeAttribute จึงเปลี่ยนเส้นทางไปที่หน้าเข้าสู่ระบบเพื่อตรวจสอบสิทธิ์และล้มเหลว
ใน ASP.NET MVC คุณสามารถทำเครื่องหมายวิธีควบคุมด้วยAuthorizeAttributeเช่น: [Authorize(Roles = "CanDeleteTags")] public void Delete(string tagName) { // ... } ซึ่งหมายความว่าหากผู้ใช้ที่เข้าสู่ระบบในปัจจุบันไม่ได้อยู่ในบทบาท "CanDeleteTags" วิธีการควบคุมจะไม่ถูกเรียก น่าเสียดายสำหรับความล้มเหลวAuthorizeAttributeจะส่งคืนHttpUnauthorizedResultซึ่งจะส่งคืนรหัสสถานะ HTTP 401 เสมอซึ่งจะทำให้การเปลี่ยนเส้นทางไปยังหน้าเข้าสู่ระบบ หากผู้ใช้ไม่ได้เข้าสู่ระบบนี่เหมาะสมอย่างยิ่ง อย่างไรก็ตามหากผู้ใช้เข้าสู่ระบบแล้วแต่ไม่ได้อยู่ในบทบาทที่ต้องการมันก็สับสนที่จะส่งพวกเขากลับไปที่หน้าเข้าสู่ระบบ ดูเหมือนว่าการAuthorizeAttributeพิสูจน์ตัวตนและการอนุญาต conflates ดูเหมือนว่าการกำกับดูแลใน ASP.NET MVC หรือฉันขาดอะไรไป? ฉันต้องทำอาหารDemandRoleAttributeที่แยกทั้งสอง เมื่อผู้ใช้ไม่ได้รับการรับรองความถูกต้องก็จะส่งคืน HTTP 401 ส่งไปยังหน้าเข้าสู่ระบบ เมื่อผู้ใช้เข้าสู่ระบบ แต่ไม่ได้อยู่ในบทบาทที่ต้องการก็จะสร้างขึ้นNotAuthorizedResultแทน ปัจจุบันนี้เปลี่ยนเส้นทางไปยังหน้าข้อผิดพลาด แน่นอนฉันไม่ต้องทำเช่นนี้?

5
เหตุใดจึงมีโฟลว์ "รหัสการอนุญาต" ใน OAuth2 เมื่อโฟลว์ "โดยนัย" ทำงานได้ดี?
ด้วยโฟลว์ "นัย" ไคลเอนต์ (น่าจะเป็นเบราว์เซอร์) จะได้รับโทเค็นการเข้าถึงหลังจากเจ้าของทรัพยากร (เช่นผู้ใช้) ให้การเข้าถึง ด้วยโฟลว์ "รหัสการอนุญาต" ลูกค้า (โดยปกติจะเป็นเว็บเซิร์ฟเวอร์) จะได้รับรหัสการอนุญาตหลังจากเจ้าของทรัพยากร (เช่นผู้ใช้) ให้การเข้าถึงเท่านั้น ด้วยรหัสการอนุญาตนั้นไคลเอ็นต์จะทำการเรียกอีกครั้งไปยัง API ผ่าน client_id และ client_secret พร้อมกับรหัสการอนุญาตเพื่อรับโทเค็นการเข้าถึง ทั้งหมดที่อธิบายไว้ดีที่นี่ โฟลว์ทั้งสองมีผลลัพธ์เหมือนกันแน่นอน: โทเค็นการเข้าถึง อย่างไรก็ตามการไหล "โดยนัย" นั้นง่ายกว่ามาก คำถาม: ทำไมต้องรำคาญกับโฟลว์ "รหัสการอนุญาต" เมื่อการไหลของตะเข็บ "โดยนัย" ถึงจะใช้ได้ ทำไมไม่ใช้ "นัย" สำหรับเว็บเซิร์ฟเวอร์ด้วย มันทำงานได้มากขึ้นทั้งกับผู้ให้บริการและลูกค้า

13
ในการโค่นล้มฉันสามารถเป็นผู้ใช้อื่นนอกเหนือจากชื่อเข้าสู่ระบบของฉันได้อย่างไร
ฉันต้องการทราบวิธีSubversionเปลี่ยนชื่อที่การเปลี่ยนแปลงของฉันปรากฏ Subversionฉันเพิ่งเริ่มใช้ ปัจจุบันฉันใช้มันเป็นรหัสควบคุมเวอร์ชันบนแล็ปท็อป XP ที่ฉันลงชื่อเข้าใช้เสมอภายใต้ชื่อภรรยาของฉัน ฉันต้องการให้ฐานโค่นล้มแสดงการเปลี่ยนแปลงภายใต้ชื่อของฉัน ต่อมาฉันจะทำซ้ำฐานข้อมูลเพื่อให้เข้าถึงได้ทั้งบ้าน ภรรยาของฉันใช้คอมพิวเตอร์สำนักงานที่เธอลงชื่อเข้าใช้ด้วยชื่อของฉันเสมอ ฉันอาจจะตั้งค่าเพื่อตรวจสอบเอกสารที่แก้ไขโดยอัตโนมัติ ... ควรอยู่ภายใต้ชื่อของเธอ ในที่สุดฉันอาจจะใช้มันจากเครื่อง linux ภายใต้ชื่อผู้ใช้อื่น มีวิธีการแก้ไขสภาพแวดล้อมของผู้ใช้เพื่อเปลี่ยนชื่อผู้ใช้ที่การโค่นล้มเรียกคุณหรือไม่? ฉันคาดหวังบางสิ่งบางอย่างเช่นการตั้งค่าSVN_USERNAME='Mark'ที่จะแทนที่ แต่มักจะได้รับชื่อ อัปเดต:ดูเหมือนว่าการ--usernameตั้งค่าสถานะที่ Michael เรียกว่าทำงานเพื่อเปลี่ยนชื่อที่รายงานโดย"svn stat"แม้จะเป็นไฟล์ภายในเครื่อง: ที่เก็บข้อมูล นอกจากนี้มันเหนียวดังนั้นคุณไม่จำเป็นต้องระบุมันสำหรับคำสั่งถัดไป ฉันรีบูตเครื่องและยังคงใช้"--username"ค่าจากการบู๊ตครั้งก่อน

5
คุณเก็บเกลือของคุณที่ไหน
ฉันมักจะใช้สตริงเกลือต่อรายการที่เหมาะสมเมื่อ hashing รหัสผ่านสำหรับการจัดเก็บฐานข้อมูล สำหรับความต้องการของฉันการจัดเก็บเกลือในฐานข้อมูลถัดจากรหัสผ่านที่แฮชใช้งานได้ดีอยู่เสมอ อย่างไรก็ตามบางคนแนะนำว่าเกลือจะถูกเก็บแยกต่างหากจากฐานข้อมูล เหตุผลของพวกเขาคือถ้าฐานข้อมูลถูกโจมตีผู้โจมตียังสามารถสร้างตารางรุ้งโดยนำสายเกลือพิเศษมาพิจารณาเพื่อถอดรหัสหนึ่งบัญชีในเวลาเดียวกัน หากบัญชีนี้มีสิทธิ์ผู้ดูแลระบบเขาอาจไม่จำเป็นต้องถอดรหัสใครเลย จากมุมมองด้านความปลอดภัยมันคุ้มค่าหรือไม่ที่จะเก็บเกลือไว้ในที่อื่น? พิจารณาเว็บแอปพลิเคชันที่มีรหัสเซิร์ฟเวอร์และฐานข้อมูลบนเครื่องเดียวกัน หากมีการจัดเก็บเกลือในไฟล์แฟล็ตบนเครื่องนั้นโอกาสที่ถ้าฐานข้อมูลถูกทำลายไฟล์เกลือก็จะเป็นเช่นกัน มีวิธีแก้ไขปัญหาที่แนะนำสำหรับเรื่องนี้หรือไม่?

6
วิธีการตรวจสอบว่าผู้ใช้เข้าสู่ระบบ (วิธีการใช้งานอย่างถูกต้อง user.is_authenticated)?
ฉันกำลังดูเว็บไซต์นี้แต่ดูเหมือนจะไม่เข้าใจวิธีการทำเช่นนี้เพราะมันไม่ทำงาน ฉันต้องตรวจสอบว่าผู้ใช้ไซต์ปัจจุบันเข้าสู่ระบบ (รับรองความถูกต้อง) และพยายาม: request.user.is_authenticated แม้จะแน่ใจว่าผู้ใช้เข้าสู่ระบบแล้วก็กลับมาเพียง: > ฉันสามารถทำคำขออื่น ๆ (จากส่วนแรกใน URL ด้านบน) เช่น: request.user.is_active ซึ่งส่งกลับการตอบสนองที่ประสบความสำเร็จ

10
เพิ่ม Keypair ให้กับอินสแตนซ์ EC2 ที่มีอยู่
ฉันได้รับสิทธิ์เข้าถึง AWS Console สำหรับบัญชีที่มี 2 อินสแตนซ์ที่ทำงานซึ่งฉันไม่สามารถปิดได้ (ในการผลิต) อย่างไรก็ตามฉันต้องการได้รับการเข้าถึง SSH กับอินสแตนซ์เหล่านี้เป็นไปได้หรือไม่ที่จะสร้าง Keypair ใหม่และนำไปใช้กับอินสแตนซ์ดังนั้นฉันจึงสามารถ SSH ได้หรือไม่ การรับไฟล์ pis ที่มีอยู่สำหรับ keypair นั้นอินสแตนซ์ที่สร้างภายใต้ยังไม่ได้เป็นตัวเลือก หากเป็นไปไม่ได้มีวิธีอื่นที่ฉันสามารถเข้าไปในอินสแตนซ์ได้หรือไม่

6
ความปลอดภัยของโครงร่างการพิสูจน์ตัวตน REST
พื้นหลัง: ฉันออกแบบชุดรูปแบบการตรวจสอบสิทธิ์สำหรับเว็บเซอร์วิส REST สิ่งนี้ไม่จำเป็นต้อง "ปลอดภัย" จริง ๆ (เป็นโครงการส่วนตัวมากกว่า) แต่ฉันต้องการทำให้ปลอดภัยที่สุดเท่าที่จะเป็นได้จากการออกกำลังกาย / ประสบการณ์การเรียนรู้ ฉันไม่ต้องการใช้ SSL เนื่องจากฉันไม่ต้องการความยุ่งยากและค่าใช้จ่ายส่วนใหญ่ในการตั้งค่า คำถาม SO เหล่านี้มีประโยชน์อย่างยิ่งที่จะให้ฉันเริ่มต้น: รับรองความถูกต้องสงบ แนวทางปฏิบัติที่ดีที่สุดสำหรับการรักษาความปลอดภัย REST API / บริการบนเว็บ ตัวอย่าง SOAP / REST / RPC web API ที่ดีที่สุด? และทำไมคุณถึงชอบพวกเขา และมีอะไรผิดปกติกับพวกเขา? ฉันกำลังคิดที่จะใช้การรับรองความถูกต้องของAmazon S3แบบง่าย(ฉันชอบOAuthแต่ดูเหมือนซับซ้อนเกินไปสำหรับความต้องการของฉัน) ฉันกำลังเพิ่มnonce ที่สร้างแบบสุ่มซึ่งจัดหาโดยเซิร์ฟเวอร์ให้กับคำขอเพื่อป้องกันการโจมตีซ้ำ ในการรับคำถาม: ทั้ง S3 และ OAuth พึ่งพาการลงชื่อ URL คำขอพร้อมกับส่วนหัวที่เลือกไม่กี่รายการ ทั้งคู่ไม่ได้ลงนามในเนื้อความคำขอสำหรับคำขอ POST หรือ PUT …

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