기기 프로비저닝

기기를 프로비저닝하는 방법에는 여러 가지가 있습니다. 고객의 비즈니스 요구사항에 따라 사용할 프로비저닝 방법이 결정됩니다.

기기 프로비저닝 기본사항

고객이 지원하려는 기기 프로비저닝 배포 시나리오 (예: BYOD 또는 회사 소유)에 따라 사용할 작업 모드 (예: 기기 소유자 모드 또는 프로필 소유자 모드)가 결정됩니다. 마찬가지로 지원해야 하는 작업 모드와 Android 버전에 따라 구현할 프로비저닝 메서드가 결정됩니다.

배포 시나리오

회사 소유 배포 시나리오에서 기업은 직원이 사용하는 기기를 소유하고 완전히 제어합니다. 일반적으로 조직은 전체 기기를 엄격하게 모니터링하고 관리해야 하는 경우 회사 소유 기기를 배포합니다.

BYOD 배포 시나리오를 지원하는 회사는 직원이 개인 소유 기기를 업무에 가져오고 이러한 기기를 사용하여 권한이 있는 회사 정보 및 애플리케이션에 액세스할 수 있도록 허용합니다.

작업 모드

회사 소유 배포는 기기 소유자 작업 모드에서 지원됩니다. Android에서는 관리 앱을 기기 정책 컨트롤러 (DPC)라고 합니다. DPC는 Android 지원 기기에 정책을 적용하고 기기 소유자로 작동할 때 전체 기기를 관리합니다. 기기 소유자로서 DPC는 기기 전체 연결 구성, 전체 설정 구성, 초기화 실행 등 기기 전체 작업을 실행할 수 있습니다.

BYOD 배포는 프로필 소유자 작업 모드에서 지원됩니다. DPC를 통해 기업은 기기의 기본 사용자 계정에 직장 프로필을 추가하여 업무용으로 개인 기기를 사용 설정합니다. 직장 프로필은 기본 사용자와 연결되지만 별도의 프로필로 연결됩니다. 프로필 소유자로서 DPC는 기기의 직장 프로필만 관리하며 직장 프로필 외부는 제한적으로 제어합니다.

기기 소유자 프로비저닝 방법

새 기기의 초기 설정 시 또는 초기화 후에 기기 소유자 작동 모드를 프로비저닝해야 합니다. 다른 시점에는 기기에 기기 소유자 모드를 프로비저닝할 수 없습니다.

사용 사례에 따라 기기 소유자 모드 프로비저닝을 위한 두 가지 기본 유형의 프로비저닝이 있습니다.

  • 기기 기반 흐름에서 IT 관리자는 NFC를 사용하여 많은 기기를 프로비저닝할 수 있습니다. 이 흐름은 관리 Google Play 계정 또는 Google Workspace 시나리오에서 사용할 수 있습니다.
  • 사용자 중심 흐름에서 옵션은 조직이 Google Workspace를 사용하는지 여부에 따라 달라집니다.
    • Google Workspace 시나리오에서는 사용자가 초기 기기 설정 시 Google 계정을 추가하며, DPC는 사용자에게 기기 소유자 설정 단계를 안내해야 합니다. 사용자 중심 흐름은 최종 사용자가 새 기기를 설정하는 데 도움이 될 수 있으며, 기기가 NFC를 지원하지 않는 경우 대안도 있습니다.
    • 조직에서 Google Workspace를 사용하지 않는 경우 관리 Google Play 계정 메서드를 사용해야 합니다.

참고: Play의 특정 국가로 앱 배포를 제한하면 기기 소유자 프로비저닝 중에 이러한 제한이 무시됩니다. 기기가 대상 국가에 위치하지 않은 경우에도 DPC가 다운로드됩니다.

프로필 소유자 프로비저닝 방법

프로필 소유자 작업 모드를 프로비저닝하는 데 권장되는 방법은 조직에서 Google Workspace를 사용하는지 여부에 따라 다릅니다.

  • Google Workspace의 경우 권장되는 방법은 사용자가 사용자 Google 계정을 추가하고 DPC가 사용자에게 프로필 소유자를 설정하는 단계를 안내하는 사용자 중심 흐름입니다.
  • 조직에서 Google Workspace를 사용하지 않는 경우 관리 Google Play 계정 방법을 사용하는 것이 좋습니다.

사용자에게 DPC를 수동으로 설치하도록 안내하는 기존 방식도 지원됩니다. Google Play에서 DPC를 다운로드하고 설치하는 데 사용자가 의존합니다. 그러면 DPC가 사용자에게 프로필 소유자를 설정하는 프로세스의 나머지 과정을 안내합니다.

Android 버전 간 주요 프로비저닝 차이점

배포 시나리오 작업 모드 프로비저닝 방법 5.0, 5.1 6.0 이상 7.0 이상
회사 소유 기기 소유자 QR 코드
관리 Google Play 계정
Google 계정
NFC
BYOD 프로필 소유자 관리 Google Play 계정
Google 계정 5.11
수동 DPC 설치

일반적인 구현 고려사항

구현하는 작업 모드와 관계없이 DPC를 작성할 때 고려할 사항이 있습니다.

Google Play 서비스 호환성

Google Play 서비스 APK 가이드는 개발자에게 API 트랜잭션을 실행하기 전에 Google Play 서비스의 버전을 확인하도록 안내합니다. Google Play 서비스 업데이트를 시도하면 기기 설정 프로세스에 심각한 중단이 발생하므로 DPC는 기기 프로비저닝이 완료되기 전에 Google Play 서비스를 업데이트하려고 해서는 안 됩니다.

