“MANAGE_ACCOUNTS” izni ne anlama geliyor?


18

Arada bir MANAGE_ACCOUNTS izninin gerekli olduğunu okudum (Alman telefonum olduğu için buna aslında "KONTEN HINZUFÜGEN ODER ENTFERNEN" deniyor. Aşağıdaki metin "sanırım hesap ekle, kaldır, hesap oluştur ve şifreleri ayarla, kullan" cihazdaki hesaplar ".

Bu soruyu soruyorum çünkü GitHub-App'i kurmak istedim .

Sanırım buraya eklemek istediğim çok benzer bir soru buldum :

  1. Hesap oluşturabilecekleri ne anlama geliyor?
  2. Amazon (Kindle uygulaması) / GitHub'ın buna neden ihtiyacı var?
  3. Herhangi bir risk var mı?

Guardian'ın neden bazı izinler talep ettiklerine dair bir açıklama da buldum: guardian.co.uk/mobile/insideguardian/android-app-permissions Ama özellikle potansiyel riskler söz konusu olduğunda daha ayrıntılı bir cevap almak istiyorum .
Martin Thoma

Yanıtlar:


18

Kısacası GitHub, GitHub kimlik bilgilerinizi saklamak için dahili Hesap Sistemi yöneticisini kullanıyor. Bu, bir Google hesabı veya bir Exchange hesabı eklemekle aynı şekilde çalışır. Temel olarak, kimlik bilgilerinizle oturum açıyorsunuz ve bu hesaplar ileride tekrar girmenize engel olan Hesap Yöneticisi'nde saklanıyor.

Bu, yalnızca bir kez oturum açmanız gerektiğinden kimlik bilgileri birden fazla uygulamada kullanıldığında yararlıdır. Örneğin, Google Chrome hesabınızı tekrar giriş yapmaya zorlamak yerine Hesap Yöneticisi aracılığıyla erişir (gmail veya başka bir yeri ziyaret ederken telefonunuzda yerel olarak tutulan Hesabınızla oturum açmak isteyip istemediğinizi soran sarı iletişim kutusu açılır. Telefonunuzun Google Chrome tarayıcısındaki Google web sitesi).

Hesap oluşturabilecekleri ne anlama geliyor?

Uygulamaları (ve yalnızca uygulamaları) için telefonunuzda yerel hesaplar oluşturabilirler. İşte telefonumdaki bir listeye bir örnek:

Ekran görüntüsü
Ekran görüntüsü (Daha büyük varyant için resme tıklayın)

Amazon (Kindle uygulaması) / GitHub'ın buna neden ihtiyacı var?

Android'deki kimlik bilgilerini basitleştirir. Bunu yapmak için önerilen yöntemdir.

Herhangi bir risk var mı?

Olmamalı. Bir uygulama AccountManager kullanıyorsa ve Google hesabınızı kullanmak istiyorsa, söz konusu hesabı kullanmak için bir yetkilendirme jetonuna ihtiyaç duyduğu için sizden açıkça izin istemeniz gerekir. SDK belgeleri hakkında daha fazla bilgi edinin .


3
Risk olmadığında, her APP'nin varsayılan olarak hesap yöneticisini kullanmasına neden izin verilmiyor?
Martin Thoma

1
@Bu güzel bir soru. Bir Android geliştiricisi olarak, AccountManager'ı kullanırken sıfır deneyimim oldu, ancak doğru cevabın, teknik olarak telefonunuzda listelenen hesaplardan herhangi birine erişmeye çalışmanıza izin verdiğine inanıyorum (yine de erişime izin vermek için izin istemelidir) bildiğim kadarıyla ilk kullanımda bu hesap)
Bryan Denny

1
Ben sadece API belgelerine göz attım. Temel olarak bir uygulama mevcut hesapları numaralandırır ve bu hesapları türüne göre filtreleyebilir, örneğin "tüm google hesapları". Bir hesap eksikse, bir hesap oluşturulur. Bu işlemler için GET_ACCOUNTS ve MANAGE_ACCOUNTS izinleri gerekir. Ancak (!), Hiçbir şeyin uygulamaların istedikleri herhangi bir hesabı kullanmasını kısıtlaması gibi görünmemektedir; örneğin, github hesabınız yerine bir google hesabında kimliğe bürünmek. Görünüşe göre uygulamalar, hesap yöneticisinde depolanmışsa hesap şifresini bile alabilir. Bu doğruysa, bu izinler için büyük bir risk vardır. Uygulama yazarına tam olarak güvenmelisiniz.
deepc

Bir saniye, @BryanDenny: Risk olmaması gerektiğini söylüyorsun. Ama does not "eklemek veya kaldırma hesapların" Böyle bir uygulama, örneğin silebilir ima etmek izin herhangi bir cihazdan kurulan hesabı? Başka bir hesapta farklı bir şifre belirlemesini ne engeller (örneğin, "çok fazla deneme" lateronu için "kilit" e neden olur)? Gereksinimleri görürken, işaret edilen güvenlik katmanını özlüyorum (örneğin, kullanıcı bu tür değişiklikleri bir şekilde onaylamalı veya belirli bir hesap / türle sınırlayabilmelidir). Böyle bir şey var mı? Ben herhangi bir ilgili "popup" ya da benzeri fark etmedi.
Izzy

8

Hesapları yönetmek için Android birkaç izin kullanır; bazıları kolayca yanlış anlaşılabilir. Üzerinde çok iyi bir açıklama kullanarak hesaplar örneğin bulunabilir Dan cevap soru üzerine izni “KULLANIMI cihazdaki hesapları” ile bir uygulama ne yapabilirim? . İzinleri ve ne anlama geldiğini özetlemeye çalışalım:

  • ACCOUNT_MANAGER : Bu izin sistem uygulamaları için ayrılmıştır. Hesap yöneticisi, perde arkasında çalışan ve her şeyin beklendiği gibi çalışmasına özen gösteren hizmettir.
  • AUTHENTICATE_ACCOUNTS : Bu izni kullanan bir uygulama genellikle Dropbox gibi belirli bir hesap türüyle (önceden yüklenmiş Android sistemi tarafından bilinmeyen) ilgilenmek için bir arayüz sağlar. Gönderildiği gibi, Android Dropbox'a nasıl giriş yapılacağını ve bir Dropbox hesabıyla nasıl başa çıkılacağını bilmiyor - bu yüzden Dropbox uygulaması mekanizmayı sağlıyor. Ayrıca, bir "hesap kimlik doğrulayıcısı", bir uygulamanın hesapla gerçekleştirebileceği işlemleri kısıtlayabilir (bu nedenle, örneğin, hizmet tarafından sunulan bazı web arayüzleri aracılığıyla bunu yönetmek mümkün olabilir).
  • GET_ACCOUNTS : Kullanılabilir hesapların bir listesini edinin. Bu şekilde, örneğin Dropbox'ı depolama için kullanmak isteyen bir uygulama, uygun bir hesabın mevcut olup olmadığını kontrol edebilir. Kullanmadan önce bunu doğrulaması gerekir.
  • MANAGE_ACCOUNTS : API belgeleri bu izin hakkında net değil. Ancak Bryans'ın cevabına göre , bir uygulama yalnızca kendi oluşturduğu bir hesabı silebilir / değiştirebilir. Elbette yeni bir hesap oluşturabilir ve bunu yönetebilir.
  • USE_CREDENTIALS : Bu uygulama bir hesaba giriş yapmak için "kimlik bilgilerini" kullanabilir. Çoğu durumda, "kimlik bilgileri" sadece ilgili kimlik doğrulayıcının uygun bir belirteç oluşturduğu ve bununla nasıl başa çıkılacağı (kimlik doğrulayıcıya bırakılır) anlamına gelir. Bir hesabı ilk kez kullanırken, Hesap Yöneticisi kullanıcıya buna izin verip vermediğini sormalıdır. Yine Dan'ın cevabı bu kısmı iyi açıklıyor.

Umarım biraz ışık tutabilirim. Bu beni de sinirlendiren bir şeydi, bu yüzden onu kazmak iki gün sürdü. Eğer bir sorunum varsa, lütfen yorumlarda belirtin, böylece düzeltebilirim.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.