Android용 Intune App SDK - App Configuration

Android용 Microsoft Intune 앱 SDK를 사용하면 Intune 앱 보호 정책(MAM 정책이라고도 함)을 네이티브 Java/Kotlin Android 앱에 통합할 수 있습니다. Intune 관리 애플리케이션은 Intune 앱 SDK와 통합된 애플리케이션입니다. Intune 관리자는 Intune에서 앱을 적극적으로 관리할 때 Intune 관리 앱에 앱 보호 정책을 쉽게 배포할 수 있습니다.

참고

이 가이드는 여러 단계로 나뉩니다. 먼저 1단계: 통합 계획을 검토합니다.

6단계: App Configuration

스테이지 목표

  • Android의 애플리케이션 구성 옵션에 대해 알아봅니다.
  • 애플리케이션에서 추가할 구성(있는 경우)을 결정합니다.
  • Intune 앱 SDK 애플리케이션 구성 API를 통합합니다.
  • 사용자 지정 애플리케이션 구성에 대한 충돌 해결 논리를 구현합니다.

Android의 App Configuration

관리되는 구성 또는 응용 프로그램 제한이라고도 하는 응용 프로그램 구성은 관리되는 설정에서 사용할 때 관리자가 앱 환경을 추가적으로 제어할 수 있도록 앱에 추가할 수 있는 응용 프로그램별 개발자 정의 설정입니다. 예를 들어 앱이 브라우저인 경우 관리자가 책갈피를 미리 설정하거나, 특정 웹 페이지를 차단하거나, 시크릿 모드를 비활성화할 수 있는 구성을 추가하도록 선택할 수 있습니다. 애플리케이션 구성은 완전히 선택 사항이지만 앱의 관리 환경을 향상시키는 강력한 도구입니다.

자세한 내용은 Microsoft Intune에 대한 앱 구성 정책을 참조하세요.

Android의 Built-In 앱 구성

Android에는 관리되는 구성이라고 하는 앱 구성이 플랫폼에 내장되어 있습니다. 이러한 구성은 Intune 앱 SDK에 종속되지 않으며 Intune 앱 SDK를 통합하지 않는 앱에서 사용하도록 설정할 수 있습니다. 이러한 구성은 Google의 Android Enterprise 모드 중 하나로 관리되는 장치에서 애플리케이션을 사용하는 경우에만 적용됩니다. Microsoft Intune에서 이러한 Android 엔터프라이즈 모드를 설정하는 방법에 대한 자세한 내용은 Android 디바이스 등록을 참조하세요. 관리자는 Microsoft Intune에서 관리되는 Android Enterprise 장치에 대해 이러한 애플리케이션 구성 정책을 구성할 수 있습니다.

앱은 Android RestrictionsManager 또는 Intune 앱 SDK를 통해 이러한 관리자 구성 값을 검색할 수 있습니다. 자세한 내용은 SDK에서 앱 구성 검색 을 참조하세요.

관리형 Google Play 앱에 대한 위임된 범위

앱 개발자 는 위임된 범위를 사용하여 관리되는 Google Play 앱에 대한 향상된 권한을 통합할 수 있습니다. 위임된 범위는 관리형 Google Play 앱에 다음과 같은 기능을 제공합니다.

  • 다른 앱이 인증서를 설치 및 관리하도록 허용
  • 앱이 Android 보안 로그에 액세스하도록 허용
  • 앱이 Android 네트워크 활동 로그에 액세스하도록 허용

이러한 기능이 Google의 API를 사용하여 관리되는 Google Play 앱에 통합되면 디바이스 구성 프로필을 사용하여 Intune에서 이러한 설정을 구성할 수 있습니다. 자세한 내용은 Android 엔터프라이즈 장치 설정 -> 회사 소유 > 응용 프로그램을 참조하세요.

앱 구현에 대한 자세한 내용은 Android 개발자 설명서 - 위임 범위를 참조하세요.

Intune 앱 SDK 앱 구성

Intune 앱 SDK는 Android Enterprise 관리 구성과 별도로 앱 구성을 제공하는 다른 메커니즘을 지원합니다. 이러한 구성은 Microsoft Intune 전용이며 Intune App SDK를 통합한 앱에만 적용됩니다. 그러나 이러한 구성은 Android Enterprise 관리가 있는 디바이스에만 국한되지 않습니다. 관리자는 Microsoft Intune에서 관리되는 앱에 대해 이러한 애플리케이션 구성 정책을 구성할 수 있습니다.

참고

Graph API를 사용하여 앱 구성을 구성할 수도 있습니다. 자세한 내용은 MAM 대상 구성에 대한 Graph API 설명서를 참조하세요.

앱은 Intune 앱 SDK를 통해 이러한 관리자 구성 값을 검색해야 합니다. 자세한 내용은 SDK에서 앱 구성 검색 을 참조하세요.

앱에 어떤 구성을 추가해야 하나요?