Google Play 서비스와의 DPC 호환성에 관한 핵심 요점은 다음과 같습니다.

  • DPC는 특정 기기와 함께 제공된 Google Play 서비스를 사용하여 실행해야 합니다.
  • DPC는 기기 프로비저닝 시 제공되는 Google Play 서비스의 향후 버전에서 제공되는 새 기능에 의존해서는 안 됩니다.

기기 프로비저닝이 완료되면 DPC가 최신 기능을 사용할 수 있도록 사용자에게 Google Play 서비스를 업데이트하라는 메시지를 표시할 수 있습니다. 그러나 어떤 이유로든 기능을 사용할 수 없는 경우 DPC는 기기와 함께 제공된 버전으로 적절하게 대체해야 합니다.

기기 세부정보 가져오기

적용 지연으로 인해 새로 등록된 기기의 devices.get을 호출하면 기기 세부정보가 반환되기까지 최대 2분이 걸릴 수 있습니다.

최종 사용자가 기기 또는 직장 프로필을 사용하기 전에 워크플로에서 세부정보가 필요한 경우 DPC에서 진행률 화면을 사용하고 호출이 성공할 때까지 기다리는 것이 좋습니다.

프로필 소유자 모드의 구현 고려사항

다음은 프로필 소유자 작업 모드를 구현하기 위해 DPC를 작성할 때 고려할 사항입니다.

개인 DPC 삭제 또는 사용 중지

프로필 소유자 작업 모드를 프로비저닝할 때 DPC는 개인 프로필에서 실행을 시작하고 직장 프로필을 만드는 프로세스를 시작합니다. 직장 프로필이 생성되면 DPC도 직장 프로필 내에서 실행됩니다. 직장 프로필의 DPC가 프로비저닝 프로세스를 완료합니다. 이 시점에서 개인 프로필의 DPC는 자체적으로 사용 중지되거나 기기 사용자가 이를 삭제해야 합니다.

사용자가 개인 DPC를 삭제합니다.

  1. 개인 DPC는 ACTION_MANAGED_PROFILE_PROVISIONED를 수신 대기합니다. Android 5.1 기기의 경우 개인 DPC는 대신 ACTION_MANAGED_PROFILE_ADDED를 수신 대기해야 합니다.
  2. 개인 DPC가 제거 요청 ACTION_UNINSTALL_PACKAGE을 시작합니다. 이렇게 하면 사용자에게 개인 DPC를 제거하라는 메시지가 표시됩니다. 최상의 사용자 환경을 제공하려면 프로비저닝 흐름 중에 제거 프로세스가 진행되어야 합니다.

개인 DPC가 자체적으로 사용 중지됨

  1. 개인 DPC는 ACTION_MANAGED_PROFILE_PROVISIONED를 수신 대기합니다. Android 5.1 기기의 경우 개인 DPC는 대신 ACTION_MANAGED_PROFILE_ADDED를 수신 대기해야 합니다.
  2. 해당하는 경우 개인 DPC는 자체적으로 사용 중지하기 전에 기기 관리자 권한을 해제해야 합니다.
  3. 개인 DPC는 COMPONENT_ENABLED_STATE_DISABLED 매개변수를 사용하여 setApplicationEnabledSetting 사용 중지 요청을 시작합니다.
  4. 사용자는 Google Play에서 개인 DPC를 다시 사용 설정할 수 있습니다.

기기 소유자 모드 구현 고려사항

다음은 기기 소유자 작업 모드를 구현하기 위해 DPC를 작성할 때 고려할 사항입니다.

새 기기이거나 초기화된 기기여야 합니다.

새 기기의 초기 설정 시 또는 초기화 후에 기기 소유자 작동 모드를 프로비저닝해야 합니다. 그 외에는 기기 소유자 모드를 기기에 프로비저닝할 수 없습니다.

기기 소유자 모드는 DPC가 기기를 완전히 제어할 수 있게 합니다. 초기 설정 기기 소유자 모드 프로비저닝이 허용된 경우:

  • 멀웨어가 기기 소유자를 생성하여 기기를 탈취할 수 있습니다.
  • 기기에 이미 사용자 데이터나 앱이 있는 경우 개인 정보 보호 문제가 발생할 수 있습니다.

회사 소유 기기에서만 기기 소유자 모드 설정

고객의 회사에서 소유하고 있는 것으로 확인된 기기에서만 기기 소유자 모드를 프로비저닝해야 합니다. 이는 고유한 기기 식별자 (예: 일련번호)를 감지하거나 EMM 정책을 통해 기기 등록이 승인된 전용 계정 집합을 사용하여 확인할 수 있습니다.

기기의 회사 소유권을 확인할 수 없는 경우 실수로 기기 소유자 모드가 프로비저닝되지 않도록 장애 안전 메커니즘을 만들어야 합니다. 예를 들어 기기 소유자 모드를 프로비저닝하기 전에 기기 사용자에게 확인 또는 동의 조치를 취하라는 메시지를 표시할 수 있습니다.

시스템 앱 사용 설정

DPC가 직장 프로필을 프로비저닝하면 런처 아이콘이 없는 모든 시스템 앱이 기기에 중요한 것으로 간주되며 직장 프로필에서 자동으로 실행될 수 있습니다. 런처 아이콘이 있는 시스템 앱은 선택사항으로 간주되며 사용 설정 여부를 결정할 수 있습니다.

