การอนุญาต“ MANAGE_ACCOUNTS” หมายถึงอะไร


18

ฉันอ่านMANAGE_ACCOUNTS นาน ๆ ครั้งจำเป็นต้องได้รับอนุญาต (จริง ๆ แล้วเรียกว่า "KONTEN HINZUFÜGEN ODER ENTFERNEN" เนื่องจากฉันมีโทรศัพท์เยอรมันฉันเดาว่าข้อความด้านล่างนี้เป็น "เพิ่มหรือลบบัญชีสร้างบัญชีและตั้งรหัสผ่านใช้งาน บัญชีในอุปกรณ์ "เป็นภาษาอังกฤษ)

ฉันถามคำถามนี้เพราะผมอยากที่จะติดตั้งGitHub-App

ฉันคิดว่าฉันพบคำถามที่คล้ายกันมากซึ่งฉันต้องการรวมไว้ที่นี่:

  1. หมายความว่าพวกเขาสามารถสร้างบัญชีได้
  2. ทำไม Amazon (Kindle app) / GitHub ถึงต้องการสิ่งนี้?
  3. มีความเสี่ยงหรือไม่?

ฉันได้พบคำอธิบายโดยผู้ปกครองว่าทำไมพวกเขาถึงขออนุญาตบางอย่าง: guardian.co.uk/mobile/insideguardian/android-app-permissionsแต่ฉันต้องการคำตอบที่ละเอียดยิ่งขึ้นโดยเฉพาะเมื่อมันมีความเสี่ยง .
Martin Thoma

คำตอบ:


18

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

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

หมายความว่าพวกเขาสามารถสร้างบัญชีได้

พวกเขาสามารถสร้างบัญชีท้องถิ่นบนโทรศัพท์ของคุณสำหรับแอปพลิเคชันของพวกเขา (และเฉพาะแอปพลิเคชันของพวกเขา) นี่คือตัวอย่างของรายการในโทรศัพท์ของฉัน:

ภาพหน้าจอ
สกรีนช็อต (คลิกที่ภาพเพื่อดูตัวแปรขนาดใหญ่)

ทำไม Amazon (Kindle app) / GitHub ถึงต้องการสิ่งนี้?

มันลดความซับซ้อนของข้อมูลประจำตัวใน Android เป็นวิธีที่แนะนำให้ทำ

มีความเสี่ยงหรือไม่?

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


3
เมื่อไม่มีความเสี่ยงทำไมแอปทุกตัวไม่อนุญาตให้ใช้ตัวจัดการบัญชีโดยค่าเริ่มต้น
Martin Thoma

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

1
ฉันเพิ่งเรียกดูเอกสาร API โดยพื้นฐานแล้วแอปจะระบุบัญชีที่มีอยู่และอาจกรองตามประเภทเช่น "บัญชี Google ทั้งหมด" หากบัญชีหายไปมันจะสร้างขึ้นใหม่ การกระทำเหล่านี้ต้องการสิทธิ์ GET_ACCOUNTS และ MANAGE_ACCOUNTS อย่างไรก็ตาม (!) ดูเหมือนว่าจะไม่มีการ จำกัด แอปจากการใช้บัญชีใด ๆ ที่พวกเขาต้องการเช่นการแอบอ้างเป็นคุณในบัญชี Google แทนที่จะเป็นบัญชี GitHub ของคุณ เห็นได้ชัดว่าแอพสามารถรับรหัสผ่านของบัญชีได้หากเก็บไว้ในเครื่องมือจัดการบัญชี หากเป็นจริงจะมีความเสี่ยงใหญ่สำหรับสิทธิ์เหล่านั้น คุณต้องเชื่อใจผู้เขียนแอพอย่างเต็มที่
deepc

