Android 10의 새로운 엔터프라이즈 기능

이 페이지에서는 새로운 엔터프라이즈 API, 기능, Android 10에 도입된 동작 변경사항입니다.

회사 소유 기기의 직장 프로필

Android 10에는 직장 프로필만 필요한 회사 소유 기기에 적용됩니다.

직장 프로필을 위한 향상된 프로비저닝 도구

다음을 사용하여 등록된 Android 10 이상 기기에서 직장 프로필을 프로비저닝할 수 있습니다. QR 코드 또는 제로터치입니다. 회사 소유 기기를 프로비저닝하는 동안 새로운 추가 인텐트를 사용하면 직장 프로필 또는 완전 관리형을 시작하는 DPC (기기 정책 컨트롤러 앱) 설정할 수 있습니다 직장 프로필이 생성되거나 전체 관리가 설정된 후 DPC는 초기 정책을 시행하려면 정책 준수 화면을 실행해야 합니다.

DPC의 매니페스트 파일에서 다음에 대한 새 인텐트 필터를 선언합니다. GET_PROVISIONING_MODE 드림 활동을 실행하고 BIND_DEVICE_ADMIN를 추가합니다. 임의의 앱이 활동을 시작하지 못하도록 하는 권한 예를 들면 다음과 같습니다.

<activity
    android:name=".GetProvisioningModeActivity"
    android:label="@string/app_name"
    android:permission="android.permission.BIND_DEVICE_ADMIN">
    <intent-filter>
        <action
            android:name="android.app.action.GET_PROVISIONING_MODE" />
        <category android:name="android.intent.category.DEFAULT"/>
    </intent-filter>
</activity>

프로비저닝하는 동안 시스템은 인텐트 필터 이 활동의 목적은 관리 모드를 지정하는 것입니다. (직장 프로필 또는 완전 관리형)

프로비저닝이 필요한 항목을 결정하기 전에 추가 프로비저닝을 검색하는 것이 적절한 관리 모드를 사용해야 합니다. 활동은 가져올 getIntent() 다음과 같습니다.

DPC는 새로운 결과 인텐트를 만들고 이 인텐트에 다음 항목을 추가할 수도 있습니다.

기기에 관리 모드를 설정하려면 다음을 호출합니다. putExtra(DevicePolicyManager.EXTRA_PROVISIONING_MODE,desiredProvisioningMode), 여기서 desiredProvisioningMode는 다음과 같습니다.

  • 직장 프로필: PROVISIONING_MODE_MANAGED_PROFILE
  • 완전 관리형: PROVISIONING_MODE_FULLY_MANAGED_DEVICE

프로비저닝을 전송하여 직장 프로필 또는 완전 관리형 프로비저닝 완료 setResult(RESULT_OK, Intent)를 통해 세부정보를 다시 설정 모든 활성 화면을 닫고 finish()

프로비저닝이 완료되면 DPC에서 새 인텐트를 실행할 수 있음 초기 정책 설정을 시행합니다. 직장 프로필 규정 준수 화면이 직장 프로필에 표시됩니다. DPC는 다음 사항을 충족해야 합니다. 사용자가 이스케이프 처리되어도 규정 준수 화면이 사용자에게 표시되도록 합니다. 몇 가지 옵션을 제공합니다.

DPC의 매니페스트 파일에서 다음에 대한 새 인텐트 필터를 선언합니다. ADMIN_POLICY_COMPLIANCE 드림 활동을 실행하고 BIND_DEVICE_ADMIN를 추가합니다. 임의의 앱이 활동을 시작하지 못하도록 하는 권한 예를 들면 다음과 같습니다.

<activity
    android:name=".PolicyComplianceActivity"
    android:label="@string/app_name"
    android:permission="android.permission.BIND_DEVICE_ADMIN">
    <intent-filter>
        <action android:name="android.app.action.ADMIN_POLICY_COMPLIANCE" />
        <category android:name="android.intent.category.DEFAULT"/>
    </intent-filter>
</activity>

DPC는 반드시 ACTION_PROFILE_PROVISIONING_COMPLETE 있습니다.

인텐트 필터와 연결된 활동은 가져올 getIntent() EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE 정책 준수를 실행한 후에는 ADMIN_POLICY_COMPLIANCEsetResult(RESULT_OK, Intent)를 반환하고 다음이 포함된 모든 활성 화면을 닫아야 합니다. finish()입니다.

