개발자 가이드

Android의 엔터프라이즈 기능은 기기, 애플리케이션, 관리가 결합된 안전하고 유연하며 통합된 Android 모바일 플랫폼을 제공합니다. Android 앱은 기본적으로 Android의 엔터프라이즈 기능과 호환됩니다. 그러나 관리 Android 기기에서 앱이 최적으로 작동하도록 하는 데 사용할 수 있는 추가 기능이 있습니다.

  • 직장 프로필 호환성—Android 앱이 관리 기기에서 가장 잘 작동하도록 수정합니다.
  • 관리 구성 - IT 관리자가 앱의 맞춤 설정을 지정할 수 있도록 앱을 수정합니다.
  • 전용 기기—Android 기기에 키오스크로 배포할 수 있도록 앱을 최적화합니다.
  • 싱글 사인온 (SSO)—관리 Android 기기에서 여러 앱에 로그인하는 사용자의 로그인 프로세스를 간소화합니다.

기본 요건

  1. Android 앱을 만들었습니다.
  2. 조직에 가장 잘 작동하도록 앱을 수정할 준비가 되었습니다.
  3. 최소 버전: Android 5.0 Lollipop 권장 버전: Android 6.0 Marshmallow 이상

참고: Android의 엔터프라이즈 기능은 대부분의 Android 5.0 기기에 내장되어 있습니다. 하지만 Android 6.0 이상에서는 특히 전용 기기와 관련하여 추가 기능을 제공합니다.

직장 프로필

직장 프로필을 통해 사용자의 비즈니스 데이터와 애플리케이션을 관리할 수 있습니다. 직장 프로필은 Android 기기의 기본 사용자 계정과 연결된 관리 회사 프로필입니다. 직장 프로필을 사용하면 직장 앱 및 데이터를 개인 앱 및 데이터로부터 안전하게 격리할 수 있습니다. 이 직장 프로필은 사용자가 제어하는 개인 프로필과 별도의 컨테이너에 있습니다. 조직에서 이러한 별도의 프로필을 사용하면 중요한 비즈니스 데이터는 관리하면서 사용자 기기에 있는 나머지 데이터는 사용자가 제어할 수 있습니다. 권장사항에 관한 자세한 내용은 직장 프로필 가이드를 참고하세요. 이러한 권장사항의 개요는 아래를 참고하세요.

직장 프로필의 주요 기능

  • 별도의 안전한 프로필
  • 애플리케이션 배포를 위한 관리 Google Play
  • 배지가 있는 별도의 직장 애플리케이션
  • 관리자가 제어하는 프로필 전용 관리 기능

Android 5.0 이상에서 직장 프로필의 이점

  • 전체 기기 암호화
  • 기기에 개인 프로필과 직장 프로필이 있는 경우 두 프로필용 Android 애플리케이션 패키지 (APK) 1개
  • 기기 정책 컨트롤러 (DPC)는 직장 프로필로 제한됩니다.
  • DevicePolicyManager 클래스를 통한 기기 관리

직장 프로필 고려사항

프로필 간 인텐트 실패 방지

어떤 인텐트가 프로필 간에 교차될 수 있고 어떤 인텐트가 차단되는지 알기 어렵습니다. 확실히 알 수 있는 유일한 방법은 테스트를 통해 확인하는 것입니다. 앱에서 활동을 시작하기 전에 Intent.resolveActivity()를 호출하여 요청이 해결되었는지 확인해야 합니다.

  • null가 반환되면 요청이 해결되지 않습니다.
  • 무언가를 반환하면 인텐트가 해결되었음을 나타내며 안전하게 인텐트를 전송할 수 있습니다.

참고: 자세한 테스트 안내는 실패한 인텐트 방지를 참고하세요.

프로필 간 파일 공유

일부 개발자는 URI를 사용하여 Android에서 파일 경로를 표시합니다. 그러나 직장 프로필이 있는 경우 별도의 파일 시스템이 있으므로 다음을 수행하는 것이 좋습니다.

