Android 用 Intune アプリ SDK - アプリ構成

Android 用 Microsoft Intune App SDK を使用すると、Intune アプリ保護ポリシー (APP または MAM ポリシーとも呼ばれます) をネイティブの Java/Kotlin Android アプリに組み込むことができます。 Intune で管理されるアプリケーションは、Intune App SDK と統合されたアプリケーションです。 Intune 管理者は、Intune がアプリをアクティブに管理するときに、Intune で管理されるアプリにアプリ保護ポリシーを簡単に展開できます。

注:

このガイドは、いくつかの異なるステージに分かれています。 まず、「 ステージ 1: 統合を計画する」を確認します。

ステージ 6: App Configuration

ステージ Goals

  • Android でのアプリケーション構成オプションについて説明します。
  • アプリケーションが追加する構成 (存在する場合) を決定します。
  • Intune App SDK アプリケーション構成 API を統合します。
  • カスタム アプリケーション構成の競合解決ロジックを実装します。

Android でのApp Configuration

アプリケーション構成 (マネージド構成またはアプリケーション制限とも呼ばれます) は、アプリに追加できるアプリケーション固有の開発者定義の設定であり、管理者が管理設定で使用するときにアプリ エクスペリエンスを制御できます。 たとえば、アプリがブラウザーの場合は、管理者がブックマークを事前に設定したり、特定の Web ページをブロックしたり、シークレット モードを無効にしたりできる構成を追加できます。 アプリケーション構成は、アプリの管理エクスペリエンスを強化するための、完全に省略可能ですが強力なツールです。

詳細については、「Microsoft Intuneのアプリ構成ポリシー」を参照してください。

Android の Built-In アプリ構成

Android には、マネージド構成と呼ばれるプラットフォームにアプリ 構成が組み込まれています。 これらの構成は Intune App SDK に依存せず、Intune App SDK を統合していないアプリで有効にすることができます。 これらの構成は、Google の Android Enterprise モードのいずれかで管理されているデバイスでアプリケーションが使用されている場合にのみ適用されます。 Microsoft Intuneでこれらの Android Enterprise モードを設定する方法の詳細については、「Android デバイスの登録」を参照してください。 管理者は、Microsoft Intuneで管理対象の Android Enterprise デバイスに対してこれらのアプリケーション構成ポリシーを構成できます。

アプリは、 Android RestrictionsManager または Intune App SDK を使用して、これらの管理者が構成した値を取得できます。 詳細については、「 SDK からのアプリ構成の取得 」を参照してください。

マネージド Google Play アプリの委任されたスコープ

アプリ開発者は 、委任されたスコープを 使用して、マネージド Google Play アプリの強化されたアクセス許可を統合できます。 委任されたスコープは、マネージド Google Play アプリに次の機能を提供します。

  • 他のアプリに証明書のインストールと管理を許可する
  • アプリによる Android セキュリティ ログへのアクセスを許可する
  • アプリによる Android ネットワーク アクティビティ ログへのアクセスを許可する

これらの機能が Google の API を使用してマネージド Google Play アプリに統合されたら、デバイス構成プロファイルを使用して Intune でこれらの設定を構成できます。 詳細については、「 Android Enterprise デバイスの設定 - アプリケーション」を参照してください。

アプリの実装の詳細については、「 Android 開発者向けドキュメント - 委任スコープ」を参照してください。

Intune App SDK アプリの構成

Intune App SDK では、Android Enterprise マネージド構成とは別に、アプリ構成を配信するための別のメカニズムがサポートされています。 これらの構成はMicrosoft Intune専用であり、Intune App SDK を統合したアプリにのみ適用されます。 ただし、これらの構成は、Android Enterprise 管理を使用するデバイスに限定されるわけではありません。 管理者は、Microsoft Intuneでマネージド アプリに対してこれらのアプリケーション構成ポリシーを構成できます。

注:

アプリ構成は、Graph APIを使用して構成することもできます。 詳細については、MAM ターゲット構成のGraph APIドキュメントを参照してください

アプリは、Intune App SDK を使用して、これらの管理者が構成した値を取得する必要があります。 詳細については、「 SDK からのアプリ構成の取得 」を参照してください。

アプリに追加する必要がある構成は何ですか?

このガイドでは、この質問に回答できません。 管理下にある場合にアプリの価値を高めるとき、どの機能がアプリの価値を高めっているのかは、自分とチームだけが把握しています。

次の質問は、ディスカッションをガイドし、アプリに追加する可能性のある構成を明らかにするのに役立つ場合があります。

  • アプリは現在どのような機能を提供していますか?
    • 管理中にこれらの機能のいずれかを無効にすることに価値はありますか?
    • 管理中にこれらの機能を変更する際に価値はありますか?
  • 現在、アプリはどのように管理下で使用されていますか?
    • 管理者がユーザーに代わって事前に構成できるオプションはありますか?
    • 管理者またはエンド ユーザーが実行するアクションは、マネージド シナリオに限定されていますか?
    • マネージド ユーザーが、ユーザーの母集団全体に適していない可能性のある機能を要求しましたか?

アプリに追加する構成ごとに、次の 3 つの項目を定義する必要があります。

  • キー - この文字列は、他の設定からこの設定を一意に識別します。 管理者によって構成されるため、人間が判読できる必要があります。
  • - この設定のデータ型は何ですか? それは文字列、ブール値、整数、配列などですか?
  • 競合解決戦略 - 管理者が同じキーに対して複数の値を構成した場合、アプリはどのように応答しますか? 前述のブラウザーの例では、ブックマーク リストはすべての値を組み合わせることができますが、incognito を無効にする設定は、競合する値のいずれかが "true" の場合に無効にすることを選択できます。