Google Play를 통해 시스템 앱 사용 설정

Google Play를 사용하여 시스템 앱을 쉽게 사용 설정할 수 있으며, 사용자는 앱 업데이트가 있을 때 받습니다.

Android 프레임워크 API를 사용하여 시스템 앱 사용 설정

사용자가 기기 사용을 시작하는 즉시 시스템 앱을 볼 수 있도록 하려면 기기 프로비저닝 프로세스의 일부로 시스템 앱을 사용 설정합니다. DPC는 DevicePolicyManager.enableSystemApp()를 사용하여 패키지 이름 또는 인텐트별로 시스템 앱을 사용 설정합니다.

사용 설정하고 EMM 콘솔에서 IT 관리자에게 표시하려는 시스템 앱을 확인하는 방법에는 몇 가지가 있습니다.

시스템 앱 카탈로그 만들기

이 방법에서 각 기기는 어떤 앱이 기기에 있는지 확인하고 이 데이터를 다시 EMM 콘솔로 전송합니다. EMM 콘솔은 기기 정책을 만들 때 이 데이터를 동적으로 표시하므로 IT 관리자는 앱별로 앱을 관리할 수 있습니다.

  1. 기기에 직장 프로필이 아직 프로비저닝되지 않았다면 queryIntentActivities()를 사용하여 기기에서 런처 아이콘이 있는 모든 앱 목록을 가져옵니다.

    private List<ResolveInfo> getAppsWithLauncher() {
      Intent i = new Intent(Intent.ACTION_MAIN);
      i.addCategory(Intent.CATEGORY_LAUNCHER);
      return getPackageManager().queryIntentActivities(i, 0);
    }
    
  2. 직장 프로필이 이미 기기에 프로비저닝된 경우 PackageManager.GET_DISABLED_COMPONENTSPackageManager.GET_UNINSTALLED_PACKAGES를 사용하여 직장 프로필의 모든 앱 목록을 가져옵니다.

  3. 앱이 기기의 시스템 이미지에 설치되어 있는지 나타내는 FLAG_SYSTEM를 확인하여 앱 목록에서 시스템 앱을 찾습니다.

장점:

  • IT 관리자가 모든 기기에서 앱을 전체적으로 파악할 수 있습니다.
  • 사용 설정할 앱을 세밀하게 제어할 수 있습니다.

단점:

  • 기기마다 다른 앱 카탈로그가 있으므로 단일 정책 구성 모델을 여러 기기 유형에 적용하기는 어렵습니다.
  • OEM 관련 앱의 양을 IT 관리자에게 의미 있는 방식으로 제시하는 것은 어려울 수 있습니다.

기능별로 시스템 앱 분류

IT 관리자가 기기 그룹에 시스템 앱을 사용 설정하려는 경우 기능에 따라 일반 앱을 선택합니다(예: '시스템 브라우저'). 그러면 DPC가 해당 인텐트의 모든 시스템 앱을 허용합니다.

장점:

  • IT 관리자를 위한 간단한 기능 기반 사용 설정
  • 다양한 기기에서 일관된 기능을 보장합니다 (적어도 일반적인 사용 사례의 경우).

단점:

  • 시스템 앱을 모든 기기 유형에서 지원되는 앱으로 제한합니다.
  • IT 관리자는 앱의 OEM 버전 (예: Samsung® 브라우저)을 푸시하고 다른 버전 (예: LG® 브라우저)은 푸시하지 않으려고 할 수 있습니다.
  • IT 관리자는 여러 앱을 푸시하고 싶지 않을 수 있지만 인텐트 핸들러가 여러 개 있는 경우 이를 방지할 수는 없습니다.

승인된 시스템 앱만 지원

OEM과 협력하여 특정 OEM 패키지를 식별하고 EMM 콘솔 내에서 이러한 패키지만 지원합니다. 이를 통해 OEM 앱의 관리 구성을 카탈로그화할 수 있습니다. OEM 앱이 Google Play에서 호스팅되지 않기 때문에 다른 방식으로는 알 수 없습니다.

장점:

  • 통합 워크플로를 크게 간소화하고 처음 두 옵션에서 문제가 되는 특이 사례를 제거합니다.
  • OEM 앱의 관리 구성을 카탈로그화하고 IT 관리자용 EMM 콘솔에 표시할 수 있습니다.
  • 플래그십 기기 지원을 위해 OEM과의 긴밀한 관계를 지원합니다.

단점:

  • 결과적으로 확장성이 떨어지고 소비자의 선택권이 줄어듭니다.

DPC 테스트 시나리오

Test DPC는 DPC 앱에서 엔터프라이즈 기능을 테스트하기 위해 Google에서 제공하는 오픈소스 앱입니다. Test DPC는 github 또는 Google Play에서 제공됩니다. Test DPC를 사용하면 다음을 수행할 수 있습니다.

  • Android에서 기능 시뮬레이션
  • 정책 설정 및 시행
  • 앱 및 인텐트 제한 설정
  • 직장 프로필 설정
  • 완전 관리형 Android 기기 설정

Test DPC는 주로 Android용 기업 솔루션을 테스트하기 위한 수단으로 사용되지만, Android 기능의 샘플 코드 소스로 사용할 수도 있습니다.

프로비저닝 맞춤설정

