Uprawnienia aplikacji pomagają chronić prywatność użytkowników, ponieważ zabezpieczają dostęp do tych elementów:
- Dane ograniczone, takie jak stan systemu i dane kontaktowe użytkowników.
- Ograniczone działania, takie jak łączenie się ze sparowanym urządzeniem i nagrywanie dźwięku.
Na tej stronie znajdziesz omówienie działania uprawnień na Androidzie, w tym ogólny przepływ pracy związany z ich używaniem, opisy różnych typów uprawnień i sprawdzone metody korzystania z nich w aplikacji. Na innych stronach wyjaśniamy, jak ograniczyć liczbę próśb o uprawnienia, deklarować uprawnienia, prosić o uprawnienia w czasie działania i ograniczać interakcje innych aplikacji z komponentami aplikacji.
Pełną listę uprawnień aplikacji na Androida znajdziesz na stronie z dokumentacją interfejsu API uprawnień.
Przykładowe aplikacje, które pokazują proces związany z uprawnieniami, znajdziesz w repozytorium z przykładami uprawnień na Androida w GitHubie.
Procedura korzystania z uprawnień
Jeśli Twoja aplikacja oferuje funkcje, które mogą wymagać dostępu do danych objętych ograniczeniami lub działań objętych ograniczeniami, sprawdź, czy możesz uzyskać informacje lub wykonać działania bez konieczności deklarowania uprawnień. W aplikacji możesz realizować wiele przypadków użycia, takich jak robienie zdjęć, wstrzymywanie odtwarzania multimediów i wyświetlanie odpowiednich reklam, bez konieczności deklarowania jakichkolwiek uprawnień.
Jeśli zdecydujesz, że Twoja aplikacja musi mieć dostęp do danych objętych ograniczeniami lub wykonywać działania objęte ograniczeniami, aby realizować przypadek użycia, zadeklaruj odpowiednie uprawnienia. Niektóre uprawnienia, zwane uprawnieniami w momencie instalacji, są przyznawane automatycznie po zainstalowaniu aplikacji. Inne uprawnienia, zwane uprawnieniami w czasie działania, wymagają od aplikacji wykonania dodatkowego kroku i poproszenia o nie w czasie działania.
Rysunek 1 przedstawia przepływ pracy związany z używaniem uprawnień aplikacji:
Typy uprawnień
Android dzieli uprawnienia na różne typy, w tym uprawnienia przyznawane podczas instalacji, uprawnienia przyznawane w czasie działania i uprawnienia specjalne. Rodzaj każdego uprawnienia określa zakres danych objętych ograniczeniami, do których aplikacja może mieć dostęp, oraz zakres działań objętych ograniczeniami, które aplikacja może wykonywać, gdy system przyzna jej to uprawnienie. Poziom ochrony każdego uprawnienia zależy od jego typu i jest podany na stronie dokumentacji interfejsu Permissions API.
Uprawnienia w momencie instalacji
Uprawnienia przyznawane podczas instalacji zapewniają aplikacji ograniczony dostęp do danych objętych ograniczeniami lub pozwalają jej wykonywać działania objęte ograniczeniami, które w minimalnym stopniu wpływają na system lub inne aplikacje. Gdy zadeklarujesz w aplikacji uprawnienia przyznawane podczas instalacji, sklep z aplikacjami wyświetli użytkownikowi powiadomienie o tych uprawnieniach, gdy będzie on przeglądać stronę z informacjami o aplikacji (rysunek 2). System automatycznie przyznaje aplikacji uprawnienia, gdy użytkownik ją zainstaluje.
Android obejmuje kilka podtypów uprawnień przyznawanych podczas instalacji, w tym uprawnienia normalne i uprawnienia oparte na sygnaturze.
Normalne uprawnienia
Te uprawnienia umożliwiają dostęp do danych i działań, które wykraczają poza obszar piaskownicy aplikacji, ale stwarzają bardzo małe ryzyko dla prywatności użytkownika i działania innych aplikacji.
System przypisuje normalnym uprawnieniom poziom ochrony normal
.
Uprawnienia do podpisywania
System przyznaje aplikacji uprawnienie do podpisu tylko wtedy, gdy jest ona podpisana tym samym certyfikatem co aplikacja lub system operacyjny, który definiuje to uprawnienie.
Aplikacje, które implementują usługi uprzywilejowane, takie jak autouzupełnianie lub usługi VPN, również korzystają z uprawnień związanych z podpisem. Te aplikacje wymagają uprawnień do podpisu powiązania z usługą, aby tylko system mógł powiązać się z usługami.
System przypisuje uprawnieniom związanym z podpisem poziom ochrony signature
.
Uprawnienia czasu działania
Uprawnienia w czasie działania, zwane też uprawnieniami niebezpiecznymi, zapewniają aplikacji dodatkowy dostęp do danych objętych ograniczeniami lub umożliwiają jej wykonywanie działań objętych ograniczeniami, które mają większy wpływ na system i inne aplikacje. Dlatego przed uzyskaniem dostępu do danych objętych ograniczeniami lub wykonaniem działań objętych ograniczeniami musisz poprosić o uprawnienia w czasie działania aplikacji. Nie zakładaj, że te uprawnienia zostały wcześniej przyznane – sprawdź je i w razie potrzeby poproś o nie przed każdym dostępem.
Gdy aplikacja poprosi o uprawnienia w czasie działania, system wyświetli prośbę o przyznanie uprawnień w czasie działania, jak pokazano na rysunku 3.
Wiele uprawnień przyznawanych w czasie działania aplikacji umożliwia dostęp do prywatnych danych użytkownika, czyli specjalnego rodzaju danych objętych ograniczeniami, które mogą zawierać informacje potencjalnie poufne. Przykłady prywatnych danych użytkownika to informacje o lokalizacji i dane kontaktowe.
Mikrofon i aparat zapewniają dostęp do szczególnie wrażliwych informacji. Dlatego system pomaga wyjaśnić, dlaczego Twoja aplikacja uzyskuje dostęp do tych informacji.
System przypisuje uprawnieniom czasu działania poziom ochrony dangerous
.
Uprawnienia specjalne
Uprawnienia specjalne odpowiadają konkretnym działaniom aplikacji. Tylko platforma i producenci OEM mogą definiować uprawnienia specjalne. Platforma i producenci OEM zwykle definiują specjalne uprawnienia, gdy chcą chronić dostęp do szczególnie zaawansowanych działań, takich jak rysowanie na innych aplikacjach.
Strona Specjalny dostęp do aplikacji w ustawieniach systemu zawiera zestaw operacji, które użytkownik może włączać i wyłączać. Wiele z tych operacji jest realizowanych jako specjalne uprawnienia.
Dowiedz się więcej o tym, jak poprosić o specjalne uprawnienia.
System przypisuje uprawnieniom specjalnym appop
poziom ochrony.
Grupy uprawnień
Uprawnienia mogą należeć do grup uprawnień. Grupy uprawnień składają się z zestawu logicznie powiązanych uprawnień. Na przykład uprawnienia do wysyłania i odbierania SMS-ów mogą należeć do tej samej grupy, ponieważ oba są związane z interakcją aplikacji z SMS-ami.
Grupy uprawnień pomagają systemowi zminimalizować liczbę okien dialogowych systemu, które są wyświetlane użytkownikowi, gdy aplikacja prosi o przyznanie ściśle powiązanych uprawnień. Gdy użytkownikowi wyświetli się prośba o przyznanie uprawnień aplikacji, uprawnienia należące do tej samej grupy będą wyświetlane w tym samym interfejsie. Uprawnienia mogą jednak zmieniać grupy bez powiadomienia, więc nie zakładaj, że dane uprawnienie jest zgrupowane z innym uprawnieniem.
Sprawdzone metody
Uprawnienia aplikacji są oparte na funkcjach bezpieczeństwa systemu i pomagają Androidowi realizować te cele związane z prywatnością użytkowników:
- Kontrola: użytkownik ma kontrolę nad danymi, które udostępnia aplikacjom.
- Przejrzystość: użytkownik rozumie, jakich danych używa aplikacja i dlaczego uzyskuje do nich dostęp.
- Minimalizacja danych: aplikacja uzyskuje dostęp i wykorzystuje tylko dane wymagane do wykonania określonego zadania lub działania, które wywołuje użytkownik.
W tej sekcji znajdziesz zestaw podstawowych sprawdzonych metod dotyczących skutecznego korzystania z uprawnień w aplikacji. Więcej informacji o tym, jak pracować z uprawnieniami na Androidzie, znajdziesz na stronie Sprawdzone metody dotyczące uprawnień aplikacji.
Proś o minimalną liczbę uprawnień
Gdy użytkownik poprosi o wykonanie określonego działania w aplikacji, powinna ona poprosić tylko o uprawnienia, które są jej potrzebne do wykonania tego działania. W zależności od tego, jak korzystasz z uprawnień, może istnieć inny sposób na realizację funkcji aplikacji bez konieczności uzyskiwania dostępu do informacji poufnych.
Powiązywanie uprawnień w czasie działania z określonymi działaniami
Proś o uprawnienia jak najpóźniej w procesie korzystania z aplikacji. Jeśli na przykład Twoja aplikacja umożliwia użytkownikom wysyłanie wiadomości głosowych do innych osób, poczekaj, aż użytkownik przejdzie do ekranu wiadomości i kliknie przycisk Wyślij wiadomość głosową. Gdy użytkownik naciśnie przycisk, aplikacja może poprosić o dostęp do mikrofonu.
Weź pod uwagę zależności aplikacji
Gdy uwzględnisz bibliotekę, odziedziczysz też jej wymagania dotyczące uprawnień. Sprawdź, jakich uprawnień wymaga każda zależność i do czego są one używane.
Postaw na szczerość
Gdy wysyłasz prośbę o uprawnienia, jasno informuj, do czego chcesz uzyskać dostęp, dlaczego i jakie funkcje będą niedostępne, jeśli użytkownik odmówi przyznania uprawnień. Dzięki temu użytkownicy będą mogli podejmować świadome decyzje.
Udostępnianie dostępu do systemu
Gdy uzyskujesz dostęp do danych wrażliwych lub sprzętu, takiego jak aparat czy mikrofon, zapewnij ciągłe wskazanie w aplikacji, jeśli system nie zapewnia już tych wskaźników. To przypomnienie pomaga użytkownikom zrozumieć, kiedy dokładnie Twoja aplikacja uzyskuje dostęp do danych objętych ograniczeniami lub wykonuje działania objęte ograniczeniami.
Uprawnienia w komponentach systemu
Uprawnienia nie służą tylko do proszenia o dostęp do funkcji systemowych. Komponenty systemowe aplikacji mogą ograniczać, które inne aplikacje mogą wchodzić z nią w interakcje. Więcej informacji znajdziesz na stronie o tym, jak ograniczać interakcje z innymi aplikacjami.