이 가이드는 이 질문에 답할 수 없습니다. 관리 시 어떤 기능이 앱 가치를 높이는지 알고 있는 사람은 귀하와 귀하의 팀뿐입니다.

다음 질문은 토론을 안내하고 앱에 추가할 구성을 표시하는 데 도움이 될 수 있습니다.

  • 현재 앱이 제공하는 기능은 무엇인가요?
    • 관리 중에 이러한 기능을 사용하지 않도록 설정하는 것이 가치가 있습니까?
    • 관리하는 동안 이러한 기능을 변경하는 것이 가치가 있습니까?
  • 현재 앱이 어떻게 관리되고 있나요?
    • 관리자가 사용자를 대신하여 미리 구성할 수 있는 옵션이 있나요?
    • 관리자나 최종 사용자가 관리되는 시나리오에만 수행하는 작업이 있나요?
    • 관리되는 사용자가 전체 사용자 모집단에 적합하지 않을 수 있는 기능을 요청했습니까?

앱에 추가하기로 결정한 모든 구성에 대해 다음 세 가지 항목을 정의해야 합니다.

  • - 이 문자열은 다른 설정에서 이 설정을 고유하게 식별합니다. 관리자가 구성하므로 사람이 읽을 수 있어야 합니다.
  • 유형 - 이 설정의 데이터 형식은 무엇입니까? 문자열, 부울, 정수, 배열 등입니까?
  • 충돌 해결 전략 - 관리자가 동일한 키에 대해 여러 값을 구성할 경우 앱이 어떻게 응답할 것인가? 앞서 언급한 브라우저 예에서 책갈피 목록은 모든 값을 결합할 수 있지만 시크릿 모드를 사용하지 않도록 설정하는 설정은 충돌하는 값이 "true"인 경우 사용하지 않도록 선택할 수 있습니다.

앱에서 관리되는 장치 또는 관리되는 앱에 대한 구성을 지원해야 하나요?

관리되는 장치에 적용되는 구성과 관리되는 앱에 적용되는 구성은 상호 배타적인 것이 아닙니다. 지원할 구성 유형(또는 둘 다)을 결정할 때 사용자의 요구 사항을 고려해야 합니다.

구성 영역 관리되는 장치에 대한 구성 관리되는 앱 구성
장치 적용 가능성 Android Enterprise 장치 관리 아래의 장치에만 적용됩니다. 앱이 Intune 앱 SDK를 통합하고 회사 포털이 설치되어 있는 경우 모든 디바이스에 적용됩니다.
플랫폼 Android만 해당, Google 서비스가 있는 장치로 제한됨 iOS 앱 SDK는 동일한 구성을 지원합니다. 개발자는 일관된 플랫폼 간 환경을 위해 이러한 키를 공유할 수 있습니다.
적용 가능성 모든 EMM Microsoft Intune 독점
스키마 검색 가능성 스키마는 앱이 Play에 업로드된 후 공개적으로 사용할 수 있습니다. 개발자 제어 하에 있는 스키마 검색 가능성

두 가지 유형의 앱 구성은 모두 키-값 쌍을 사용합니다. Microsoft Intune은 이러한 구성의 내용을 검사하지 않고 관리자가 구성한 값을 앱에 전달하기만 합니다.

Intune 앱 SDK 앱 구성 API에는 두 채널의 관리자 구성 값이 포함됩니다. 앱에서 두 가지 유형의 앱 구성을 모두 지원하는 경우 아래 설명된 대로 API를 사용합니다.

SDK에서 앱 구성 검색

응용 프로그램은 MAMAppConfigManagerMAMAppConfig 클래스를 사용하여 두 채널에서 구성을 수신할 수 있습니다.

MAMAppConfigManager configManager = MAMComponents.get(MAMAppConfigManager.class);
String oid = <OID of user account>;
MAMAppConfig appConfig = configManager.getAppConfigForOID(oid);
String fooValue = appConfig.getStringForKey("foo", MAMAppConfig.StringQueryType.Any);

MAM 등록 계정이 없지만 앱에서 여전히 Android Enterprise 구성 값(특정 계정을 대상으로 하지 않음)을 검색하려는 경우 OID에 대해 빈 문자열을 null 전달할 수 있습니다.

참고

앱에서 Intune 앱 SDK를 사용하여 Android Enterprise 관리 구성을 검색하고 회사 포털이 설치되지 않은 경우 이러한 구성은 빈 ID를 통해 MAMUserNotification 제공됩니다.

또한 앱은 특정 키로 쿼리하는 대신 원시 데이터를 키-값 쌍 집합 목록으로 요청할 수도 있습니다.

List<Map<String, String>> getFullData()

또한 앱은 새 앱 구성 데이터를 사용할 수 있음을 앱에 알리는 알림에 등록 REFRESH_APP_CONFIG 할 수 있습니다. 앱이 앱 구성 데이터를 캐시하는 경우 이 알림을 등록하고 처리기에서 캐시된 모든 데이터를 무효화 해야 합니다 . 자세한 내용은 SDK의 알림 등록을 참조하세요.

