Microsoft Tunnel for MAM iOS SDK 開発者ガイド

注:

この機能は、Microsoft Intune プラン 2 または Microsoft Intune Suite をアドオン ライセンスとして追加するときに使用できます。 詳細については、「 Intune Suite アドオン機能を使用する」を参照してください。

Microsoft Tunnel for MAM iOS SDK 開発者ガイドは、開発者向けのリソースです。 これは、開発者が SDK を iOS/iPadOS アプリに統合して構成するのに役立ちます。 MICROSOFT Tunnel for MAM の概要については、「 Microsoft Tunnel for MAM for iOS/iPadOS - Intune 管理者ガイド」を参照してください。

このガイドでは、フレームワークのインストール、 info.plist ファイルの構成、ビルド設定、キー共有、SDK のデリゲート メソッドの実装など、Xcode アプリ プロジェクトの統合プロセスのさまざまな部分について説明します。

これらのコンポーネントは、iOS/iPadOS アプリの開発において重要です。 開発者は、SDK コンポーネントを移動して構成する方法を理解する必要があります。 Xcode と iOS/iPadOS アプリ開発を初めて使用する場合は、このガイドが役立ちます。 さまざまな SDK コンポーネントを検索する場所と、アプリ プロジェクトでこれらの要素を使用する方法の概要について説明します。

この機能は、以下に適用されます。

  • iOS/iPadOS

SDK リポジトリの内容

SDK リポジトリには、次のフレームワークが含まれています。 これらのフレームワークは、後の手順でアプリ プロジェクトに追加します。

  • crypto.xcframework
  • MCPCommon.xcframework
  • MCPCore.xcframework
  • MCPPluginUnencryptedFile.xcframework
  • MicrosoftTunnelApi.xcframework
  • MSTAPNextPluginSecurityOpenssl.xcframework
  • MSTAPNextPluginSwiftSupport.xcframework
  • MSTAPNextPluginVpnMicrosoftTunnel.xcframework
  • ssl.xcframework

前提条件

MICROSOFT Tunnel for MAM iOS SDK を使用するには、次の前提条件が必要です。

  • Xcode 14.0 以降がインストールされている macOS コンピューター

  • 基幹業務 (LOB) iOS/iPadOS アプリは、iOS/iPadOS 14.0 以降を対象とする必要があります。

  • Xcode で iOS アプリをダウンロードして統合するために必要な GitHub SDK は 2 つあります。 MICROSOFT Tunnel for MAM iOS SDK を続行する前に、次のプロジェクトが正常にビルドされていることを確認します。

    1. Intune App SDK for iOS (GitHub サイトが開きます): 少なくとも、16.1.1 バージョンをインストールします。

      このサイトでは、 Microsoft ライセンス条項 Intune App SDK for iOS ファイルも確認してください。

      レコードの場合は、ライセンス条項のコピーを保持します。 MICROSOFT Tunnel for MAM iOS SDK をダウンロードして使用すると、ライセンス条項に同意したことになります。 ライセンス条項に同意しない場合は、ソフトウェアを使用しないでください。

    2. Microsoft 認証ライブラリ (MSAL) ( GitHub サイトが開きます): 少なくとも、1.2.3 バージョンをインストールします。

  • MICROSOFT Tunnel for MAM iOS SDK をインストールして設定します (GitHub サイトが開きます)。 この SDK は、この記事の焦点です。

    重要

    Intune は、MICROSOFT Tunnel for MAM iOS SDK の更新プログラムを定期的にリリースします。 定期的に、 MICROSOFT Tunnel for MAM iOS SDK で更新プログラムを確認してください。 これらの更新プログラムをソフトウェア開発リリース サイクルに追加します。 アプリで Microsoft Tunnel Gateway の更新プログラムと機能拡張がサポートされていることを確認する必要があります。

MICROSOFT Tunnel for MAM iOS SDK のしくみ

MAM iOS SDK 用トンネルを使用すると、iOS/iPadOS アプリで "アプリ内" VPN 接続を確立できます。 VPN 接続はアプリ内にのみ存在します。

要約すると、アプリ内 VPN 接続は次のとおりです。

  • デバイス レベルの VPN 接続ではなく、個別の接続
  • アプリケーション ネットワーク レイヤーのみにスコープを設定する

アプリがネットワーク呼び出しを行うと、SDK によってネットワーク呼び出しがインターセプトされ、VPN 接続が確立されます。 このアプリ内 VPN 接続は、iOS/iPadOS デバイスの設定アプリには表示されません。

アーキテクチャ: MAM iOS SDK のトンネル

次の図は、MAM iOS SDK の Tunnel と正常に統合されたマネージド アプリからのフローを示しています。