사용:
콘텐츠 URI
  • 콘텐츠 URI에는 특정 파일의 권한, 경로 및 ID가 포함됩니다. FileProvider 서브클래스를 사용하여 이를 생성할 수 있습니다. 자세히 알아보기
  • 인텐트를 사용하여 콘텐츠 URI에 액세스할 수 있는 권한을 공유하고 부여합니다. 권한은 인텐트를 사용하여 프로필 경계를 넘어서만 전달할 수 있습니다. Context.grantUriPermission()를 사용하여 다른 앱에 파일 액세스 권한을 부여하면 같은 프로필의 앱에만 부여됩니다.
사용 금지:
파일 URI
  • 기기 저장소에 있는 파일의 절대 경로를 포함합니다.
  • 한 프로필에서 유효한 파일 경로 URI는 다른 프로필에서 유효하지 않습니다.
  • 파일 URI를 인텐트에 연결하면 핸들러는 다른 프로필의 파일에 액세스할 수 없습니다.

다음 단계: 앱에서 관리 프로필을 지원하면 직장 프로필에서 테스트합니다. 앱 테스트를 참고하세요.

관리 구성 구현

관리 구성은 IT 관리자가 사용자의 휴대기기를 특정 방식으로 관리하는 데 사용할 수 있는 일련의 지침입니다. 이 안내는 보편적으로 적용되며 모든 EMM에 적용할 수 있습니다. 따라서 관리자가 사용자 휴대전화의 애플리케이션을 원격으로 구성할 수 있습니다.

기업 또는 정부용 앱을 개발한다면 업계의 특정 요구사항을 충족해야 할 수도 있습니다. IT 관리자는 관리 구성을 사용하여 원격으로 설정을 지정하고 사용자의 Android 앱에 대한 정책을 시행할 수 있습니다. 예를 들면 다음과 같습니다.

  • 앱이 셀룰러/3G를 통해 데이터를 동기화할 수 있는지 또는 Wi-Fi를 통해서만 동기화할 수 있는지 설정
  • 웹브라우저에서 URL 허용 또는 차단하기
  • 앱의 이메일 설정 구성
  • 인쇄 사용 또는 사용 중지
  • 북마크 관리

관리 구성 구현을 위한 권장사항

관리 구성 설정 가이드는 관리 구성을 빌드하고 배포하는 방법에 대한 정보를 얻을 수 있는 핵심 소스입니다. 이 문서를 검토한 후 추가 안내는 아래 권장사항을 참조하세요.

앱을 처음 실행할 때

애플리케이션을 실행하는 즉시 onStart() 또는 onResume()에서 이 앱에 관리 구성이 이미 설정되어 있는지 확인할 수 있습니다. 또한 애플리케이션이 관리형인지 비관리형인지 확인할 수 있습니다. 예를 들어 getApplicationRestrictions()가 다음을 반환하는 경우

  • 애플리케이션별 제한 집합 - 사용자 입력 없이 관리 구성을 자동으로 구성할 수 있습니다.
  • 빈 번들 - 애플리케이션이 관리되지 않는 것처럼 작동합니다 (예: 개인 프로필에서 앱이 작동하는 방식).
  • KEY_RESTRICTIONS_PENDING가 true로 설정된 단일 키-값 쌍이 포함된 번들: 애플리케이션이 관리되고 있지만 DPC가 올바르게 구성되지 않았습니다. 앱에서 이 사용자를 차단하고 IT 관리자에게 안내해야 합니다.

관리 구성 변경사항 수신 대기

IT 관리자는 언제든지 관리 구성 및 사용자에게 적용할 정책을 변경할 수 있습니다. 따라서 앱이 다음과 같이 관리 구성에 관한 새로운 제한을 허용할 수 있는지 확인하는 것이 좋습니다.

  • 실행 시 가져오기 제한 - 앱이 onStart()onResume()에서 getApplicationRestrictions()를 호출하고 이전 제한과 비교하여 변경이 필요한지 확인해야 합니다.
  • 실행 중에 수신 대기: 새 제한사항을 확인한 후 실행 중인 활동 또는 서비스에 ACTION_APPLICATION_RESTRICTIONS_CHANGED를 동적으로 등록합니다. 이 인텐트는 동적으로 등록된 리스너에만 전송되며 앱 매니페스트에 선언된 리스너에는 전송되지 않습니다.
  • 실행하지 않는 동안 등록 취소 - onPause()에서 ACTION_APPLICATION_RESTRICTIONS_CHANGED 브로드캐스트의 등록을 취소해야 합니다.