기기 프로비저닝 중에 시스템 사용자 인터페이스의 상태 표시줄에 기본 색상이 표시되고 화면 상단에 기본 로고가 표시됩니다. 맞춤 색상과 로고를 설정하여 DPC와 시스템 인터페이스 간에 일관된 시각적 전환을 제공하거나 관리자가 EMM 콘솔을 사용하여 전환하도록 허용합니다. 예를 들어 관리자는 회사 로고를 업로드하거나 알림을 표시하는 화면의 모양을 맞춤설정할 수 있습니다.

DPC는 DevicePolicyManager.EXTRA_PROVISIONING_MAIN_COLORDevicePolicyManager.EXTRA_PROVISIONING_LOGO_URI 추가 항목을 사용하여 색상 및 로고 선택을 적용합니다.

맞춤 색상을 설정하려면 EXTRA_PROVISIONING_MAIN_COLOR을 사용하여 기기 프로비저닝 중에 표시할 주된 색상을 나타내는 정수를 설정합니다. ACTION_PROVISION_MANAGED_PROFILE 또는 ACTION_PROVISION_MANAGED_DEVICE를 사용하여 인텐트에 추가 (상수)를 배치합니다.

정수가 표현되는 방식을 보려면 색상을 참고하세요. 예는 TestDPC 앱에서 MAIN_COLOR를 참고하세요.

커스텀 로고를 설정하려면 EXTRA_PROVISIONING_LOGO_URI를 사용하여 기기 프로비저닝 중에 화면 상단에 표시되는 이미지를 설정합니다. ACTION_PROVISION_MANAGED_PROFILE 또는 ACTION_PROVISION_MANAGED_DEVICE를 사용하여 인텐트에 추가 (상수)를 배치합니다. 이미지의 픽셀 밀도가 기기에 적절한지 확인합니다.

예는 TestDPC 앱에서 LOGO_URI를 참고하세요.

QR 코드 방법

QR 코드 프로비저닝 메서드는 설정 마법사에서 QR 코드를 스캔하여 기기 소유자 모드를 설정하고 구성합니다. QR 코드에는 DPC가 기기를 프로비저닝하는 데 필요한 모든 정보가 있는 키-값 쌍의 페이로드가 포함됩니다.

EMM 콘솔을 통해 IT 관리자는 프로비저닝하려는 기기의 QR 코드를 만들 수 있습니다. IT 관리자는 최종 사용자에게 QR 코드를 전송하고 최종 사용자는 QR 코드를 스캔하여 기기를 프로비저닝합니다.

QR 코드 프로비저닝 사용 사례

태블릿과 같은 일부 기기는 NFC를 지원하지 않습니다. QR 코드 프로비저닝은 NFC를 지원하지 않는 분산된 기기를 프로비저닝하는 편리한 방법입니다. IT 관리자는 사용자에게 QR 코드를 전송하여 사용자 주도 프로비저닝을 허용할 수 있습니다.

QR 코드 프로비저닝에는 Google 도메인 또는 Google 계정과 같은 Google ID가 필요하지 않습니다. Android를 사용하지만 Google Workspace를 사용하지 않는 조직에는 Google ID가 없습니다.

NFC와 마찬가지로 QR 코드 프로비저닝은 Google ID (또는 ID)가 필요하지 않거나 바람직하지 않은 경우에 키오스크 및 일회용 배포를 지원합니다. 예를 들어 매장의 키오스크 기기는 누구에게도 속하지 않으므로 최종 사용자 ID가 없어야 합니다.

QR 코드 만들기

QR 코드 프로비저닝을 위한 유효한 QR 코드는 UTF-8로 인코딩된 JavaScript® Object Notation (JSON) 문자열입니다. 유효한 QR 코드에 다음 속성을 포함할 수 있습니다.

항상 필수

DPC가 기기에 아직 설치되지 않은 경우 필수

기기가 아직 Wi-Fi에 연결되어 있지 않은 경우 권장됩니다.

Optional

이 샘플은 유효한 QR 코드를 빌드합니다.

{
"android.app.extra.PROVISIONING_DEVICE_ADMIN_COMPONENT_NAME":
"com.emm.android/com.emm.android.DeviceAdminReceiver",

"android.app.extra.PROVISIONING_DEVICE_ADMIN_SIGNATURE_CHECKSUM":
"gJD2YwtOiWJHkSMkkIfLRlj-quNqG1fb6v100QmzM9w=",

"android.app.extra.PROVISIONING_DEVICE_ADMIN_PACKAGE_DOWNLOAD_LOCATION":
"https://path.to/dpc.apk",
    "android.app.extra.PROVISIONING_SKIP_ENCRYPTION": false,
    "android.app.extra.PROVISIONING_WIFI_SSID": "GuestNetwork",
    "android.app.extra.PROVISIONING_ADMIN_EXTRAS_BUNDLE": {
        "dpc_company_name": "Acme Inc.",
        "emm_server_url": "https://server.emm.biz:8787",
        "another_custom_dpc_key": "dpc_custom_value"
    }
}

QR 코드 프로비저닝 프로세스

  1. 설정 마법사가 사용자에게 시작 화면을 6번 탭하라는 메시지를 표시합니다. 탭은 화면의 같은 위치에서 실행해야 합니다.
  2. 설정 마법사가 QR 코드 리더를 다운로드할 수 있도록 사용자에게 인터넷에 연결하라는 메시지를 표시합니다.
  3. Google Play 서비스가 QR 코드 인식 엔진이 포함된 모듈을 다운로드합니다.
  4. 사용자가 IT 관리자가 제공한 QR 코드를 스캔합니다.
  5. 설정 마법사는 DPC 앱을 다운로드하고 ACTION_PROVISION_MANAGED_DEVICE를 사용하여 기기 소유자 프로비저닝 프로세스를 시작합니다.