รอสักครู่ @BryanDenny: คุณบอกว่าไม่มีความเสี่ยง แต่การอนุญาตไม่ให้ "เพิ่มหรือลบบัญชี" หมายความว่าแอพดังกล่าวสามารถลบบัญชีใด ๆ ที่สร้างขึ้นจากอุปกรณ์ได้หรือไม่ อะไรป้องกันไม่ให้มันตั้งรหัสผ่านที่แตกต่างกันในบัญชีอื่น ๆ (ทำให้เช่น "ล็อค" สำหรับ "พยายามมากเกินไป" ในภายหลัง) ในขณะที่ฉันเห็นข้อกำหนดฉันพลาดเลเยอร์ความปลอดภัยที่ชี้ (เช่นผู้ใช้ต้องยืนยันการเปลี่ยนแปลงดังกล่าวอย่างใดหรือสามารถ จำกัด ให้บัญชี / ประเภทที่กำหนด) มีอะไรแบบนี้เหรอ? ฉันไม่เคยสังเกตเห็น "ป๊อปอัป" ที่เกี่ยวข้องหรือสิ่งที่คล้ายกัน
Izzy

8

ในการจัดการบัญชี Android ใช้การอนุญาตหลายอย่าง บางคนเข้าใจผิดได้ง่าย คำอธิบายที่ดีมากเกี่ยวกับการใช้บัญชีสามารถพบได้ในคำตอบของ Danเกี่ยวกับคำถามแอพทำอะไรได้บ้างกับการอนุญาต“ ใช้บัญชีกับอุปกรณ์” . ให้ฉันลองสรุปสิทธิ์ที่เกี่ยวข้องและสิ่งที่พวกเขาหมายถึง:

  • ACCOUNT_MANAGER : สิทธิ์นี้สงวนไว้สำหรับแอประบบ ผู้จัดการบัญชีคือบริการที่ทำงานเบื้องหลังและดูแลทุกอย่างให้ได้ผลตามที่คาดหวัง
  • AUTHENTICATE_ACCOUNTS : แอปที่ใช้การอนุญาตนี้มักจะมีอินเทอร์เฟซสำหรับจัดการกับบัญชีบางประเภท (ซึ่งระบบ Android ที่ติดตั้งไม่รู้จัก) เช่น Dropbox ตามที่จัดส่งแล้ว Android ไม่ทราบวิธีลงชื่อเข้าใช้ Dropbox และวิธีจัดการกับบัญชี Dropbox ดังนั้นแอป Dropbox จึงมีกลไก นอกจากนี้ "ตัวตรวจสอบบัญชี" อาจ จำกัด การกระทำที่แอปสามารถทำงานกับบัญชีได้ (ดังนั้นจึงเป็นไปได้ที่จะจัดการสิ่งนี้ผ่านทางเว็บอินเตอร์เฟสที่ให้บริการ)
  • GET_ACCOUNTS : รับรายการบัญชีที่มีอยู่ วิธีนี้แอพที่ต้องการเช่นใช้ Dropbox สำหรับพื้นที่เก็บข้อมูลสามารถตรวจสอบว่าบัญชีเหมาะสมหรือไม่ จะต้องตรวจสอบสิ่งนี้ก่อนที่จะใช้
  • MANAGE_ACCOUNTS : เอกสาร API ไม่ชัดเจนเกี่ยวกับการอนุญาตนี้ แต่ตามคำตอบของ Bryansแอปสามารถลบ / แก้ไขบัญชีที่สร้างขึ้นเองเท่านั้น แน่นอนว่ามันสามารถสร้างบัญชีใหม่และจัดการมันได้
  • USE_CREDENTIALS : แอพนี้อาจใช้ "ข้อมูลรับรอง" เพื่อลงชื่อเข้าใช้บัญชี ในกรณีส่วนใหญ่ "ข้อมูลรับรอง" หมายถึงตัวรับรองความถูกต้องที่สอดคล้องกันสร้างโทเค็นที่เหมาะสมและส่งมอบสิ่งที่เหนือกว่า (แม้ว่าจะมีวิธีจัดการกับสิ่งนั้นได้อย่างไร เมื่อใช้บัญชีเป็นครั้งแรกผู้จัดการบัญชีควรตรวจสอบให้แน่ใจว่าผู้ใช้ถูกถามว่าเขาอนุญาตหรือไม่ อีกครั้งคำตอบของแดนอธิบายส่วนนี้ได้ดี

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

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