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

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

18
วิธีปฏิบัติที่ดีที่สุดสำหรับการรักษาความปลอดภัย REST API / บริการบนเว็บ [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน2 ปีที่ผ่านมา เมื่อออกแบบ REST API หรือบริการจะมีแนวทางปฏิบัติที่ดีที่สุดสำหรับการจัดการด้านความปลอดภัย (การรับรองความถูกต้องการอนุญาตการจัดการข้อมูลผู้ใช้)? เมื่อสร้าง SOAP API คุณจะต้องมี WS-Security เป็นแนวทางและมีเอกสารมากมายในหัวข้อ ฉันพบข้อมูลน้อยลงเกี่ยวกับการรักษาจุดสิ้นสุด REST ในขณะที่ฉันเข้าใจว่า REST โดยเจตนาไม่มีข้อกำหนดเหมือนกับ WS- * ฉันหวังว่าวิธีปฏิบัติที่ดีที่สุดหรือรูปแบบที่แนะนำได้เกิดขึ้นแล้ว การอภิปรายหรือลิงค์ไปยังเอกสารที่เกี่ยวข้องจะได้รับการชื่นชมอย่างมาก หากเป็นเรื่องสำคัญเราจะใช้ WCF กับข้อความ POX / JSON ต่อเนื่องสำหรับ REST API ของเรา / บริการที่สร้างโดยใช้ v3.5 ของ. NET Framework

11
การรับรองความถูกต้องกับการอนุญาต
บริบทของเว็บแอปพลิเคชันแตกต่างกันอย่างไร ฉันเห็นตัวย่อ "รับรองความถูกต้อง" มาก มันหมายถึงการรับรองความถูกต้องหรือการรับรองความถูกต้องหรือไม่ หรือเป็นทั้งสองอย่าง?

10
OAuth 2 แตกต่างจาก OAuth 1 อย่างไร
ในแง่ง่ายมากมีคนอธิบายความแตกต่างระหว่าง OAuth 2 และ OAuth 1 ได้ไหม OAuth 1 ล้าสมัยแล้วหรือยัง เราควรใช้ OAuth 2 หรือไม่ ฉันไม่เห็นการใช้งาน OAuth 2 มากมาย ส่วนใหญ่ยังคงใช้ OAuth 1 อยู่ซึ่งทำให้ฉันสงสัยว่า OAuth 2 พร้อมใช้งานแล้ว ใช่ไหม?

11
คุณจะสร้าง AuthorizeAttribute แบบกำหนดเองใน ASP.NET Core ได้อย่างไร
ฉันกำลังพยายามสร้างแอตทริบิวต์การให้สิทธิ์ที่กำหนดเองใน ASP.NET Core bool AuthorizeCore(HttpContextBase httpContext)ในรุ่นก่อนหน้ามันเป็นไปได้ที่จะแทนที่ AuthorizeAttributeแต่ตอนนี้ไม่ได้อยู่ใน แนวทางปัจจุบันในการสร้าง AuthorizeAttribute แบบกำหนดเองคืออะไร สิ่งที่ฉันพยายามทำให้สำเร็จ: ฉันได้รับรหัสเซสชันในการให้สิทธิ์ส่วนหัว จาก ID นั้นฉันจะรู้ว่าการกระทำบางอย่างนั้นถูกต้องหรือไม่

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แทน ปัจจุบันนี้เปลี่ยนเส้นทางไปยังหน้าข้อผิดพลาด แน่นอนฉันไม่ต้องทำเช่นนี้?

4
วิธีการได้รับส่วนหัว http ในขวด?
ฉันเป็นมือใหม่กับงูใหญ่และใช้ Python Flask และสร้างบริการ REST API ฉันต้องการตรวจสอบส่วนหัวการอนุญาตที่ส่งให้ลูกค้า แต่ฉันไม่สามารถหาวิธีที่จะได้รับส่วนหัว HTTP ในขวด ความช่วยเหลือใด ๆ สำหรับการขออนุมัติ HTTP ส่วนหัวจะได้รับการชื่นชม

2
วิธีกำหนดการรับรองความถูกต้อง HTTP พื้นฐานโดยใช้ cURL อย่างถูกต้อง?
ฉันเรียนรู้ Apigility ( Apigility docu -> REST Service Tutorial ) และพยายามที่จะส่งคำขอ POST ด้วยการตรวจสอบเบื้องต้นผ่านทาง cURL: $ curl -X POST -i -H "Content-Type: application/hal+json" -H "Authorization: Basic YXBpdXNlcjphcGlwd2Q=" http://apigilityhw.sandbox.loc/status YXBpdXNlcjphcGlwd2Q=เป็นฐาน 64 apiuser:apipwdเข้ารหัสสตริงที่มีสิทธิของฉัน ข้อมูลรับรองจะถูกบันทึกไว้ใน/data/htpasswd( apiuser:$apr1$3J4cyqEw$WKga3rQMkxvnevMuBaekg/) ดูเหมือนว่านี้: HTTP/1.1 401 Unauthorized Server: nginx/1.4.7 Date: Mon, 22 Sep 2014 07:48:47 GMT Content-Type: application/problem+json Transfer-Encoding: chunked Connection: …

1
ผู้ให้บริการ JACC สามารถใช้สิ่งอำนวยความสะดวกการทำแผนที่หลักตามบทบาทของเซิร์ฟเวอร์ที่ใช้งานได้อย่างไร
ฉันกำลังเขียนJACCผู้ให้บริการ PolicyConfigurationไปตามทางที่นี้หมายถึงการดำเนินการ PolicyConfigurationเป็นผู้รับผิดชอบในการรับข้อมูลการกำหนดค่าจากเซิร์ฟเวอร์แอพลิเคชันเช่นสิทธิ์เกิดขึ้นที่มีบทบาทสำคัญ นี่คือเพื่อให้ในPolicyภายหลังสามารถตัดสินใจอนุญาตเมื่อมอบข้อมูลเกี่ยวกับผู้ใช้ปัจจุบันและสิ่งที่เขาพยายามทำ อย่างไรก็ตามมันไม่ได้เป็นส่วนหนึ่งของสัญญาPolicyConfigurationของ (atrocious) เพื่อรักษาการแมประหว่างบทบาทและสิทธิ์ของพวกเขาและPrincipalsที่ได้รับมอบหมายให้กับบทบาทเหล่านั้น โดยทั่วไป - แอปพลิเคชันเซิร์ฟเวอร์จะจับคู่การทำแผนที่นี้เสมอ ตัวอย่างเช่นใน Glassfish คุณส่งผลกระทบต่อการทำแผนที่นี้โดยการจัดหาสิ่งที่ชอบsun-web.xmlและsun-ejb-jar.xmlและอื่น ๆ ที่มีโมดูล Java EE ของคุณ (ไฟล์เฉพาะผู้จัดจำหน่ายเหล่านี้มีความรับผิดชอบในการพูดเช่นsuperusersเป็นกลุ่มที่จะได้รับการกำหนดบทบาทของแอปพลิเคชันของadmins) ฉันต้องการใช้ฟังก์ชันการทำงานที่ไฟล์เหล่านี้นำมาใช้ซ้ำและฉันต้องการทำเช่นนั้นเพื่อให้แอปพลิเคชันเซิร์ฟเวอร์มีความหลากหลายมากที่สุด นี่คือ - ทั้งหมดโดยพลการ - ของไอบีเอ็มใช้เวลาในเรื่องนี้ซึ่งปรากฏขึ้นเพื่อยืนยันความสงสัยของฉันว่าสิ่งที่ฉันต้องการจะทำคือไปไม่ได้เป็นหลัก (กระสุนเพิ่มเติมสำหรับกรณีของฉันที่สัญญา Java EE เฉพาะนี้ไม่คุ้มกับกระดาษที่พิมพ์บน) คำถามของฉัน:ฉันจะได้รับข้อมูลการทำแผนที่บทบาทหลักนี้ได้อย่างไร - สำหรับผู้เริ่มต้น - Glassfish และ JBoss จากภายในPolicyConfiguration? หากมีวิธีมาตรฐานในการทำที่ฉันไม่ทราบว่าฉันหูทั้งหมด

26
ไม่สามารถเชื่อมต่อ Nexus 4 กับ adb: ไม่ได้รับอนุญาต
ฉันมี Nexus 4 พร้อม Android 4.3 และฉันพยายามเชื่อมต่ออุปกรณ์กับคอมพิวเตอร์ด้วย Windows 7 64 บิต ฉันติดตั้งไดรเวอร์ล่าสุดและadbเวอร์ชั่นล่าสุดแล้ว ฉันคิดว่าฉันพยายามเกือบทุกอย่างและยังได้รับข้อความต่อไปนี้: C:\Program Files (x86)\Android\sdk\platform-tools>adb devices List of devices attached 007667324ccb229b unauthorized อะไรคือสาเหตุของข้อผิดพลาดนี้?

4
กำหนดเอง HTTP Authorization Header
ฉันสงสัยว่าสามารถใส่ข้อมูลที่กำหนดเองในส่วนหัวการอนุญาต HTTP ได้หรือไม่ เรากำลังออกแบบ RESTful API และเราอาจต้องการวิธีระบุวิธีการอนุญาตแบบกำหนดเอง ตัวอย่างเช่นเรียกว่าการFIRE-TOKENพิสูจน์ตัวตน สิ่งนี้จะถูกต้องและได้รับอนุญาตตามข้อกำหนด: Authorization: FIRE-TOKEN 0PN5J17HBGZHT7JJ3X82:frJIUN8DYpKDtOLCwo//yllqDzg= ส่วนแรกของสตริงที่สอง (ก่อน ':') คือคีย์ API ส่วนที่สองคือแฮชของสตริงข้อความค้นหา

4
ASP.NET MVC 4 กำหนดสิทธิ์แอตทริบิวต์ด้วยรหัสสิทธิ์ (ไม่มีบทบาท)
ฉันต้องการควบคุมการเข้าถึงมุมมองตามระดับสิทธิ์ของผู้ใช้ (ไม่มีบทบาทมีเพียงระดับสิทธิ์สำหรับระดับการทำงาน CRUD ที่กำหนดให้กับผู้ใช้) ในแอปพลิเคชัน MVC 4 ของฉัน ตัวอย่างเช่น; ด้านล่าง AuthorizeUser จะเป็นแอตทริบิวต์ที่กำหนดเองของฉันและฉันจำเป็นต้องใช้มันดังนี้: [AuthorizeUser(AccessLevels="Read Invoice, Update Invoice")] public ActionResult UpdateInvoice(int invoiceId) { // some code... return View(); } [AuthorizeUser(AccessLevels="Create Invoice")] public ActionResult CreateNewInvoice() { // some code... return View(); } [AuthorizeUser(AccessLevels="Delete Invoice")] public ActionResult DeleteInvoice(int invoiceId) { // some code... return …

3
การอนุญาตแบบกำหนดเองใน Asp.net WebApi - อะไรเป็นปัญหา?
ฉันกำลังอ่านจากแหล่งข้อมูลหลายแห่ง (หนังสือและคำตอบ SO) เกี่ยวกับการอนุญาตใน WebApi สมมติว่าฉันต้องการเพิ่มแอตทริบิวต์ที่กำหนดเองซึ่งอนุญาตให้เข้าถึงได้สำหรับผู้ใช้บางรายเท่านั้น: กรณีที่ # 1 ฉันเคยเห็นวิธีการ ลบล้าง OnAuthorizationนี้ซึ่งกำหนดการตอบสนองหากมีบางอย่างผิดปกติ public class AllowOnlyCertainUsers : AuthorizeAttribute { public override void OnAuthorization(HttpActionContext actionContext) { if ( /*check if user OK or not*/) { actionContext.Response = new HttpResponseMessage(HttpStatusCode.Unauthorized); } } } กรณีที่ # 2 แต่ฉันก็เคยเห็นตัวอย่างที่คล้ายกันนี้ซึ่งแทนที่ OnAuthorizationด้วย แต่ด้วยการโทรไปที่base: public override void OnAuthorization(HttpActionContext …

8
ASP.NET Web API: วิธีที่ถูกต้องในการส่งคืนการตอบกลับ 401 / ไม่ได้รับอนุญาต
ฉันมีเว็บไซต์ MVC ที่ใช้การตรวจสอบสิทธิ์ OAuth / โทเค็นเพื่อตรวจสอบสิทธิ์คำขอ ตัวควบคุมที่เกี่ยวข้องทั้งหมดมีคุณสมบัติที่ถูกต้องและการตรวจสอบความถูกต้องก็ใช้ได้ ปัญหาคือไม่ใช่ทุกคำขอที่สามารถได้รับอนุญาตในขอบเขตของแอตทริบิวต์ - การตรวจสอบการอนุญาตบางอย่างจะต้องดำเนินการในรหัสที่เรียกโดยวิธีการควบคุม - วิธีที่ถูกต้องในการส่งคืนการตอบกลับที่ไม่ได้รับอนุญาต 401 ในกรณีนี้คืออะไร? ฉันได้ลองthrow new HttpException(401, "Unauthorized access");แล้ว แต่เมื่อฉันทำสิ่งนี้รหัสสถานะการตอบกลับคือ 500 และฉันก็ได้รับสแต็กแทร็กด้วย แม้แต่ใน DelegatingHandler ในการบันทึกของเราเราจะเห็นว่าการตอบสนองคือ 500 ไม่ใช่ 401

5
ให้สิทธิ์แอตทริบิวต์ที่มีหลายบทบาท
ฉันต้องการเพิ่มการอนุญาตให้กับคอนโทรลเลอร์สำหรับหลาย ๆ บทบาทพร้อมกัน โดยปกติจะมีลักษณะดังนี้: [Authorize(Roles = "RoleA,RoleB,RoleC")] public async Task<ActionResult> Index() { } แต่ฉันได้จัดเก็บบทบาทของฉันไว้ใน consts เนื่องจากอาจมีการเปลี่ยนแปลงหรือถูกขยายออกไป public const RoleA = "RoleA"; public const RoleB = "RoleB"; public const RoleC = "RoleC"; ฉันไม่สามารถทำได้เนื่องจากต้องทราบสตริงในเวลาคอมไพล์: [Authorize(Roles = string.join(",",RoleA,RoleB,RoleC)] public async Task<ActionResult> Index() { } มีวิธีหลีกเลี่ยงปัญหาหรือไม่? ฉันสามารถเขียน const ซึ่งมีเพียง "RoleA, RoleB, RoleC" - แต่ฉันไม่ชอบสายเวทย์มนตร์และนี่คือสตริงเวทย์มนตร์ …

8
Python ร้องขอไลบรารีถึงวิธีการส่งผ่าน Authorization header ด้วยโทเค็นเดียว
ฉันมี URI คำขอและโทเค็น ถ้าฉันใช้: curl -s "<MY_URI>" -H "Authorization: TOK:<MY_TOKEN>" ฯลฯ ฉันได้รับ 200 และดูข้อมูล JSON ที่เกี่ยวข้อง ดังนั้นฉันจึงติดตั้งคำขอและเมื่อฉันพยายามเข้าถึงทรัพยากรนี้ฉันได้รับ 403 อาจเป็นเพราะฉันไม่รู้ไวยากรณ์ที่ถูกต้องในการส่งโทเค็นนั้น ใครสามารถช่วยฉันคิดออก นี่คือสิ่งที่ฉันมี: import sys,socket import requests r = requests.get('<MY_URI>','<MY_TOKEN>') r. status_code ฉันลองแล้ว: r = requests.get('<MY_URI>',auth=('<MY_TOKEN>')) r = requests.get('<MY_URI>',auth=('TOK','<MY_TOKEN>')) r = requests.get('<MY_URI>',headers=('Authorization: TOK:<MY_TOKEN>')) แต่ไม่มีงานเหล่านี้

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