แอพสามารถทำอะไรได้บ้างด้วยการอนุญาต“ ใช้บัญชีบนอุปกรณ์”


28

แอพดังกล่าวสามารถอ่านอีเมล / ปฏิทิน / ข้อความ / เอกสาร / ฯลฯ ได้อย่างอิสระหรือไม่?

"การใช้บัญชีในอุปกรณ์" ได้รับอนุญาตนอกจากนี้ยังเป็นที่รู้จักกันสำหรับนักพัฒนาเป็นandroid.permission.USE_CREDENTIALS

ตัวอย่างของการปพลิเคชันดังกล่าวWhatsApp , MightyText


1
ผมพบว่าตัวอย่างของหุ่นยนต์ API ของสิ่งที่สามารถทำได้โดยใช้สิทธิ์นี้: การgoo.gl/gjkJB จากความเข้าใจของฉันเป็นนักพัฒนาที่นี้หมายถึงการเข้าถึงทุกอย่าง เมื่อผู้ใช้มีโทเค็นของบัญชีเขาสามารถเข้าถึงบริการใด ๆ บัญชีข้อเสนอ: กระแสของ Facebook, อีเมลของ Google - ทุกอย่าง
AlikElzin-kilaka

2
ฉันหมายจากมุมมองของผู้ใช้ ฉันคิดว่าผู้ใช้ไม่ได้ตระหนักถึงการล่วงละเมิดสิทธิ์ดังกล่าว
AlikElzin-kilaka

1
@ t0mm13b - การให้สิทธิ์เฉพาะ (OAuth) ในการอ่านข้อความนั้นมีลักษณะรบกวนน้อยกว่าการเข้าถึงบัญชี
AlikElzin-kilaka

8
ฉันคิดว่านี่เป็นคำถามที่สมเหตุสมผลสำหรับไซต์นี้ แน่นอนผมอยากจะรู้ว่าสิ่งที่แต่ละสิทธิ์ที่มีอยู่จริงๆให้เข้าถึง
เบียร์

คำตอบ:


35

Android มีระบบรวมศูนย์สำหรับการจัดการข้อมูลรับรองสำหรับบริการออนไลน์ (เช่นบัญชี Google ของคุณ) AccountManagerองค์ประกอบหนึ่งที่เรียกว่า แอพบางตัวสามารถ " ทำหน้าที่เป็นผู้ตรวจสอบสิทธิ์บัญชี " AccountManagerซึ่งหมายความว่าพวกเขาเข้าใจวิธีการในการเข้าสู่บริการออนไลน์โดยเฉพาะและสามารถเข้าสู่บริการที่สำหรับ แอพอื่น ๆ ต้องการใช้ข้อมูลการเข้าสู่ระบบนั้นเพื่อระบุตัวคุณหรือดำเนินการในนามของคุณโดยไม่ต้องป้อนรหัสผ่านทุกครั้ง

ตัวอย่าง: การลงชื่อเข้าใช้ Google

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

แอพ YouTube นี้พูดถึงAccountManagerและถามว่ามีข้อมูลประจำตัวสำหรับบัญชี Google หรือไม่ การถามคำถามนี้ต้องได้รับอนุญาต "ค้นหาบัญชีในอุปกรณ์" The AccountManagerมีรายการของตัวรับรองความถูกต้องที่ติดตั้งบนโทรศัพท์ซึ่งให้คำปรึกษาเพื่อตอบคำถามนี้ หากมีข้อมูลประจำตัวใด ๆ แอปจะถามสิ่งที่เรียกว่าauthtokenสำหรับบัญชี Google คำขอนี้ต้องได้รับอนุญาต" ใช้บัญชีบนอุปกรณ์ "

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

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

ตรวจสอบเพิ่มเติม

ตัวตรวจสอบความถูกต้องและบริการออนไลน์ยังสามารถควบคุมการกระทำที่แอปที่ร้องขอสามารถดำเนินการได้ ตัวอย่างเช่นเมื่อคุณเชื่อมต่อแอปกับบัญชี Google ของคุณ Google จะแสดงรายการการอนุญาตที่แอพต้องการ (เช่น "อัปโหลดวิดีโอ" สำหรับ YouTube) ดังนั้นแอปสามารถดำเนินการตามที่ระบุไว้เท่านั้น อย่างไรก็ตามบริการบางอย่างอาจไม่มีอะไรแบบนั้น สำหรับบริการดังกล่าวเมื่อคุณอนุญาตให้แอปใช้ข้อมูลรับรองของคุณจะสามารถดำเนินการใด ๆในชื่อของคุณ

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

สรุป

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


0

ฉันพบตัวอย่างนี้ใน Android APIว่าสามารถทำได้โดยใช้สิทธิ์นั้น

จากความเข้าใจของฉันในฐานะนักพัฒนานี่หมายถึงการเข้าถึงเกือบทุกอย่างที่ได้รับจากบัญชียกเว้นการเปลี่ยนรหัสผ่าน

เมื่อผู้ใช้มีบัญชีผู้ใช้ของโทเค็นเขาสามารถเข้าถึงบริการใด ๆ ข้อเสนอบัญชี: โพสต์บนผนัง Facebook ของคุณอ่าน Gmail ของคุณ - เกือบทุกอย่าง


ฉันไม่แน่ใจ 100% แต่ฉันคิดว่ามีหน้าจอ "เลือกบัญชี" ก่อนที่แอพจะสามารถเข้าถึงและใช้โทเค็นรับรองความถูกต้องได้ การอนุญาตเพียงอย่างเดียวไม่เพียงพอสำหรับการเข้าถึงบัญชีผู้ใช้
Flow

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

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

@pzkpfw: ฉันได้อัปเดตคำตอบเพื่อรวมโลก "เกือบ" เพราะสำหรับกรณีการใช้งานที่ประสงค์ร้ายหลายครั้งผู้โจมตีไม่ต้องการเปลี่ยนรหัสผ่าน แต่ใช้บัญชีในทางที่ผิดอย่างเงียบ ๆ
Dan Dascalescu

-1

แอปจะไม่เข้าถึงบัญชีบริการใด ๆ แอพบางตัวต้องการการอนุญาตนี้เนื่องจากพวกเขาจำเป็นต้องเปิดบัญชีใหม่จากแอพของพวกเขา

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