다음을 통해 공유


Intune 앱 래핑 도구를 사용하여 앱 보호 정책에 대한 Android 앱 준비

Android용 Microsoft Intune 앱 래핑 도구를 사용하여 앱 자체의 코드를 변경하지 않고 앱의 기능을 제한하여 사내 Android 앱의 동작을 변경합니다.

이 도구는 PowerShell에서 실행되고 Android 앱 주위에 래퍼를 만드는 Windows 명령줄 애플리케이션입니다. 앱이 래핑된 후 Intune에서 모바일 애플리케이션 관리 정책을 구성하여 앱의 기능을 변경할 수 있습니다.

도구를 실행하기 전에 앱 래핑 도구를 실행하기 위한 보안 고려 사항을 검토합니다. 도구를 다운로드하려면 GitHub의 Android용 Microsoft Intune 앱 래핑 도구 로 이동합니다.

참고

앱에서 Intune 앱 래핑 도구를 사용하는 데 문제가 있는 경우 GitHub에 대한 지원 요청을 제출합니다.

앱 래핑 도구를 사용하기 위한 필수 구성 요소 충족

  • 앱에서 최신 라이브러리를 사용해야 합니다.

  • 앱이 Google Play 요구 사항과 호환되어야 합니다.

  • 앱이 복잡한 경우 Android용 Intune 앱 SDK와 통합해야 합니다.

  • Windows 10 이상을 실행하는 Windows 컴퓨터에서 앱 래핑 도구를 실행해야 합니다.

  • 입력 앱은 파일 확장 .apk 및 를 사용하는 유효한 Android 애플리케이션 패키지여야 합니다.

    • 암호화할 수 없습니다.
    • 이전에 Intune 앱 래핑 도구에 의해 래핑되지 않았어야 합니다.
    • Android 9.0 이상용으로 작성해야 합니다.

    참고

    입력 앱이 Android 앱 번들(.aab)인 경우 Intune 앱 래핑 도구를 사용하기 전에 APK로 변환해야 합니다. 자세한 내용은 AAB(Android 앱 번들)를 APK로 변환을 참조하세요. 2021년 8월부터 새로운 프라이빗 앱을 Google Play 스토어에 APK로 게시할 수 있습니다.

  • 앱을 회사 또는 회사에서 개발해야 합니다. Google Play 스토어에서 사용할 수 있는 앱에서는 이 도구를 사용할 수 없습니다. 여기에는 Google Play 스토어에서 앱을 다운로드하거나 가져오는 것이 포함됩니다.

  • 앱 래핑 도구를 실행하려면 최신 버전의 Java 런타임 환경을 설치한 다음 Windows 환경 변수에서 Java 경로 변수가 C:\ProgramData\Oracle\Java\javapath로 설정되었는지 확인해야 합니다. 자세한 도움말은 Java 설명서를 참조하세요.

    참고

    경우에 따라 32비트 버전의 Java로 인해 메모리 문제가 발생할 수 있습니다. 64비트 버전을 설치하는 것이 좋습니다.

  • Android는 모든 앱 패키지(.apk)에 서명해야 합니다. 기존 인증서 및 전체 서명 인증서 지침을 다시 사용하려면 서명 인증서 다시 사용 및 앱 래핑을 참조하세요. Intune 앱 래핑 도구를 사용하여 .apk 파일을 래핑한 후에는 Google에서 제공하는 Apksigner 도구를 사용하는 것이 좋습니다. 이렇게 하면 앱이 최종 사용자 디바이스에 도달하면 Android 표준에서 제대로 시작할 수 있습니다.

  • (선택 사항) 래핑 중에 추가된 Intune MAM SDK 클래스로 인해 앱이 DEX(Dalvik 실행 파일) 크기 제한에 도달할 수 있습니다. DEX 파일은 Android 앱 컴파일의 일부입니다. Intune 앱 래핑 도구는 최소 API 수준이 21 이상인 앱에 대해 래핑하는 동안 DEX 파일 오버플로를 자동으로 처리합니다( v. 1.0.2501.1 기준). 최소 API 수준이 21인 앱의 < 경우 래퍼의 -UseMinAPILevelForNativeMultiDex 플래그를 사용하여 최소 API 수준을 늘리는 것이 가장 좋습니다. 앱의 최소 API 수준을 늘릴 수 없는 고객의 경우 다음 DEX 오버플로 해결 방법을 사용할 수 있습니다. 특정 조직에서는 앱을 컴파일하는 사용자(예: 앱 빌드 팀)와 함께 작업해야 할 수 있습니다.

    • ProGuard를 사용하여 앱의 기본 DEX 파일에서 사용되지 않는 클래스 참조를 제거합니다.
    • Android Gradle 플러그 인의 v3.1.0 이상을 사용하는 고객의 경우 D8 dexer를 사용하지 않도록 설정합니다.