완전 관리형 기기에서는 사용자가 홈 화면으로 돌아갑니다. 직장 프로필 기기 홈으로 돌아가기 전에 개인 계정을 추가하라는 메시지 표시 화면

직장 프로필 기기 ID 증명

제로터치 등록을 사용하여 프로비저닝된 직장 프로필의 관리자로 설정된 DPC IMEI 또는 제조업체의 기기 ID와 같은 보안 하드웨어 증명 기기 ID를 가져올 수 있음 일련번호입니다. 기기에 보안 하드웨어 (예: 신뢰할 수 있는 실행 환경 (TEE) 또는 보안 요소 (SE)) 및 기기 ID 지원 증명 및 제로터치 등록이 포함됩니다

직장 프로필의 관리 구성요소는 DevicePolicyManager.generateKeyPair()를 호출하여 idAttestationFlags 인수에 ID_TYPE_SERIAL, ID_TYPE_IMEI, ID_TYPE_MEID 중 하나 이상을 전달할 수 있습니다.

기기 ID 추출 및 검증에 관해 자세히 알아보려면 키 증명으로 하드웨어 지원 키 쌍 인증을 참조하세요.

직장 프로필 개선사항

새 API는 교차 프로필 캘린더 공개 상태 및 알 수 없는 소스의 앱 설치를 기기 전체에서 차단합니다.

직장 프로필, 기기 전반의 알 수 없는 소스

Google Play 이외의 출처 (또는 기타 신뢰할 수 있는 앱)에서 다운로드한 앱 알 수 없는 소스의 앱이라고 합니다. Android 10에서 직장 관리자는 프로필은 특정 사용자나 프로필이 알 수 없는 앱의 앱을 설치하지 못하도록 차단할 수 있습니다. 새 사용자 제한을 추가하여 기기 어디서나 DISALLOW_INSTALL_UNKNOWN_SOURCES_GLOBALLY 그러나 이 제한을 추가한 후에도 기기 사용자는 여전히 adb를 사용하여 앱 설치

사용자가 실수로 알 수 없는 소스의 앱을 설치하는 것을 방지하기 위해 Google은 Google Play가 필요하지 않으므로 이 사용자 제한을 추가하는 것이 좋습니다. 설치해야 합니다 이전 Android 버전을 지원하려면 Google Play의 관리 구성 값을 설정해야 합니다.

허용된 입력 기기를 직장 프로필로 제한

직장 프로필 관리자가 DevicePolicyManager.setPermittedInputMethods()를 호출하면 사용자는 직장 내에서 허용된 입력 방법만 사용할 수 있습니다. 전체 기기가 아닌 프로필을 사용하여 입력을 완전히 제어할 수 있습니다. 이러한 방법을 사용할 수 있습니다.

알림 없이 직장 프로필 삭제

WIPE_SILENTLY 추가됨 플래그를 DevicePolicyManager.wipeData()로 설정합니다. 이 플래그가 설정된 경우 직장 프로필이 삭제된 후에도 사용자에게 알림이 표시되지 않습니다. wipeData() 사용

완전 관리형 기기의 새로운 기능

Android 10에는 완전 관리형 기기를 위한 새로운 기능과 API가 도입됩니다. 수동 시스템 업데이트, QR 코드 및 NFC 프로비저닝 확장, 여기에는 EAP Wi-Fi 네트워크용 사용자 인증 정보 및 DNS over TLS 지원이 포함됩니다.

수동 시스템 업데이트 설치

Android 10에서 완전 관리형 기기의 관리자는 다음을 통해 시스템 업데이트를 설치할 수 있습니다. 시스템 업데이트 파일입니다. 수동 시스템 업데이트를 통해 IT 관리자는 다음 작업을 수행할 수 있습니다.

  • 업데이트를 광범위하게 설치하기 전에 소수의 기기에서 테스트합니다.
  • 대역폭이 제한된 네트워크에서 중복 다운로드를 방지합니다.
  • 설치를 조정하거나 사용되지 않는 동안에만 기기를 업데이트합니다.