Microsoft Intune の iOS/iPadOS アーキテクチャ上の MAM 用 Microsoft Tunnel Gateway の描画。

  1. アプリの初回起動時に、Microsoft Tunnel for MAM SDK for iOS を使用して接続が確立されます。

  2. トンネルは、Microsoft Entra ID からデバイス認証トークンを取得します。

    デバイスが Outlook、Edge、Microsoft 365 モバイル アプリなど、別の MAM 対応アプリにサインインしている場合、デバイスに既に Microsoft Entra 認証トークンが含まれている可能性があります。 有効な認証トークンが既に存在する場合は、既存のトークンが使用されます。

  3. TCP Connect が発生します。これは、トークンとトンネル サーバーの間の TLS ハンドシェイクです。

  4. Microsoft Tunnel Gateway で UDP が有効になっている場合は、DTLS を使用したデータ チャネル接続が行われます。 UDP が無効になっている場合、TCP は Tunnel ゲートウェイへのデータ チャネルを確立します。

    詳細については、「 Microsoft Tunnel の概要 - アーキテクチャ」の TCP および UDP に関するメモを参照してください。

  5. モバイル アプリがオンプレミスの企業リソースに接続する場合:

    1. MICROSOFT Tunnel for MAM API は、会社のリソースに接続するように要求します。
    2. 暗号化された Web 要求が作成され、企業リソースに送信されます。

Xcode タスク

このセクションでは、以下を含む、完了する必要がある Xcode タスクの一覧と説明を示します。

  • フレームワークとライブラリを追加する
  • 次の機能を確認して更新します。
    • info.plistファイル
    • ビルド設定
    • キーチェーン共有
  • サンプルを使用して Xcode AppDelegate プロジェクトを更新し、Microsoft Tunnel デリゲート ファイルを追加する

手順 1 - フレームワークとライブラリを追加する

次のフレームワークには、 Intune Microsoft Tunnel Gateway と通信するために必要な API とデリゲート メソッドが含まれています。 アプリ内に Microsoft Tunnel VPN 機能を実装します。

MAM iOS SDK のトンネルを有効にするには、次の手順に従います。

  1. MACOS コンピューター上のフォルダーに MAM iOS SDK 用トンネルをダウンロードして抽出します。 このタスクは、前提条件にも記載 されています

    次の 9 つのフレームワークを Xcode アプリ プロジェクト フレームワーク フォルダーにコピーします。

    • crypto.xcframework
    • MCPCommon.xcframework
    • MCPCore.xcframework
    • MCPPluginUnencryptedFile.xcframework
    • MicrosoftTunnelApi.xcframework
    • MSTAPNextPluginSecurityOpenssl.xcframework
    • MSTAPNextPluginSwiftSupport.xcframework
    • MSTAPNextPluginVpnMicrosoftTunnel.xcframework
    • ssl.xcframework
  2. Xcode プロジェクトで、[ファイルの追加] >アプリ プロジェクトを選択します。 次の例では、"Flash Chat" という名前のアプリ プロジェクトにファイルが追加されます。

    macOS デバイス上の Xcode でアプリ プロジェクトにファイルを追加する方法を示す画面。

  3. [PROJECT>TARGETS] で、[ビルド フェーズ>Embed Frameworks] を選択します。 9 つのフレームワークをすべて追加 (+) します。

    macOS デバイス上の Xcode でのフレームワークの埋め込みを示すスクリーンショット。

    次の例は、追加されたすべての 9 つのフレームワークを示しています。

    macOS デバイス上の Xcode に埋め込まれているすべての Microsoft Tunnel フレームワークを示すスクリーンショット。

  4. PROJECT>TARGETS で、[ビルド フェーズ>ライブラリを使用したバイナリのリンク] を選択します。 一覧では、 MicrosoftTunnelApi.xcframework フレームワークのみを追加する必要があります。 他のフレームワークが一覧表示されている場合は、マイナス (-) を使用して削除します。

    macOS デバイス上の Xcode でライブラリを使用してバイナリをリンクするフレームワークを削除する方法を示すスクリーンショット。

手順2 - info.plist ファイルを更新する

