Що означає дозвіл "MANAGE_ACCOUNTS"?


18

Час від часу я прочитав, що MANAGE_ACCOUNTS потрібен дозвіл (насправді він називається "KONTEN HINZUFÜGEN ODER ENTFERNEN", оскільки у мене є німецький телефон. Я думаю, що поданий нижче текст є чимось на кшталт "Додавання або видалення акаунтів, створення облікових записів та встановлення паролів, використання акаунти на пристрої "англійською мовою).

Я задаю це питання, тому що хотів встановити GitHub-додаток .

Я думаю, що я знайшов дуже схоже питання, яке я хотів би включити сюди:

  1. Що це означає, що вони можуть створювати облікові записи?
  2. Чому Amazon (додаток Kindle) / GitHub це навіть потрібно?
  3. Чи є якісь ризики?

Також я знайшов пояснення Guardian, чому вони вимагають певних дозволів: guardian.co.uk/mobile/insideguardian/android-app-permissions Але я хотів би отримати більш детальну відповідь, особливо якщо мова йде про потенційні ризики .
Мартін Тома

Відповіді:


18

Якщо коротко, GitHub використовує внутрішній диспетчер системних облікових записів для зберігання ваших даних GitHub. Це працює точно так само, як додавання облікового запису Google або облікового запису Exchange. По суті, ви входите зі своїми обліковими записами, і вони зберігаються в Менеджері облікових записів, що не дозволяє вам знову вводити ці дані.

Це найкорисніше, коли облікові дані використовуються в декількох програмах, оскільки вам потрібно увійти лише один раз. Наприклад, Google Chrome отримає доступ до вашого акаунта через Менеджер облікових записів замість того, щоб змусити вас знову входити (жовте діалогове вікно, яке з’являється внизу, запитуючи, чи хочете ви ввійти зі своїм локальним обліковим записом на телефоні під час відвідування gmail або іншого Веб-сайт Google у веб-переглядачі Google Chrome на вашому телефоні).

Що це означає, що вони можуть створювати облікові записи?

Вони можуть створювати локальні акаунти на вашому телефоні для їх застосування (і лише їх програми). Ось приклад списку на моєму телефоні:

Знімок екрана
Знімок екрана (Клацніть зображення для збільшення варіанта)

Чому Amazon (додаток Kindle) / GitHub це навіть потрібно?

Це спрощує облікові дані в Android. Це рекомендований спосіб зробити це.

Чи є якісь ризики?

Не повинно бути. Якщо програма використовує AccountManager і скаже, що хоче використовувати ваш обліковий запис Google, тоді вам доведеться явно попросити вас дозволу, оскільки для використання цього облікового запису йому потрібен авторський маркер. Дивіться більше інформації про документацію SDK .


3
Якщо немає ніякого ризику, чому не кожному APP дозволено використовувати менеджер облікових записів за замовчуванням?
Мартін Тома

1
@Moose, це гарне питання. Як Android-розробник, я мав нульовий досвід використання AccountManager, але я вважаю, що правильна відповідь полягає в тому, що він технічно дозволяє вам спробувати отримати доступ до будь-якого з облікових записів, перелічених на вашому телефоні (хоча він все ще повинен просити дозволу, щоб дозволити доступ до цей рахунок на перше використання, наскільки я знаю)
Брайан Денні

1
Я просто переглянув документи API. В основному додаток перелічує наявні облікові записи, і він може фільтрувати їх за типом, наприклад, "усі облікові записи google". Якщо обліковий запис відсутній, він створить його. Для цих дій потрібні дозволи GET_ACCOUNTS та MANAGE_ACCOUNTS. Однак (!), Схоже, ніщо не обмежує програми використовувати жоден обліковий запис, який їм подобається, наприклад, видавати себе за обліковий запис google замість вашого github. Мабуть, додатки можуть навіть отримати пароль облікового запису, якщо він зберігався в диспетчері облікових записів. Якщо це правда, існує великий ризик для цих дозволів. Ви повинні повністю довіритися автору програми.
deepc

Почекайте секунду, @BryanDenny: Ви кажете, що ризиків не повинно бути. Але чи не дозволяє дозвіл на "додавання чи видалення облікових записів" такий додаток може, наприклад, видалити будь-який створений обліковий запис з пристрою? Що заважає встановити інший пароль для іншого облікового запису (спричиняючи, наприклад, "замок" для "занадто багато спроб" латерона)? Хоча я бачу вимоги, я пропускаю вказаний рівень захисту (наприклад, користувач повинен якось підтвердити такі зміни або мати можливість обмежити його певним обліковим записом / типом). Чи є таке? Я ніколи не помічав жодного пов’язаного "спливаючого вікна" тощо.
Izzy

8

Для управління обліковими записами Android використовує кілька дозволів; деякі з них легко зрозуміти. Дуже вдале пояснення щодо використання облікових записів можна знайти, наприклад, у відповіді Дена на запитання. Що може робити додаток із дозволом "ВИКОРИСТОВУВАТИ РАХУНКИ НА ПРИСТРІЙ"? . Дозвольте спробувати підсумувати дозволи, що стосуються, і що вони означають:

  • ACCOUNT_MANAGER : Цей дозвіл зарезервовано для системних програм. Менеджер облікових записів - це служба, яка працює за кадром і піклується про те, щоб усе працювало так, як очікувалося.
  • AUTHENTICATE_ACCOUNTS : Додаток, що використовує цей дозвіл, зазвичай надає інтерфейс для роботи з певним типом облікового запису (який не відомий попередньо встановленою системою Android), наприклад Dropbox. Після доставки Android не знає, як увійти в Dropbox і як поводитися з обліковим записом Dropbox - тому додаток Dropbox забезпечує механізм. Крім того, "автентифікатор облікового запису" може обмежувати дії, які додаток може виконувати з обліковим записом (таким чином, наприклад, можна було б керувати цим через якийсь веб-інтерфейс, запропонований службою).
  • GET_ACCOUNTS : Отримайте список доступних облікових записів. Таким чином, програма, яка хоче, наприклад, використовувати Dropbox для зберігання, може перевірити, чи є доступний обліковий запис. Він повинен перевірити це, перш ніж використовувати його.
  • MANAGE_ACCOUNTS : Документація API не є однозначною щодо цього дозволу. Але відповідно до відповіді Брайанса , додаток може видаляти / змінювати лише той акаунт, який він створив сам. Звичайно, він може створити будь-який новий обліковий запис і керувати цим.
  • USE_CREDENTIALS : Цей додаток може використовувати "облікові дані" для входу в обліковий запис. У більшості випадків "облікові дані" просто означають, що відповідний автентифікатор створює придатний маркер і руки, які надходять (хоча, як боротися з цим, залишається автентифікатору). При першому використанні облікового запису менеджер облікових записів повинен переконатися, що у користувача запитується, чи він це дозволяє. Знову відповідь Дана добре пояснює цю частину.

Я сподіваюся, що мені вдалося пролити трохи світла. Це щось мене і нервувало, тому мені знадобилося два дні, щоб заритися в це. Якщо у мене щось не так, будь ласка, вкажіть це в коментарях, щоб я міг це виправити.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.