アプリでマネージド デバイスまたはマネージド アプリの構成をサポートする必要がありますか?

マネージド デバイスに適用される構成と、マネージド アプリに適用される構成は 相互に排他的ではありません。 サポートする構成の種類 (または両方) を決定するときは、ユーザーのニーズを考慮する必要があります。

構成項目 マネージド デバイスの構成 Managed Apps の構成
デバイスの適用性 Android Enterprise デバイス管理下のデバイスにのみ適用されます。 アプリが Intune App SDK を統合し、ポータル サイトがインストールされている限り、すべてのデバイスに適用されます。
プラットフォーム Android のみ(Google サービスを使用するデバイスに限定) iOS App SDK では、同じ構成がサポートされています。 開発者は、これらのキーを共有して、一貫性のあるクロスプラットフォーム エクスペリエンスを実現できます。
適用性 任意の EMM Microsoft Intune専用
スキーマの検出可能性 アプリを Play にアップロードした後、スキーマを一般公開する 開発者が管理するスキーマの検出可能性

どちらの種類のアプリ構成も、キーと値のペアに依存します。 Microsoft Intuneは、これらの構成の内容を検査せず、管理者が構成した値をアプリに渡すだけです。

Intune App 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 App SDK を使用して Android Enterprise マネージド構成を取得し、ポータル サイトがインストールされていない場合、これらの構成は空の ID をMAMUserNotification使用して を介して配信されます。

また、アプリは、特定のキーでクエリを実行するのではなく、キーと値のペアのセットのリストとして生データを要求することもできます。

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

アプリは、新しいアプリ構成データが REFRESH_APP_CONFIG 使用可能であることをアプリに通知する通知に登録することもできます。 アプリがアプリ構成データをキャッシュする場合は、この通知に登録し、ハンドラー内のキャッシュされたデータを無効にする 必要があります 。 詳細については、「 SDK からの通知の登録 」を参照してください。

競合の解決

複数のアプリ構成ポリシーが同じアプリとアカウントを対象としている場合、同じキーに対して複数の競合する値が使用できる可能性があります。

注:

MAM アプリ構成で設定された値は、Android Enterprise 構成で同じキーが設定された値をオーバーライドします。

管理者が同じキーに対して競合する値を構成した場合、Intune にはこの競合を自動的に解決する方法がないため、すべての値がアプリで使用できるようになります。 この種類の競合は、管理者が同じアカウントを含む複数のグループに同じキーを持つ別のアプリ構成セットをターゲットとする場合に発生する可能性があります。

アプリは 、MAMAppConfig オブジェクトから特定のキーのすべての値を要求できるため、独自のビジネス ロジックとの競合を解決できます。

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.AnyStringQueryType.MinStringQueryType.Max最小値と最大値は、アルファベット順に並べ替えられたリストから取得されます。

終了条件

Intune は、アプリ構成ポリシーの値をアプリに配信する役割を担います。その後、アプリは、これらの値を使用してアプリ内の動作または UI を変更する責任を負います。 完全なエンドツーエンドテストは、両方のコンポーネントをカバーする必要があります。

Intune がアプリ構成ポリシーを適切に配信していることを検証するには、次の手順を実行します。

  1. アプリを対象とし、テスト アカウントにデプロイするアプリ構成ポリシーを構成します。
  2. テスト アカウントを使用してアプリにログインします。
  3. アプリ内を移動して、's getAppConfig または を呼び出MAMAppConfigManagerす各コードパスを実行しますgetFullData
    • への呼び出しの結果をログに getAppConfig 記録することは、配信される設定を簡単に検証する方法です。 ただし、管理者はアプリ構成設定のデータを入力できるため、プライベート ユーザー データをログに記録しないように注意してください。
  4. 適用 されたアプリ構成ポリシーの検証に関するページを参照してください。

アプリ構成はアプリ固有であるため、アプリの構成設定ごとにアプリの動作または UI を変更する方法を検証する方法のみがわかっています。

テストするときは、次の点を考慮してください。

  • すべてのシナリオを確実にカバーするには、アプリがサポートするすべての価値を持つ異なるテスト アプリ構成ポリシーを作成します。
  • 設定ごとに異なる値を持つ複数のテスト アプリ構成ポリシーを作成して、アプリの競合解決ロジックを検証します。
  • アプリが通知に REFRESH_APP_CONFIG 登録されている場合は、アプリがアクティブな使用中にアプリ構成ポリシーを更新し、ポリシーの更新を待機し、このコードパスが適切に実行されていることを確認します。
  • アプリで両方の種類のアプリ構成がサポートされている場合は、両方のシナリオをテストして、実装が に正しい ID を提供することを確認します getAppConfig

次の手順

上記のすべての 終了条件 を完了すると、アプリ構成ポリシーと同様にアプリが正常に統合されます。

以降のセクション 「ステージ 7: アプリ参加機能」は、アプリの目的のアプリ保護ポリシーのサポートに応じて、必要な場合と必要ない場合があります。 これらの機能のいずれかがアプリに適用されるかどうかわからない場合は、 SDK 統合に関する重要な決定事項に関するページを参照してください。