[Android] Runtime Permission

불순분자들·2023년 11월 27일

Android

목록 보기
2/6

API 14 이상부터 안드로이드 Runtime Permission은 사용자가 직접 권한을 허락해야 특정 기능을 사용할 수 있도록 바뀌었다.

권한을 항상 취소할 수 있는 옵션을 제공하며 사용자는 권한을 거부할 수 있다.

3가지 Android Permission

Android Permission은 normal, signature, dangerous 3가지 단계로 컴포넌트를 보호한다.

  • 일반권한( Normal )

    • 낮은 수준의 보호 권한으로 App 설치 시 자동으로 권한을 부여받는다.
    • INTERNET
  • 서명권한( Signature )

    • Signature: 동일한 키로 서명된 App만 실행하도록 허용하는 권한.
    • 자동 완성 또는 VPN 서비스 등
    • 시스템은 Signature 보호 수준을 서명 권한에 할당한다.
  • 런타임 권한

    • 런타임 권한( Dangerous Permission ): 제한된 데이터에 추가로 액세스하거나 시스템과 다른 앱에 큰 영향을 미치는 작업들을 하기 위한 권한.
    • 시스템은 Dangerous 보호 수준을 런타임 권한에 할당한다.
    • 앱에서 런타임 권한을 요청하면 아래와 같은 메세지를 보여준다.
  • 논외: 특별 권한

    • 권한은 권한 그룹에 속할 수 있으며, 논리적으로 관련성 있는 권한의 집합으로 구성된다.
    • SMS 메세지를 주고받을 수 있는 권한은 어플리케이션의 SMS 상호작용과 관련이 있으므로 동일한 그룹에 속할 수 있다.
    • 권한 그룹을 사용하면 사용자에게 표시하는 시스템 대화 상자의 수를 최소화 할 수 있다.

Runtime 권한을 요구하는 주요 Permission

권한 부여의 권장사항

  • 제어: 사용자가 앱과 공유하는 데이터를 직접 제어
  • 투명성: 사용자가 앱이 사용하는 데이터와 엑세스하는 이유를 밝힘
  • 데이터 수집 최소화: 앱에서는 사용자가 호출하는 특정 작업에 필요한 데이터만 액세스하여 사용

권장 1: 최소 개수의 권한을 요청하라

  • 앱은 작업을 완료하는데 필요한 권한만 요청하고 권한 그룹에 대해 고민해야 한다.

권장 2: 런타임 권한을 특정 작업과 연결하라

  • 런타임 권한의 연결은 권한이 필요한 때에 요청해야 한다.
  • 음성 메세지를 보낼 때 음성 메세지 보내기 버튼을 누를 때 권한을 요청하라는 뜻이다.

권장 3: 앱의 종속 항목을 고려하라

  • 라이브러리를 사용하면 권한 요구사항도 상속된다.
  • 각 항목에 필요한 권한과 사용목적에 대해 알고 있어야 한다.

권장 4: 투명성을 확보하라

  • 사용자가 충분한 정보를 바탕으로 결정을 내릴 수 있도록 액세스하려는 이유, 거부될 경우를 명확히 해야 한다.

권장 5: 시스템 액세스를 명확하게 알려라

  • Android 에서는 아직 민감한 정보나 하드웨어에 접근할 때 표시기를 제공하지 않는다.
  • 따라서, 민감한 정보 또는 하드웨어( 카메라나 마이크 )에 액세스할 때 지속적으로 알려주어야 한다.
profile
장래희망 : 침대 위 녹아든 치즈

0개의 댓글