먼저 IT 관리자가 지연된 시스템 업데이트 정책을 설정합니다. 자동 설치를 지연시킵니다 (필요한 경우). 그런 다음 기기의 DPC에서 installSystemUpdate()를 호출합니다. 기기 제조업체의 시스템 업데이트 파일 경로로 대체합니다. InstallSystemUpdateCallback를 전달합니다. 기기 이전에 발생한 오류를 보고하는 데 사용할 수 있는 객체 인스턴스가 다시 시작됩니다 문제가 발생하면 시스템에서 onInstallUpdateError()를 호출합니다. 오류 코드가 표시됩니다.

기기가 다시 시작되면 DPC에서 설치에 성공했는지 확인해야 합니다. 버전 API를 사용하여 Build.FINGERPRINT 업데이트가 IT 관리자에게 실패를 보고합니다.

EAP Wi-Fi 프로비저닝

Android 10에서는 기기 프로비저닝에 사용되는 QR 코드 및 NFC 데이터에 EAP 구성 및 사용자 인증 정보(인증서 포함) 사람이 QR 코드를 스캔하는 경우 NFC 태그를 탭하면 기기가 자동으로 로컬 Wi-Fi에 인증됩니다. 네트워크에 연결하고 추가 설정 없이 프로비저닝 프로세스를 시작합니다. 직접 입력해야 합니다.

EAP를 사용하여 Wi-Fi를 인증하려면 EXTRA_PROVISIONING_WIFI_SECURITY_TYPE 드림 extra를 "EAP" 값으로 바꿉니다. EAP 인증을 지정하려면 다음 프로비저닝 추가를 인텐트에 추가하세요.

비공개 DNS 지원

조직에서는 DNS over TLS를 사용할 수 있습니다. (Android 기기에서는 비공개 DNS라고 함) DNS 쿼리 유출을 방지하기 위해 내부 호스트 이름의 외부 호스트를 포함합니다 완전 관리형 기기의 관리자 구성요소 기기의 비공개 DNS 설정을 제어할 수 있습니다. 비공개 DNS 모드를 설정하려면 통화:

DPC가 이러한 메서드 중 하나를 호출할 때 다음과 같은 경우 시스템에서 PRIVATE_DNS_SET_NO_ERROR를 반환합니다. 호출이 성공했습니다. 호출이 실패하면 오류를 반환합니다.

기기에 비공개 DNS 모드 및 호스트 세트를 가져오려면 getGlobalPrivateDnsMode()를 호출합니다. 및 getGlobalPrivateDnsHost(). 사용자가 비공개 DNS 설정을 변경하지 못하도록 하려면 DISALLOW_CONFIG_PRIVATE_DNS 드림 사용자 제한입니다.

VPN 잠금 모드 예외

VPN 잠금 모드를 사용하면 DPC가 모든 네트워크를 차단할 수 있습니다. 사용하지 않는 트래픽을 VPN으로 라우팅됩니다 전체 권한의 관리자 관리 기기 및 직장 프로필의 잠금 모드에서 앱을 제외할 수 있습니다. 제외된 앱은 기본적으로 VPN을 사용하지만 다른 네트워크에 자동으로 연결됩니다. 네트워크에 연결할 수 있습니다. 명시적으로 제외된 앱 액세스를 거부함 VPN 다른 네트워크만 사용합니다.

앱을 잠금 모드에서 제외하려면 새 DevicePolicyManager 메서드 setAlwaysOnVpnPackage() 제외 앱 패키지 목록을 수락하는 API를 제공합니다. DPC가 추가하는 모든 앱 패키지 메서드가 호출될 때 기기에 설치되어야 합니다. 앱이 제거했다가 재설치한 경우 앱을 다시 제외해야 합니다. 앱 다운로드 이전에 잠금 모드에서 면제된 경우 getAlwaysOnVpnLockdownWhitelist()

완전 관리형 기기 및 직장 프로필의 관리자가 잠금 모드를 사용하도록 지원하기 위해 Android 10에서는 isAlwaysOnVpnLockdownEnabled() 드림 메서드를 사용하여 축소하도록 요청합니다.

새 위임 범위

Android 10에서는 DPC가 다른 기능에 위임할 수 있는 함수 목록을 사용할 수 있습니다. Android는 작업에 필요한 API 메서드를 범위를 참조하세요. 범위를 위임하려면 다음을 호출합니다. setDelegatedScopes() 드림 다음 범위 중 하나 이상을 전달해야 합니다.

