Android용 Intune 앱 SDK - 앱 구성

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

참고

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

6단계: App Configuration

스테이지 Goals

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

Android에서 App Configuration

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

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

Android의 Built-In 앱 구성

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

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

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

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

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

이러한 기능이 Google의 API를 사용하여 관리되는 Google Play 앱에 통합되면 디바이스 구성 프로필을 사용하여 Intune에서 이러한 설정을 구성할 수 있습니다. 자세한 내용은 Android Enterprise 디바이스 설정 - 애플리케이션을 참조하세요.

앱 구현 세부 정보는 Android 개발자 설명서 - 위임 범위를 참조하세요.

Intune 앱 SDK 앱 구성

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

참고

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

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

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

이 가이드는 이 질문에 답변할 수 없습니다. 사용자와 팀만 관리 중일 때 앱을 더 가치 있게 만드는 기능을 알고 있습니다.

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

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

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

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

내 앱이 관리 디바이스 또는 관리되는 앱에 대한 구성을 지원해야 하나요?

관리되는 디바이스 및 관리되는 앱에 적용되는 구성에 적용되는 구성은 상호 배타적이지 않습니다. 지원할 구성 유형(또는 둘 다)을 결정할 때 사용자의 요구 사항을 고려해야 합니다.

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

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

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

SDK에서 앱 구성 검색

애플리케이션은 MAMAppConfigManager 및 MAMAppConfig 클래스를 사용하여 두 채널에서 구성을 받을 수 있습니다.

MAMAppConfigManager configManager = MAMComponents.get(MAMAppConfigManager.class);
String identity = "user@contoso.com"
MAMAppConfig appConfig = configManager.getAppConfig(identity);
String fooValue = appConfig.getStringForKey("foo", MAMAppConfig.StringQueryType.Any);

MAM 등록 계정이 없지만 앱에서 Android Enterprise 구성 값(특정 계정의 대상이 되지 않음)을 검색하려는 경우 또는 빈 문자열을 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, 여기서 min 및 max는 사전순으로 정렬된 목록에서 가져옵니다.

종료 조건

Intune은 앱에 앱 구성 정책 값을 전달하는 역할을 담당합니다. 나중에 앱은 이러한 값을 사용하여 앱 내에서 동작 또는 UI를 변경해야 합니다. 철저한 엔드 투 엔드 테스트는 두 구성 요소를 모두 포함해야 합니다.

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

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

앱 구성은 앱별로 달라지므로 앱이 각 앱 구성 설정에 대한 동작 또는 UI를 변경하는 방법을 확인하는 방법만 알고 있습니다.

테스트할 때 다음을 고려합니다.

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

다음 단계

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

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