관리 Google Play 계정 방법

DPC는 관리 Google Play 계정 프로비저닝 메서드를 사용하여 기기 소유자 모드 또는 프로필 소유자 모드를 설정할 수 있습니다. 이 프로비저닝 방법은 Google Workspace를 사용하지 않는 조직을 대상으로 합니다.

관리 Google Play 계정 프로비저닝 방법은 DPC 지원 라이브러리를 사용합니다. 이 클라이언트 라이브러리는 관리 Google Play 계정의 원활한 운영을 보장합니다. 또한 관리 Google Play 계정 프로비저닝 프로세스의 향후 업데이트와도 호환됩니다.

기기 프로비저닝을 위한 기본 요건

  • 기업 생성 및 등록에 설명된 대로 엔터프라이즈 ID가 생성되고 EMM ID로 등록되며 ESA가 설정됩니다.
  • 사용자의 회사 ID가 EMM 콘솔에 알려져 있습니다.
  • 사용자는 EMM 콘솔에서 허용하는 사용자 인증 정보(일반적으로 회사 이메일 사용자 인증 정보)를 사용하여 DPC 앱에 로그인할 수 있습니다.

프로필 소유자 모드 설정

BYOD(Bring Your Own Device) 시나리오에서 개인 기기로 사용 중인 기기에서 프로필 소유자 작업 모드를 프로비저닝할 수 있습니다.

  1. 사용자가 Google Play에서 DPC를 수동으로 다운로드하여 실행합니다.
  2. DPC는 ACTION_PROVISION_MANAGED_PROFILE를 사용하여 직장 프로필을 프로비저닝합니다.
  3. 최종 설정 단계를 완료합니다.

기기 소유자 모드 설정

새 기기의 초기 설정 시 또는 초기화 후에 기기 소유자 작동 모드를 프로비저닝해야 합니다. 다른 시점에는 기기에 기기 소유자 모드를 프로비저닝할 수 없습니다.

기기 설정 중에 계정을 추가하라는 메시지가 표시되면 사용자는 특수 DPC별 토큰을 입력합니다. 토큰은 afw#DPC_IDENTIFIER 형식입니다. ACME라는 EMM의 경우 afw#acme가 ACME EMM의 기본 DPC를 설치합니다. 각 EMM은 프로비저닝 프로세스에서 특정 DPC 식별자를 사용하기 전에 Google에 특정 DPC 식별자를 요청해야 합니다.

  1. 사용자가 새 기기 또는 초기화된 기기를 켜고 설정 마법사가 실행됩니다.
  2. 계정을 추가하라는 메시지가 표시되면 사용자는 EMM의 DPC를 식별하는 afw#DPC_IDENTIFIER 형식의 특수 토큰을 입력합니다.
  3. 토큰의 DPC 식별자를 사용하여 설정 마법사가 기기에 임시 Google 계정을 추가합니다. 이 임시 계정은 Google Play에서 EMM용 DPC를 다운로드하는 데만 사용되며 최종 설정 단계에서 삭제됩니다.
  4. DPC는 ACTION_PROVISION_MANAGED_DEVICE를 사용하여 기기를 프로비저닝합니다.
  5. 최종 설정 단계를 완료합니다.

모든 작업 모드의 최종 설정 단계

프로필 소유자 모드 또는 기기 소유자 모드를 설정하는 초기 단계가 완료된 후에만 이 단계를 실행하세요.

  1. DPC는 DPC 지원 라이브러리를 초기화하여 기기가 관리 Google Play 계정을 지원할 수 있도록 합니다.

    AndroidForWorkAccountSupport androidForWorkAccountSupport =
      new AndroidForWorkAccountSupport(context, admin);
    androidForWorkAccountSupport.ensureWorkingEnvironment(callback);
    

    기기에서 기기 소유자 모드를 설정하는 경우 이 단계에서는 DPC를 다운로드하기 위해 추가된 임시 Google 계정을 삭제합니다.

  2. 사용자가 EMM 사용자 인증 정보를 사용하여 DPC에 로그인합니다. 이는 일반적으로 회사 이메일 사용자 인증 정보입니다.

  3. DPC는 EMM 콘솔에서 인증된 회사 사용자의 관리 Google Play 계정 사용자 인증 정보를 요청합니다.

  4. EMM 콘솔에 사용자의 Google Play userId가 없으면 Users.insert()를 호출하여 신규 사용자를 만듭니다. 기기 소유자 모드를 프로비저닝하는 경우 기기 계정 (전용 기기 배포의 경우) 또는 사용자 계정 (회사 소유 배포의 경우)을 지정합니다.

  5. Devices.update를 호출하여 기기의 정책을 설정합니다. 기기에 Managed Google Play 계정을 추가하기 전에 정책을 설정해야 합니다. 그러지 않으면 기기에 계정을 추가한 후 짧은 시간 동안 정책이 적용되지 않습니다.

  6. EMM 콘솔은 Users.generateAuthenticationToken()를 호출하여 userId의 계정 사용자 인증 정보를 요청합니다. 이 인증 토큰은 수명이 짧으며 재사용할 수 없습니다. DPC는 토큰을 사용하여 프로그래매틱 방식으로 계정을 추가해야 합니다 (최종 사용자에게는 유용하지 않음).

  7. Google Play EMM API는 EMM 콘솔에 인증 토큰을 반환합니다.

  8. EMM 콘솔은 인증 토큰을 DPC에 전달합니다.

  9. DPC는 다음을 사용하여 관리 Google Play 계정을 기기에 추가합니다.

    androidForWorkAccountSupport.addAndroidForWorkAccount(token,
      accountAddedCallback);
    