Android 10에 새로운 클래스 도입 DelegatedAdminReceiver 드림 해야 합니다. 시스템은 이 broadcast receiver를 사용하여 DPC와 유사한 메시지를 전송합니다. 위임 앱에 콜백을 보냅니다. 네트워크 활동이 위임된 앱 로깅 및 인증서 선택이 이 클래스를 구현해야 합니다. 이 항목을 추가하려면 구성요소를 위임 앱에 추가하려면 다음 단계를 따르세요.

  1. DelegatedAdminReceiver의 서브클래스 추가 위임 앱에 추가합니다.
  2. 다음과 같이 <receiver>를 선언합니다. 앱 매니페스트에 각 콜백에 대한 인텐트-필터 작업을 추가합니다. 예를 들어 ACTION_NETWORK_LOGS_AVAILABLE 드림 또는 ACTION_CHOOSE_PRIVATE_KEY_ALIAS.
  3. BIND_DEVICE_ADMIN를 사용하여 broadcast receiver 보호 권한을 부여했는지 확인합니다.

다음 스니펫은 단일 위임 앱의 앱 매니페스트를 보여줍니다. 네트워크 로깅 및 인증서 선택을 모두 처리합니다.

<receiver android:name=".app.DelegatedAdminReceiver"
        android:permission="android.permission.BIND_DELEGATED_ADMIN">
    <intent-filter>
        <action android:name="android.app.admin.action.NETWORK_LOGS_AVAILABLE">
        <action android:name="android.app.action.CHOOSE_PRIVATE_KEY_ALIAS">
    </intent-filter>
    </receiver>

네트워크 활동 로깅

조직에서 멀웨어를 감지하고 추적할 수 있도록 DPC는 TCP 연결을 로깅할 수 있습니다. DNS 조회에 사용됩니다. Android 10에서는 완전 관리형 관리자 기기는 네트워크 로깅을 전문화된 앱에 위임할 수 있습니다.

시스템 종료 후 네트워크 로그를 검색합니다. 배치를 사용할 수 있게 하려면 위임 앱이 먼저 서브클래스로 분류해야 함 DelegatedAdminReceiver (앞에서 설명함) 서브클래스에서 onNetworkLogsAvailable() 드림 로그 가져오기의 안내에 따라 콜백을 수신할 수 있습니다.

위임 앱은 다음을 호출할 수 있습니다. DevicePolicyManager 메서드 (admin 인수에 null 전달):

로그 손실을 방지하려면 DPC에서 네트워크 로깅을 사용 설정하지 않아야 합니다. 다른 앱에 위임할 계획인 경우 위임 앱에서 다음을 사용 설정하고 네트워크 로그를 수집합니다. DPC에서 네트워크 로깅을 위임한 후에는 이후 onNetworkLogsAvailable() 있습니다.

위임 앱에서 네트워크 활동 로깅을 보고하는 방법을 알아보려면 다음을 참고하세요. 개발자 가이드 네트워크 활동 로깅

인증서 선택

Android 10의 관리자는 완전 관리형 기기, 직장 프로필, 보조 사용자가 모든 기기에서 인증서를 선택할 수 있습니다.

인증서 별칭을 선택하려면 먼저 위임 앱에서 서브클래스로 분류해야 합니다. DelegatedAdminReceiver 드림 (앞에서 설명함) 서브클래스에서 onChoosePrivateKeyAlias() 콜백 및 선호하는 별칭 반환 인증서를 선택하거나 사용자에게 인증서를 선택하라는 메시지를 표시하려면 null를 반환합니다.

기기 관리 정책의 지원 중단

Android 10에서는 앱 및 DPC가 레거시 기기를 적용하지 못하도록 차단 관리 정책으로 이동합니다. Google에서는 완전 관리형 기기 또는 직장 프로필로 전환할 수 있습니다 다음 정책으로 인해 SecurityException이 발생합니다. Android 10을 타겟팅하는 기기 관리자가 호출할 때:

를 통해 개인정보처리방침을 정의할 수 있습니다.

일부 애플리케이션은 소비자 기기 관리에 기기 관리자를 사용합니다. 대상 예를 들어 분실한 기기를 잠그고 완전 삭제할 수 있습니다. 이를 사용 설정하려면 다음을 실행해야 합니다. 정책은 계속 사용할 수 있습니다.