전용 기기

전용 기기는 디지털 사이니지 디스플레이, 티켓 인쇄 키오스크 또는 결제 등록기와 같이 단일 목적으로 사용되는 키오스크 기기입니다.

Android 기기가 전용 기기로 구성된 경우 사용자는 앱을 이스케이프하기 위한 홈 또는 최근 앱 버튼 없이 화면에 잠긴 애플리케이션을 볼 수 있습니다. 또한 라이브러리 카탈로그용 앱이 있는 라이브러리 키오스크 및 웹브라우저와 같은 일련의 애플리케이션을 표시하도록 전용 기기를 구성할 수도 있습니다.

자세한 내용은 전용 기기를 참고하세요.

Chrome 맞춤 탭으로 싱글 사인온(SSO) 설정하기

기업 사용자의 경우 기기에 여러 개의 앱이 있는 경우가 많으며 모든 직장 애플리케이션에 액세스하기 위해 한 번에 로그인하는 것을 선호합니다. 일반적으로 사용자는 WebView를 통해 로그인합니다. 하지만 이 방법이 바람직하지 않은 데는 몇 가지 이유가 있습니다.

  1. 사용자는 동일한 사용자 인증 정보로 여러 번 로그인해야 하는 경우가 많습니다. WebView 솔루션은 진정한 싱글 사인온 (SSO) 환경이 아닌 경우가 많습니다.
  2. 쿠키를 검사하는 악성 애플리케이션에서 사용자 인증 정보에 액세스하기 위해 JavaScript®를 삽입하는 등 보안 위험이 발생할 수 있습니다. 신뢰할 수 있는 개발자도 악성일 가능성이 있는 서드 파티 SDK를 사용하면 위험에 노출될 수 있습니다.

이 두 가지 문제를 해결하는 방법은 WebView 대신 브라우저 맞춤 탭을 사용하여 사용자를 인증하는 것입니다. 이렇게 하면 인증이 다음과 같이 보장됩니다.

  • 호스트 앱이 콘텐츠를 검사할 수 없는 보안 컨텍스트 (시스템 브라우저)에서 발생합니다.
  • 쿠키 상태가 공유되어 사용자가 한 번만 로그인하면 됩니다.

요구사항

맞춤 탭은 API 수준 15 (Android 4.0.3)까지 지원됩니다. 맞춤 탭을 사용하려면 Chrome과 같이 지원되는 브라우저가 필요합니다. Chrome 45 이상에서는 이 기능을 Chrome 맞춤 탭으로 구현합니다.

맞춤 탭으로 SSO를 구현하려면 어떻게 해야 하나요?

Google은 맞춤 탭을 사용하는 OAuth 클라이언트 라이브러리를 오픈소스로 제공하여 OpenID Foundation의 OpenID Connect 실무 그룹에 기여하고 있습니다. AppAuth 라이브러리를 사용하여 SSO에 커스텀 탭을 설정하려면 GitHub의 문서 및 샘플 코드를 참조하세요.

앱 테스트

앱을 개발한 후에는 직장 프로필과 완전 관리형 기기에서 모두 앱을 테스트하는 것이 좋습니다. 다음 안내를 참조하세요.

Test DPC를 사용하여 Android 앱 테스트

Google은 Android 개발자가 기업 환경에서 앱을 테스트할 수 있도록 Test DPC 앱을 제공합니다. Test DPC를 사용하면 조직에서 EMM을 사용하여 기기를 관리하는 것처럼 기기에 EMM 정책 또는 관리 구성 값을 설정할 수 있습니다. 기기에 Test DPC를 설치하려면 다음 방법 중 하나를 선택합니다.

  • GooglePlay에서 Test DPC를 설치합니다.
  • GitHub의 소스에서 빌드합니다.

