Android 권한(Permission)의 종류
페이지 정보

본문
권한(Permission) 이란?
안드로이드의 여러 컴포넌트(Activity, Service 등)들이 각각 블록처럼 되어있고, 이것들을 조합해서 하나의 앱으로 구성됩니다.
그러므로 어떤 경우에는 외부(다른 앱)에서 자신의 앱을 이용하거나 자신의 앱의 일부(컴포넌트)를 이용할 수 있습니다.
Android에서는 설치 시간 권한, 런타임 권한, 특별 권한을 비롯하여 권한을 다양한 유형으로 분류합니다.
각 권한 유형은 시스템에서 앱에 권한을 부여할 때 앱에서 액세스할 수 있는 제한된 데이터 범위와 앱에서 실행할 수 있는 제한된 작업 범위를 나타냅니다.
protectionlevel 속성에 따라 권한을 구분한다.
권한은 다음과 같이 구분되며, 앱의 보안과도 직결되는 것이기에 반드시 알고 넘어가는 것이 좋다.
1. 일반 권한 ( Normal permissions )
protectionlevel = "normal"
낮은 수준의 보호로, 앱 사용자(User)에게 권한 부여 요청을 필요로 하지 않습니다.
해당 권한으로 사용되는 기능은 데이터 작업이나 사용자의 개인 정보에 거의 영향을 미치지 않습니다.
( 예 : android.permission.INTERNET ) 보통 설치 시간 권한이라 하여 앱을 설치할 때 자동으로 권한을 부여받습니다.
2. 서명 권한 ( Signature permissions )
protectionlevel = "signature"
이 권한은 두 앱이 동일한 키로 서명되었을 경우 사용이 가능합니다.
3. 런타임 권한 ( Runtime permissions )
protectionlevel = "dangerous"
높은 수준의 보호입니다.
해당 권한으로 부여받는 기능은 시스템이나 다른 앱에 미치는 영향이 좀 더 크고 사용자의 개인 정보에 접근할 수도 있습니다.
따라서 이 수준의 권한을 사용하고자 할 때, 권한을 부여받는 로직을 설정할 필요가 있습니다.
4. 특별 권한 ( Special permissions )
특별 권한은 특정 앱 작업에 관한 것입니다.
플랫폼과 OEM만이 특별 권한을 정의할 수 있습니다.
또한 플랫폼과 OEM은 일반적으로 다른 앱 위에 그리기와 같이 특히 강력한 작업에 대한 액세스를 보호하려고 할 때 특별 권한을 정의합니다.
시스템 설정의 특별 앱 액세스 페이지에는 사용자가 전환할 수 있는 작업 세트가 포함되어 있습니다.
이러한 작업의 대부분은 특별 권한으로 구현됩니다.
참고자료
https://full-stack.tistory.com/entry/Android-Permission-권한-1-시스템-권한-feat-Bluetooth
https://developer.android.com/guide/topics/permissions/overview?hl=ko
안드로이드의 여러 컴포넌트(Activity, Service 등)들이 각각 블록처럼 되어있고, 이것들을 조합해서 하나의 앱으로 구성됩니다.
그러므로 어떤 경우에는 외부(다른 앱)에서 자신의 앱을 이용하거나 자신의 앱의 일부(컴포넌트)를 이용할 수 있습니다.
Android에서는 설치 시간 권한, 런타임 권한, 특별 권한을 비롯하여 권한을 다양한 유형으로 분류합니다.
각 권한 유형은 시스템에서 앱에 권한을 부여할 때 앱에서 액세스할 수 있는 제한된 데이터 범위와 앱에서 실행할 수 있는 제한된 작업 범위를 나타냅니다.
protectionlevel 속성에 따라 권한을 구분한다.
권한은 다음과 같이 구분되며, 앱의 보안과도 직결되는 것이기에 반드시 알고 넘어가는 것이 좋다.
1. 일반 권한 ( Normal permissions )
protectionlevel = "normal"
낮은 수준의 보호로, 앱 사용자(User)에게 권한 부여 요청을 필요로 하지 않습니다.
해당 권한으로 사용되는 기능은 데이터 작업이나 사용자의 개인 정보에 거의 영향을 미치지 않습니다.
( 예 : android.permission.INTERNET ) 보통 설치 시간 권한이라 하여 앱을 설치할 때 자동으로 권한을 부여받습니다.
2. 서명 권한 ( Signature permissions )
protectionlevel = "signature"
이 권한은 두 앱이 동일한 키로 서명되었을 경우 사용이 가능합니다.
3. 런타임 권한 ( Runtime permissions )
protectionlevel = "dangerous"
높은 수준의 보호입니다.
해당 권한으로 부여받는 기능은 시스템이나 다른 앱에 미치는 영향이 좀 더 크고 사용자의 개인 정보에 접근할 수도 있습니다.
따라서 이 수준의 권한을 사용하고자 할 때, 권한을 부여받는 로직을 설정할 필요가 있습니다.
4. 특별 권한 ( Special permissions )
특별 권한은 특정 앱 작업에 관한 것입니다.
플랫폼과 OEM만이 특별 권한을 정의할 수 있습니다.
또한 플랫폼과 OEM은 일반적으로 다른 앱 위에 그리기와 같이 특히 강력한 작업에 대한 액세스를 보호하려고 할 때 특별 권한을 정의합니다.
시스템 설정의 특별 앱 액세스 페이지에는 사용자가 전환할 수 있는 작업 세트가 포함되어 있습니다.
이러한 작업의 대부분은 특별 권한으로 구현됩니다.
참고자료
https://full-stack.tistory.com/entry/Android-Permission-권한-1-시스템-권한-feat-Bluetooth
https://developer.android.com/guide/topics/permissions/overview?hl=ko
댓글목록
등록된 댓글이 없습니다.