Xcode アプリ プロジェクトの info.plist で、次の設定を確認します。

  • バンドル ID: iOS モバイル アプリの Microsoft Entra アプリ登録 に記載されているバンドル ID が、アプリ プロジェクト内で同じバンドル ID であることを確認します。

    バンドル ID を確認するには:

    1. [PROJECT>TARGETS>General] に移動します。

    2. [ ID>Bundle 識別子] を選択します。

      macOS デバイス上の Xcode でバンドル ID を追加するためのプロジェクト、ターゲット、一般、ID の選択を示すスクリーンショット。

  • URL の種類: PROJECT>TARGETS で、[情報] を選択 します

    [ URL の種類] で、 $(PRODUCT_BUNDLE_IDENTIFIER) 変数が存在することを確認します。 Intune App SDK for iOS をアプリ プロジェクト (必須の前提条件) と統合すると、この変数が作成されているはずです。

    変数が存在しない場合は、変数を追加する必要があります。

    1. Intune App SDK for iOS (必須の前提条件) を使用して、info.plistArray プロパティを作成し、クエリされた URL スキームという名前を付けます

      「Intune App SDK for iOS 開発者ガイド - 手順 5」に記載されている文字列項目を追加します。 この手順では、Intune MAM SDK URL スキームを作成します。

      次の例は、 クエリされた URL スキームを使用した info.plist を示しています。

      macOS デバイス上の Xcode でプロジェクト、ターゲット、情報、クエリされた URL スキームの値を選択するスクリーンショット。

    2. $(PRODUCT_BUNDLE_IDENTIFIER)変数を追加します。

      次の例は、URL 型$(PRODUCT_BUNDLE_IDENTIFIER)変数を示しています。

      macOS デバイス上の Xcode でのプロジェクト、ターゲット、情報、URL の種類の選択を示すスクリーンショット。

  • IntuneMAMSettings: 次の MSAL 設定が適切な Microsoft Entra アプリ登録値で構成されていることを確認します。

    1. [PROJECT>TARGETS>Info] に移動します。

    2. [IntuneMAMSettings] を選択します。 設定を確認します。

      • ADALAuthority: https://login.microsoftonline.com/USE_YOUR_ Directory (tenant) IDなど、Microsoft Entra テナント ID を入力します。
      • ADALClientId: アプリケーション クライアント ID を入力します。
      • ADALRedirectUri: 「 msauth.$(PRODUCT_BUNDLE_IDENTIFIER):/auth」と入力します。

    iOS 用 Intune App SDK をアプリ プロジェクトと統合した場合 (必須の前提条件)、これらの設定が構成されている必要があります。

    これらの設定が構成されていない場合は、それらを構成する必要があります。 IntuneMAMSettings info.plist Dictionary プロパティと関連する Microsoft 認証ライブラリの文字列を作成するには、「Intune App SDK ガイダンスの MSAL 設定を構成する」の「Intune App SDK for iOS (必須の前提条件) 開発者ガイド」に従います。

    次の例は、構成されたこれらの値を示しています。

    macOS デバイス上の Xcode でのプロジェクト、ターゲット、情報、IntuneMAMSetting の選択を示すスクリーンショット。

手順 3 - ビットコードをオフにする

  1. [PROJECT>TARGETS>Build 設定] に移動します。
  2. [ビルド オプション>Enable Bitcode] を選択します
  3. [ いいえ] を選択します

macOS デバイスで Xcode でプロジェクト、ターゲット、ビルド設定、ビルド オプション、およびビットコードを無効にすることを示すスクリーンショット。

手順 4 - キーチェーン共有を追加する

キーチェーンの共有は、アプリ プロジェクトに存在する場合と存在しない場合があります。 存在しなかった場合は、そのセクションを追加します。

  1. [PROJECT>TARGETS>Signing & Capabilities] に移動します。
  2. [ キーチェーン共有] を選択します。
  3. [キーチェーン グループ] の一覧で、com.microsoft.workplacejoin (+) を追加します。

プロジェクト、ターゲット、署名 & 機能、キーチェーン共有、macOS デバイス上の Xcode でのキーチェーン グループの追加を示すスクリーンショット。

手順 5 - SDK をアプリに統合する

✔️ TunnelMAMTestApp2.xcproject サンプル アプリを使用します。

LOB アプリとその実装/目的によっては、 MicrosoftTunnelApi の使用が異なる場合があります。 SDK をアプリと統合する際に知っておくべき主要な機能がいくつかあります。

  • MICROSOFT Tunnel for MAM iOS SDK との対話はすべて、 MicrosoftTunnelAPI シングルトン オブジェクトを介して処理されます。
  • MicrosoftTunnelAPI オブジェクトは、MicrosoftTunnelDelegate インターフェイスを実装するデリゲートを使用してアプリと対話します。 

Microsoft Tunnel デリゲートを記述する方法と、 MicrosoftTunnelAPIを初期化する方法を理解するには、 Microsoft Tunnel for MAM iOS SDK サンプル アプリ を使用します (GitHub サイトが開きます)。

サンプル アプリでは、Xcode プロジェクト AppDelegate に次の情報が表示されます。

  • MSAL URL コールバックを処理する方法
  • Tunnel に必要な登録と初期化プロセスを開始する方法

開始するには、 TunnelMAMTestApp2.xcproject サンプル アプリを開き、アプリ プロジェクトで AppDelegate & MicrosoftTunnelDelegate を確認します。

サンプル アプリ