Test DPC를 구성하는 방법에 대한 자세한 내용은 아래의 안내 및 Test DPC 사용자 가이드를 참조하세요.

직장 프로필 프로비저닝

직장 프로필에서 앱을 테스트하려면 먼저 다음과 같이 Test DPC 앱을 사용하여 기기에서 직장 프로필을 프로비저닝해야 합니다.

  1. 기기에 Test DPC를 설치합니다.
  2. Android 런처에서 테스트 DPC 설정 앱 아이콘을 탭합니다.
  3. 화면의 안내를 따릅니다.
  4. 기기에 앱을 설치하고 직장 프로필에서 앱이 어떻게 실행되는지 테스트합니다.

Android가 직장 프로필을 생성하고 직장 프로필에 Test DPC 사본을 설치합니다. 작업 배지가 있는 Test DPC 인스턴스를 사용하여 직장 프로필에서 정책 및 관리 구성을 설정합니다. 개발용 직장 프로필을 설정하는 방법을 자세히 알아보려면 개발자 가이드 직장 프로필을 참고하세요.

완전 관리형 기기 프로비저닝

조직에서는 완전 관리형 기기를 사용하는 이유는 기기에 모든 관리 정책을 시행할 수 있기 때문입니다. 완전 관리형 기기를 프로비저닝하려면 다음 단계를 따르세요.

  1. 기기에 Test DPC를 설치합니다.
  2. 기기에 다른 사용자나 직장 프로필이 없는지 확인합니다.
  3. 기기에 계정이 없는지 확인합니다.
  4. 터미널에서 다음 Android 디버그 브리지 (adb) 명령어를 실행합니다.
    adb shell dpm set-device-owner com.afwsamples.testdpc/.DeviceAdminReceiver
  5. 기기 소유자의 프로비저닝을 완료하면 해당 기기에서 앱을 테스트할 수 있습니다. 개발자는 기기에서 관리 구성인텐트가 어떻게 작동하는지 구체적으로 테스트해야 합니다.

다른 프로비저닝 방법을 사용할 수도 있습니다. Test DPC 사용자 가이드를 참조하세요. IT 관리자가 일반적으로 Android 지원 기기를 등록하고 프로비저닝하는 방법을 알아보려면 기기 프로비저닝을 참고하세요.

엔드 투 엔드 테스트

위의 환경에서 앱 테스트를 완료한 후 엔드 투 엔드 프로덕션 환경에서 앱을 테스트할 수 있습니다. 이 프로세스에는 다음을 포함하여 고객이 조직에 앱을 배포하기 위해 수행해야 하는 단계가 포함됩니다.

  • Play를 통한 앱 배포
  • 서버 측 관리 구성
  • 서버 측 프로필 정책 제어

엔드 투 엔드 테스트를 완료하려면 EMM 콘솔에 액세스해야 합니다. 가장 쉬운 방법은 EMM에 테스트 콘솔을 요청하는 것입니다. 액세스 권한이 부여되면 다음 작업을 완료하세요.

  1. 새 ApplicationId를 사용하여 애플리케이션의 테스트 버전을 만듭니다.
  2. 관리 Google 도메인의 소유권을 주장하고 EMM에 결합합니다. EMM에 바인딩된 테스트 도메인이 있다면 바인딩을 해제하고 원하는 EMM으로 테스트해야 할 수도 있습니다. 구체적인 결합 해제 단계는 EMM에 문의하세요.
  3. 관리되는 Google 도메인의 비공개 채널에 애플리케이션을 게시합니다.
  4. EMM 콘솔 및 EMM 애플리케이션을 사용하여 다음 작업을 할 수 있습니다.
    1. 직장 기기를 설정합니다.
    2. 애플리케이션을 배포합니다.
    3. 관리 구성을 설정합니다.
    4. 기기 정책 설정

이 절차는 EMM에 따라 다릅니다. 자세한 내용은 EMM 문서를 참고하세요. 축하합니다! 이 단계를 완료하고 앱이 기업 사용자에게 잘 작동하는 것을 확인했습니다.