이 변경사항에 관한 자세한 내용은 기기 관리자를 참고하세요. 지원 중단에 따라 처리되었습니다.

앱의 새로운 기능

Android 10을 타겟팅하는 앱은 기기에 설정된 화면 잠금 복잡성을 쿼리할 수 있습니다. 을 숙지해야 합니다. 앱 통화 KeyChain API는 동작이 개선되고 VPN 앱에도 새로운 기능이 제공됩니다.

화면 잠금 품질 검사

Android 10부터 화면 잠금이 필요한 중요한 기능이 있는 앱 기기 또는 직장 프로필의 화면 잠금 복잡성을 쿼리할 수 있습니다. 화면 잠금이 더 강력하면 사용자를 시스템 화면 잠금 설정으로 안내할 수 있습니다 보안 설정을 업데이트할 수 있습니다

화면 잠금 품질을 검사하려면 다음을 수행하세요.

시스템 화면 잠금 설정을 실행하려면 ACTION_SET_NEW_PASSWORD 드림 추가 EXTRA_PASSWORD_COMPLEXITY 포함— 추가적인 인텐트에 지정된 복잡성을 충족하는 모든 API가 비활성화됩니다. 사용자가 할 수 있는 작업 사용 가능한 화면 잠금 옵션 중에서 선택하거나 화면을 종료합니다.

권장사항: 시스템을 실행하기 전에 앱에 메시지 표시하기 화면 잠금 페이지입니다. 앱이 다시 시작되면 다음을 호출합니다. DevicePolicyManager.getPasswordComplexity() 드림 다시 시도합니다. 더 강력한 화면 잠금이 필요한 경우 사용자에게 보안 설정을 업데이트하라는 메시지를 반복적으로 표시합니다.

VPN 앱의 HTTP 프록시 지원

Android 10에서는 VPN 앱에서 HTTP 프록시를 설정할 수 있습니다. 외부 IP 주소가 연결되어 있어야 합니다 HTTP 프록시를 추가하려면 VPN 앱에서 호스트 및 포트가 있는 ProxyInfo 인스턴스 통화 전 VpnService.Builder.setHttpProxy() 시스템과 많은 네트워킹 라이브러리가 이 프록시 설정을 사용하지만 시스템은 는 앱이 HTTP 요청을 프록시하도록 강제하지 않습니다.

HTTP 프록시 설정 방법을 보여주는 샘플 코드는 ToyVPN 샘플 앱입니다

VPN 서비스 모드

VPN 앱은 상시 사용 설정으로 인해 서비스가 실행 중인지 확인할 수 있습니다. VPN잠금 설정된 경우 모드가 활성화됨 새 메서드 기능을 사용하면 사용자 인터페이스를 조정하는 데 도움이 됩니다. 예를 들어 연결 유지 VPN이 수명 주기를 제어할 때 연결 해제 버튼을 사용 중지할 수 있음 서비스 중 하나입니다

VPN 앱은 다음 VpnService를 호출할 수 있습니다. 서비스에 연결한 후 메서드 호출 로컬 인터페이스를 설정하는 것입니다.

  • isAlwaysOn()(으)로 시스템이 연결 유지 VPN으로 인해 서비스를 시작했는지 확인
  • isLockdownEnabled() 드림 시스템에서 VPN을 사용하지 않는 연결을 차단하는지 확인

상시 사용 설정 상태는 서비스가 실행되는 동안 동일하게 유지되지만 잠금 모드 상태가 변경될 수 있습니다

키체인 향상

Android 10에는 KeyChain API

앱이 KeyChain.choosePrivateKeyAlias()(Android 10 이상)를 호출하는 경우 기기는 사용자가 선택할 수 있는 인증서 목록을 키 알고리즘이 필요합니다.

예를 들어 TLS 서버에서 인증서 요청을 메시지를 TLS 핸드셰이크의 일부로 제공하고 브라우저가 KeyChain.choosePrivateKeyAlias(), 인증서 선택 메시지만 발급기관 매개변수와 일치하는 옵션이 포함됩니다. 일치 옵션이 없는 경우 기기에 설치된 인증서가 없는 경우 선택 프롬프트가 사용자에게 표시되지 않습니다.

또한 KeyChain는 더 이상 기기에 화면 잠금이 있어야 키 또는 CA 인증서를 사용할 수 있습니다. 가져온 것입니다.