Intune 앱 래핑 도구를 사용하여 Android 애플리케이션을 얼마나 자주 다시 래핑해야 하나요?

애플리케이션을 다시 래프해야 하는 주요 시나리오는 다음과 같습니다.

  • 애플리케이션 자체가 새 버전을 릴리스했습니다. 이전 버전의 앱이 래핑되어 Microsoft Intune 관리 센터에 업로드되었습니다.

  • Android용 Intune 앱 래핑 도구는 주요 버그 수정 또는 새로운 특정 Intune 애플리케이션 보호 정책 기능을 사용하도록 설정하는 새 버전을 릴리스했습니다. 이는 Android용 Microsoft Intune 앱 래핑 도구에 대한 GitHub 리포지토리를 통해 6~8주마다 발생합니다.

다시 래핑에 대한 몇 가지 모범 사례는 다음과 같습니다.

앱 래핑 도구 설치

  1. GitHub 리포지토리에서 Android용 Intune 앱 래핑 도구에 대한 설치 파일 InstallAWT.exe Windows 컴퓨터에 다운로드합니다. 설치 파일을 엽니다.

  2. 사용권 계약에 동의한 다음 설치를 완료합니다.

도구를 설치한 폴더를 확인합니다. 기본 위치는 C:\Program Files (x86)\Microsoft Intune 모바일 애플리케이션 관리\Android\앱 래핑 도구입니다.

앱 래핑 도구 실행

중요

Intune은 Intune 앱 래핑 도구에 대한 업데이트를 정기적으로 릴리스합니다. 정기적으로 Android용 Intune 앱 래핑 도구 에서 업데이트를 확인하고 소프트웨어 개발 릴리스 주기에 통합하여 앱이 최신 앱 보호 정책 설정을 지원하는지 확인합니다.

  1. 앱 래핑 도구를 설치한 Windows 컴퓨터에서 PowerShell 창을 엽니다.

  2. 도구를 설치한 폴더에서 앱 래핑 도구 PowerShell 모듈을 가져옵니다.

    Import-Module .\IntuneAppWrappingTool.psm1
    
  3. 다음 사용 구문이 있는 invoke-AppWrappingTool 명령을 사용하여 도구를 실행합니다.

    Invoke-AppWrappingTool [-InputPath] <String> [-OutputPath] <String> [<CommonParameters>]
    

    다음 표에서는 invoke-AppWrappingTool 명령의 속성을 자세히 설명합니다.

속성 정보
-InputPath<문자열> 원본 Android 앱(.apk)의 경로입니다.
-OutputPath<문자열> 출력 Android 앱의 경로입니다. 이 경로가 InputPath와 동일한 디렉터리 경로인 경우 패키징이 실패합니다.
<CommonParameters> (선택 사항) 명령은 자세한 정보 표시 및 디버그와 같은 일반적인 PowerShell 매개 변수를 지원합니다.

예제:

PowerShell 모듈을 가져옵니다.