Google 계정 이용 방법

DPC는 Google 계정 프로비저닝 메서드를 사용하여 기기 소유자 모드 또는 프로필 소유자 모드를 설정할 수 있습니다. Google 계정 프로비저닝 방법을 사용하면 사용자가 초기 기기 설정 시 Google 계정을 추가한 후 DPC가 사용자에게 프로비저닝 단계를 안내합니다.

사용자가 Google 계정 사용자 인증 정보를 입력하는 경우:

  • Google 인증 서버가 사용자 계정을 인증합니다.
  • 그러면 인증 서버가 엔터프라이즈 서버와 통신하여 계정의 도메인이 Google Workspace 도메인 또는 EMM 관리 도메인으로 등록되었는지 확인합니다.
  • 이 경우 시스템은 Google Play에서 도메인과 연결된 DPC를 자동으로 다운로드하여 설치합니다.

프로필 소유자 모드 설정

기기를 처음 설정할 때 또는 사용자가 계정을 추가할 때 설정 > 계정 추가를 사용하여 프로필 소유자 작업 모드를 프로비저닝할 수 있습니다.

  1. 계정 인증은 설정 마법사 또는 설정 > 계정 추가에서 사용자가 시작합니다.
  2. GMSCore가 ACTION_PROVISION_MANAGED_DEVICE_FROM_TRUSTED_SOURCE를 사용하여 직장 프로필 프로비저닝을 시작합니다.
  3. DPC는 기기에 자동으로 다운로드되고 DPC에서 직장 프로필 프로비저닝을 지원하는지 확인하기 위해 ACTION_GET_PROVISIONING_MODE 핸들러를 사용하여 실행됩니다.
  4. 플랫폼은 직장 프로필 프로비저닝을 실행합니다.
  5. 직장 프로필이 프로비저닝되면 DPC는 브로드캐스트 ACTION_PROFILE_PROVISIONING_COMPLETE를 수신합니다. DPC의 ACTION_ADMIN_POLICY_COMPLIANCE 핸들러가 직장 프로필에서 실행됩니다. 직장 프로필이 생성되면 DPC도 직장 프로필 내에서 실행됩니다. DPC는 관리 Google 계정의 정책을 푸시하고 기기가 보안 침해 상태가 되지 않도록 하며 정책이 시행되는지 확인 (예: 비밀번호 요청)합니다.
  6. 개인 프로필의 DPC가 자체적으로 사용 중지되거나 사용자가 DPC를 삭제합니다.

기기 소유자 모드 또는 COPE 설정

새 기기의 초기 설정 시 또는 초기화 후에 기기 소유자 작동 모드를 프로비저닝해야 합니다. 다른 때는 기기 소유자 모드를 기기에 추가할 수 없습니다.

  1. 설정 마법사에서 사용자가 계정 인증을 시작합니다.
  2. GMSCore가 ACTION_PROVISION_MANAGED_DEVICE_FROM_TRUSTED_SOURCE를 사용하여 기기 소유자 프로비저닝을 시작합니다. 3.DPC가 기기에 자동으로 다운로드되고 GET_PROVISIONING_MODE 핸들러를 사용하여 원하는 프로비저닝 모드를 선택하여 실행됩니다.
  3. 플랫폼이 원하는 프로비저닝 모드에 기기를 프로비저닝합니다.
  4. 기기가 프로비저닝되면 DPC가 이러한 브로드캐스트를 수신하고 DPC의 ACTION_ADMIN_POLICY_COMPLIANCE 핸들러가 실행됩니다.
  5. DPC는 Global.DEVICE_PROVISIONED 값을 사용하여 기기가 새 기기이거나 초기화됨 (프로비저닝되지 않음)인지 확인합니다.
    • 0 프로비저닝되지 않음.
    • 1 프로비저닝됨.
  6. DPC는 관리 기기의 정책을 푸시하고 기기가 보안 침해 상태가 되지 않도록 하며 정책이 시행되는지 확인 (예: 비밀번호 요청)하여 프로비저닝 프로세스를 완료합니다.