✔️ Microsoft Tunnel for MAM iOS SDK サンプル アプリでダウンロードします (GitHub サイトが開きます)。

これらのサンプル アプリは、さまざまなシナリオを開始してカバーするのに役立ちます。

MicrosoftTunnelAPI メソッド

MicrosoftTunnelAPIには、次のメソッドが含まれています。

  • Initialize – VPN 構成を確認して設定し、ログ記録を設定し、 MicrosoftTunnelAPI インスタンスを設定します。

  • ConnectMicrosoftTunnelAPI インスタンスを取得し、ネットワーク トラフィックのインターセプトを有効にします。 API が初期化されていない場合は、エラーが表示されます。

  • Disconnect - MicrosoftTunnelAPI インスタンスを取得し、ネットワーク トラフィックのインターセプトを無効にします。 API が初期化されていない場合は、エラーが表示されます。

  • onTokenRequired –随意。 アプリが既に IntuneMAM または MSAL と統合されている場合は、この onTokenRequired メソッドを実装する必要があります。 この方法では、 IntuneMAMSettings と MSAL を使用して、Microsoft Tunnel Gateway に接続するための有効な認証トークンを取得します。

  • Loggingkで示される、いくつかの異なるログ クラスがあります。 たとえば、 kLoggingClassConnect は Xcode コンソールにログ出力を作成します。 これらのログ記録構成キーは、デリゲート構成に追加できます。 サンプル アプリには、これらのログ クラスの例がいくつかあります。

    • kLoggingClassInternal
    • kLoggingClassConnect
    • kLoggingClassPacket
    • kLoggingClassSocket
    • kLoggingClassHttp
    • kLoggingClassIntune
    • kLoggingClassMobileAccess
    • kLoggingSeverityDebug
    • kLoggingSeverityInfo
    • kLoggingSeverityWarn
    • kLoggingSeverityMinor
    • kLoggingSeverityMajor
    • kLoggingSeverityCrit

警告

デプロイされたアプリではデバッグ キーを使用しないでください。 キーを使用すると、ユーザーを特定できる情報とセキュリティ データをログに記録して表示できます。

iOS/iPadOS LOB アプリのログオン

SDK を統合しても、ログ記録は自動的に有効になりません。 開発者は、ログ記録デリゲート フレームワークを実装し、適切なログの呼び出しを行うために適切なコードを追加する必要があります。 具体的な実装は、SDK と開発者の要件によって異なります。

開発者は次の手順を実行する必要があります。

  • 顧客を特定できる個人データやエンド ユーザーの個人データがログに含まれていないことを確認します。 プライバシー規制に準拠する必要があります。

  • 組織の会社/組織のプライバシー チームに相談して作業します。 プライバシー チームは、ログに記録できる適切なデータと機密データを処理する適切な方法に関するガイダンスを提供できます。

警告

ログとデータのプライバシーに関する具体的なガイダンスについては、 Microsoft Tunnel for MAM iOS SDK のプライバシー に 関するドキュメント (GitHub で PDF ファイルを開く) を参照してください。

MAM-Tunnel ログ デリゲート メソッドの例

macOS デバイス上の Xcode のサンプル Microsoft Tunnel ログ デリゲート メソッドを示すスクリーンショット。

macOS デバイス上の Xcode での Microsoft Tunnel ログ出力のサンプルを示すスクリーンショット。

Microsoft Tunnel for Mobile Application Management のプライバシー情報

お客様のプライバシーは当社にとって重要です。 次のプライバシー関連のオンライン ドキュメントを確認してください。

Microsoft Tunnel for MAM iOS SDK をモバイル アプリに統合すると、開発者が次のデータを収集します。

  • アプリで Intune MAM テレメトリ モジュールを有効にします

収集されるデータには、次の領域が含まれる場合があります。

  • MICROSOFT Tunnel for MAM SDK バージョン
  • Microsoft が生成したユーザー情報
    • デバイス ID
  • ハードウェアとソフトウェアの情報
    • デバイス製造業者
    • デバイス モデル
    • デバイスの OS バージョン
  • 管理者とアカウント情報
    • Intune テナント ID
    • Microsoft Entra テナント ID
  • 使用状況の測定:
    • VPN の初期化
    • VPN の接続と切断のイベント
  • エラー情報
    • VPN 接続エラーに関連するエラー

ユーザーを特定できる情報は収集されません。

重要

開発者は、SDK を統合するときに、コードを使用してアプリケーション内のメッセージに対処してキャプチャするときに、ユーザーを特定できるデータを含めないようにすることが重要です。

既知の問題

既知の問題については、「 Microsoft Tunnel for MAM for iOS/iPadOS - Intune 管理者ガイド」を参照してください。

次の手順

Microsoft Tunnel for MAM for iOS/iPadOS - Intune 管理者ガイド