Import-Module "C:\Program Files (x86)\Microsoft Intune Mobile Application Management\Android\App Wrapping Tool\IntuneAppWrappingTool.psm1"

네이티브 앱 HelloWorld.apk 앱 래핑 도구를 실행합니다.

invoke-AppWrappingTool -InputPath .\app\HelloWorld.apk -OutputPath .\app_wrapped\HelloWorld_wrapped.apk -Verbose

래핑된 앱과 로그 파일이 생성되어 지정한 출력 경로에 저장됩니다.

서명 인증서 다시 사용 및 앱 래핑

Android를 사용하려면 Android 디바이스에 설치하려면 모든 앱에 유효한 인증서로 서명해야 합니다.

래핑된 앱은 기존 서명 도구를 사용하여 래핑 한 후 서명할 수 있습니다(래핑하기 전에 앱의 모든 서명 정보는 삭제됨). 가능하면 빌드 프로세스 중에 이미 사용된 서명 정보를 래핑하는 동안 사용해야 합니다. 특정 조직에서는 키 저장소 정보(예: 앱 빌드 팀)를 소유한 사용자와 함께 작업해야 할 수 있습니다.

이전 서명 인증서를 사용할 수 없거나 이전에 앱을 배포하지 않은 경우 Android 개발자 가이드의 지침에 따라 새 서명 인증서를 만들 수 있습니다.

이전에 다른 서명 인증서를 사용하여 앱을 배포한 경우 업그레이드 후 앱을 Intune에 업로드할 수 없습니다. 앱이 빌드된 인증서와 다른 인증서로 서명하면 앱 업그레이드 시나리오가 끊어집니다. 따라서 앱 업그레이드를 위해 새 서명 인증서를 유지 관리해야 합니다.

앱 래핑 도구를 실행하기 위한 보안 고려 사항

잠재적인 스푸핑, 정보 공개 및 권한 상승 공격을 방지하려면 다음을 수행합니다.

  • LOB(입력 LOB) 애플리케이션과 출력 애플리케이션이 앱 래핑 도구가 실행 중인 동일한 Windows 컴퓨터에 있는지 확인합니다.

  • 도구가 실행 중인 동일한 컴퓨터에서 출력 애플리케이션을 Intune으로 가져옵니다. Java keytool에 대한 자세한 내용은 keytool을 참조하세요.

  • 출력 애플리케이션과 도구가 UNC(유니버설 명명 규칙) 경로에 있고 동일한 컴퓨터에서 도구 및 입력 파일을 실행하지 않는 경우 IPsec(인터넷 프로토콜 보안) 또는 SMB(서버 메시지 블록) 서명을 사용하여 환경을 보호하도록 설정합니다.

  • 애플리케이션이 신뢰할 수 있는 원본에서 제공되는지 확인합니다.

  • 래핑된 앱이 있는 출력 디렉터리를 보호합니다. 출력에 사용자 수준 디렉터리를 사용하는 것이 좋습니다.

AAB(Android 앱 번들)를 APK로 변환

Intune 앱 래핑 도구는 현재 APK 입력만 지원합니다. Android 앱 번들은 먼저 도구와 함께 사용하기 위해 APK로 변환되어야 합니다.

Android 앱 번들은 Google의 명령줄 도구 bundletool를 사용하여 APK로 변환할 수 있습니다. 의 최신 버전은 bundle-tool Google의 bundletool GitHub 리포지토리에서 다운로드할 수 있습니다.

bundletool 는 다음 명령을 사용하여 Intune 앱 래핑 도구에 사용할 단일 유니버설 APK를 생성하는 데 사용할 수 있습니다.

bundletool build-apks --bundle=input.aab --mode=universal --output=input.apks

.apks 출력 파일은 단일 범용 APK 파일을 포함하는 ZIP 보관 파일입니다. 보관 파일의 압축을 풀고 해당 APK 파일을 Intune 앱 래핑 도구에 대한 입력으로 사용합니다.

참고 항목