충돌 해결

여러 앱 구성 정책이 동일한 앱 및 계정을 대상으로 하는 경우 동일한 키에 사용할 수 있는 여러 충돌하는 값이 있을 수 있습니다.

참고

MAM 앱 구성에 설정된 값은 Android Enterprise 구성에 설정된 동일한 키로 값을 재정의합니다.

관리자가 동일한 키에 대해 충돌하는 값을 구성하는 경우 Intune은 이 충돌을 자동으로 해결할 방법이 없으며 모든 값을 앱에서 사용할 수 있도록 합니다. 이러한 유형의 충돌은 관리자가 동일한 키를 가진 여러 앱 구성 세트를 동일한 계정을 포함하는 여러 그룹에 대상으로 지정하는 경우에 발생할 수 있습니다.

앱은 MAMAppConfig 개체에서 지정된 키에 대한 모든 값을 요청할 수 있으므로 다음과 같이 고유한 비즈니스 로직으로 충돌을 resolve 할 수 있습니다.

List<Boolean> getAllBooleansForKey(String key)
List<Long> getAllIntegersForKey(final String key)
List<Double> getAllDoublesForKey(final String key)
List<String> getAllStringsForKey(final String key)

또는 기본 제공 충돌 해결 전략 중 하나로 값을 선택하도록 요청할 수 있습니다.

Boolean getBooleanForKey(String key, BooleanQueryType queryType)
Long getIntegerForKey(String key, NumberQueryType queryType)
Double getDoubleForKey(String key, NumberQueryType queryType)
String getStringForKey(String key, StringQueryType queryType)

사용 가능한 기본 제공 충돌 해결 전략은 다음과 같습니다.

  • BooleanQueryType.Any, BooleanQueryType.And, BooleanQueryType.Or
  • NumberQueryType.Any, NumberQueryType.Min, NumberQueryType.Max
  • StringQueryType.Any, , StringQueryType.Min, StringQueryType.Max, 여기서 최소값과 최대값은 사전순으로 정렬된 목록에서 가져온 값입니다.

종료 조건

Intune은 앱 구성 정책 값을 앱에 전달합니다. 나중에 앱은 이러한 값을 사용하여 앱 내부의 동작 또는 UI를 변경해야 합니다. 철저한 종단 간 테스트는 두 구성 요소를 모두 다루어야 합니다.

Intune이 앱 구성 정책을 제대로 제공하고 있는지 확인하려면 다음을 수행합니다.

  1. 앱을 대상으로 지정하고 테스트 계정에 배포하는 앱 구성 정책을 구성합니다.
  2. 테스트 계정을 사용하여 앱에 로그인합니다.
  3. 앱을 탐색하여 's 또는 getFullData를 호출MAMAppConfigManager하는 각 코드 경로를 실행합니다.getAppConfigForOID
    • 에 대한 getAppConfigForOID 호출 결과를 기록하는 것은 전달된 설정의 유효성을 검사하는 간단한 방법입니다. 그러나 관리자는 앱 구성 설정에 대한 데이터를 입력할 수 있으므로 비공개 사용자 데이터를 기록하지 않도록 주의하세요.
  4. 적용된 앱 구성 정책 유효성 검사를 참조하세요.

앱 구성은 앱별로 다르기 때문에 앱이 각 앱 구성 설정의 동작 또는 UI를 변경하는 방법을 확인하는 방법은 사용자만 알고 있습니다.

테스트할 때는 다음 사항을 고려하세요.

  • 앱에서 지원하는 모든 값으로 서로 다른 테스트 앱 구성 정책을 만들어 모든 시나리오가 적용되도록 합니다.
  • 각 설정에 대해 서로 다른 값으로 여러 테스트 앱 구성 정책을 만들어 앱의 충돌 해결 논리의 유효성을 검사합니다.
  • 앱이 알림에 REFRESH_APP_CONFIG 등록된 경우 앱이 활성 사용 상태일 때 앱 구성 정책을 업데이트하고, 정책이 업데이트될 때까지 기다렸고, 이 코드 경로가 제대로 실행되었는지 확인합니다.
  • 앱에서 두 가지 유형의 앱 구성을 모두 지원하는 경우 구현이 에 대한 올바른 ID를 제공하는지 확인하기 위해 두 시나리오를 모두 테스트합니다.getAppConfigForOID

다음 단계

위의 모든 종료 조건 을 완료하면 이제 앱이 앱 구성 정책과 함께 성공적으로 통합됩니다.

후속 섹션인 7단계: 앱 참여 기능은 앱에서 원하는 앱 보호 정책 지원에 따라 필요할 수도 있고 필요하지 않을 수도 있습니다. 이러한 기능 중 앱에 적용되는지 확실하지 않은 경우 SDK 통합을 위한 주요 결정을 다시 검토하세요.