Google 계정 메서드의 구현 고려사항

  • DPC는 사용된 시작 인텐트에서 특정 추가 항목을 찾아 Google 계정 인증 흐름을 감지해야 합니다 (LaunchIntentUtil 참고).

    • android.accounts.Account 유형의 계정 계정이 설정 마법사 또는 설정 > 계정 추가에서 추가되었음을 나타냅니다. 이 경우 기기 또는 프로필을 관리하기 위해 시작된 DPC가 필요합니다.
    • 부울 유형의 is_setup_wizard true인 경우 DPC가 설정 마법사가 완료되기 전에 설정 마법사에서 실행되었고, 그렇지 않은 경우에는 설정 > 계정 추가 또는 다른 흐름에서 시작되었습니다.

    DPC가 Google 계정 메서드의 일부로 실행되었는지 여부를 확인하는 방법은 다음과 같습니다.

    boolean isSynchronousAuthLaunch(Intent launchIntent) {
      return launchIntent.hasExtra("is_setup_wizard");
    }
    
  • DPC는 설정을 완료하기 전에 finish()를 호출하면 안 됩니다. 또한 DPC가 startActivityForResult()로 실행되고 결과를 기다리므로 양수 결과 코드(예: RESULT_OK)도 반환해야 합니다.

    DPC 설정 흐름이 ACTION_PROVISION_* 인텐트를 전송하는 지점에 도달하면 DPC는 finish()를 호출하기 전에 프로비저닝 프로세스에서 결과 코드를 기다려야 합니다. ACTION_PROVISION_* 인텐트를 시작할 때는 startActivityForResult()onActivityResult() 콜백을 사용합니다. (예시는 LaunchActivitySetupSyncAuthManagement를 참고하세요).

    설정 프로세스의 비동기적 특성으로 인해 DPC는 RESULT_OK의 결과 코드를 사용하여 프로비저닝이 성공했음을 나타낼 수 없습니다. 유일하게 보장되는 방법은 프로비저닝 성공 시 DeviceAdminReceiver 콜백을 사용하는 것입니다. RESULT_CANCELED는 사용자가 설정 흐름의 동기 부분에서 백아웃했으며 DPC가 이에 반응해야 함을 나타냅니다.

    이 예에서 DPC는 프로비저닝을 시작하고 활동에서 결과 코드를 기다립니다.

    Intent intent = new Intent(ACTION_PROVISION_MANAGED_PROFILE);
    startActivityForResult(intent, REQUEST_MANAGED_PROFILE);
    ...
    
    @Override
    public void onActivityResult(int req, int res, Intent i) {
        if (req == REQUEST_MANAGED_PROFILE) {
            if (res == Activity.RESULT_OK) {
                setResult(Activity.RESULT_OK);
                finish();
            } else {
                Toast.makeText(this, “Provisioning failed”,
                        Toast.LENGTH_SHORT).show();
            }
        }
    }
    
  • 기기가 이미 프로비저닝된 경우 DPC는 기기 소유자 작업 모드를 설정하려고 해서는 안 됩니다 (ProvisioningStateUtil.isDeviceProvisioned() 참고). 이 예에서 DPC는 기기가 프로비저닝되었는지 확인합니다.

    public static boolean isDeviceProvisioned(Context context) {
    ContentResolver cr = context.getContentResolver();
        return
    Settings.Global.getInt(cr, DEVICE_PROVISIONED, 0) != 0;
    }
    
  • 선택사항입니다. DPC는 프로비저닝을 시작할 때 EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE 추가 항목을 사용하여 상태 정보를 DeviceAdminReceiver(프로필 소유자 사례에서는 직장 프로필 내에서 실행)로 다시 전달할 수 있습니다. TestDPC는 프로비저닝이 완료된 후 이 추가 항목을 사용하여 Google 계정 흐름에 다른 활동 세트를 입력합니다. 자세한 내용은 DeviceAdminReceiver를 참고하세요.

    public class DeviceAdminReceiver extends android.app.admin.DeviceAdminReceiver
    {
      @Override
      public void onProfileProvisioningComplete(Context context, Intent intent) {
        // Retrieve the admin extras bundle, which we can use to determine the original context for
        // Test DPC's launch.
        PersistableBundle extras = intent.getParcelableExtra(
                EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE);
        ...
    
  • 직장 프로필을 설정하려면 DPC가 추가된 계정을 새 직장 프로필로 이전해야 합니다. 이렇게 하려면 DPC가 ACTION_PROVISION_MANAGED_PROFILE의 시작 인텐트에 제공된 계정을 전달해야 합니다.

  • DPC는 설정 종료 시 앱을 종료할 수 있는 명확한 클릭 유도 문구 (예: Finish 버튼)를 사용자에게 제공하여 사용자가 흐름의 막다른 골목에 도달했다고 생각하지 않도록 해야 합니다.

  • DPC는 사용자 환경이 원활하고 원활하게 통합되도록 설정 마법사 테마 또는 레이아웃 라이브러리를 사용해야 합니다.

NFC 방식

DPC는 NFC 프로비저닝 방법을 사용하여 기기 소유자 모드를 설정할 수 있습니다. NFC 프로비저닝 방법 또는 NFC 태그에서 고객이 기기 소유자 작동 모드를 구성하는 데 필요한 초기 정책과 Wi-Fi 구성, 설정 및 프로비저닝 세부정보가 포함된 NFC 프로그래머 앱을 만듭니다. 광고주 또는 고객이 Android 지원 기기에 NFC 프로그래머 앱을 설치하면 이 기기는 프로그래머 기기가 됩니다.

기기를 프로비저닝하기 위해 IT 관리자는 상자에서 새 기기를 꺼내 프로그래머 기기 또는 NFC 태그에 부딪힙니다. 범프는 인터넷에 연결하고 적절한 정책과 설정을 다운로드하도록 구성을 기기로 전송합니다. 그러면 기기는 DPC에 의해 관리됩니다.

기기가 프로비저닝된 후 잠시 동안 Google Play는 표시해야 하는 승인된 앱 및 컬렉션 대신 관리되지 않는 일반 콘텐츠를 표시합니다. 이러한 지연은 몇 분에서 최대 1시간까지 지속될 수 있습니다.

NFC 프로그래머 앱 및 프로그래머 기기 만들기

Android 10 이하를 사용하는 기기의 경우 Android Beam을 사용하여 NFC 프로비저닝을 완료할 수 있습니다.

  1. NFC 프로그래머 샘플 앱을 다운로드합니다. 추가하지 않고 샘플을 그대로 사용하거나 기본값으로 수정할 수 있습니다.
  2. 선택한 기기에 프로그래머 앱을 설치합니다.
  3. NFC 프로그래머 앱을 실행하고 com.example.android.apisLoad Defaults(기본값 로드)를 선택합니다. (이 텍스트는 설정한 기본 매개변수에 따라 달라질 수 있습니다.)

고객 기기 프로비저닝

  1. 프로그래머 기기 또는 NFC 태그를 새 기기 또는 초기화된 기기로 이동합니다.
  2. 기기가 시작될 때 표시되는 초기 Welcome 화면에 유지되는지 확인합니다. 텍스트는 프로그래머 앱의 Ready to send:{...}에 지정됩니다.
  3. DPC가 다음 작업을 수행하는 동안 기다립니다.
    1. 기기를 암호화합니다.
    2. CDMA (Code-Division Multiple Access) 기기인 경우: 전화 통신 사용자 인터페이스가 표시되는 동안 전화를 활성화합니다 (상호작용 필요 없음).
    3. Wi-Fi 연결을 설정합니다.
    4. com.example.android.apis의 APK 파일을 다운로드합니다.
    5. com.example.android.apis를 설치합니다.
    6. com.example.android.apis에서 샘플 기기 관리자를 기기 소유자로 설정합니다.
    7. 기기 소유자가 활성화되면 성공 '토스트 메시지'가 표시됩니다.
  4. 홈페이지로 돌아간 후 (설정 마법사는 자동으로 건너뜀) com.example.android.apis가 기기 소유자로 설정되어 있는지 확인합니다.
    1. 설정 > 보안 > 기기 관리자에서 샘플 기기 관리자를 삭제할 수 없는지 확인합니다.
    2. 설정 > 사용자 > 사용자 및 프로필 > 나 (소유자)에서 소유자가 사용 가능한 유일한 계정인지 확인합니다 (기기에는 활성 기기 소유자가 한 번에 한 명만 있을 수 있음).

추가 리소스

고급 NFC에서는 다양한 태그 기술 사용, NFC 태그에 쓰기, 포그라운드 전달과 같은 주제를 설명합니다.

수동 DPC 설치 방법

수동 DPC 설치 프로비저닝 방법을 사용하여 프로필 소유자 모드를 설정하려면 사용자가 Google Play에서 DPC를 다운로드하여 설치합니다. 그러면 DPC에서 사용자에게 관리 Google 계정의 프로필 소유자를 설정하는 나머지 프로세스를 안내합니다.

DPC는 직장 프로필을 만들기 전이나 후에 관리 Google 계정을 추가할 수 있습니다. 예를 들어 DPC는 먼저 관리 Google 계정에 관해 메시지를 표시하는 대신 사용자의 EMM 사용자 인증 정보를 기반으로 직장 프로필을 만들 수 있습니다.

프로필 소유자 모드 설정

먼저 관리 Google 계정 추가하기

  1. 사용자가 Google Play에서 DPC를 다운로드하여 설치합니다.
  2. DPC는 AccountManager.addAccount()를 사용하여 직장 프로필을 만들기 전에 관리 Google 계정을 추가합니다.
  3. DPC는 개인 프로필에서 실행을 시작하고 다음을 사용하여 직장 프로필을 만드는 프로세스를 시작합니다.
  4. 직장 프로필의 DPC가 프로비저닝 프로세스를 완료합니다. 직장 프로필이 생성되면 DPC도 직장 프로필 내에서 실행됩니다. 직장 프로필의 DPC는 관리 Google 계정의 정책을 푸시하고, 기기가 보안 침해된 상태가 되지 않도록 하고, 정책이 시행되는지 확인 (예: 비밀번호 요청)하여 프로비저닝 프로세스를 완료합니다.
  5. 직장 프로필이 프로비저닝되면 DPC는 브로드캐스트 ACTION_PROFILE_PROVISIONING_COMPLETE를 수신합니다.
  6. 개인 프로필의 DPC는 자체적으로 사용 중지되거나 사용자가 DPC를 삭제합니다.

먼저 직장 프로필을 만드세요.

  1. 사용자가 Google Play에서 DPC를 다운로드하여 설치합니다.
  2. DPC는 개인 프로필에서 실행을 시작하고 다음을 사용하여 직장 프로필을 만드는 프로세스를 시작합니다.
  3. DPC는 AccountManager.addAccount()를 사용하여 관리 Google 계정을 추가합니다.
  4. DPC는 브로드캐스트 ACTION_PROFILE_PROVISIONING_COMPLETE를 수신하고 EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE을 읽습니다.
  5. 직장 프로필의 DPC가 프로비저닝 프로세스를 완료합니다. 직장 프로필이 생성되면 DPC도 직장 프로필 내에서 실행됩니다. 직장 프로필의 DPC는 관리 Google 계정의 정책을 푸시하고, 기기가 보안 침해 상태가 되지 않도록 하고, 정책이 시행되는지 확인(예: 비밀번호 요청)하여 프로비저닝 프로세스를 완료합니다.
  6. DPC는 DevicePolicyManager.setProfileEnabled()를 사용하여 직장 프로필을 사용 설정합니다.
  7. 개인 프로필의 DPC는 자체적으로 사용 중지되거나 사용자가 DPC를 삭제합니다.

  1. Android 5.1의 Google Account 메서드는 작업 프로필 소유자 모드만 지원하며 사용자는 Settings > Add account에서만 이 모드를 구성할 수 있습니다.