iOS SDK 開発者ガイドのMAM 用 Microsoft Tunnel

注:

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

iOS SDK 開発者ガイドMAM 用 Microsoft Tunnelは、開発者向けのリソースです。 これは、開発者が SDK を iOS/iPadOS アプリに統合して構成するのに役立ちます。 MAM 用 Microsoft Tunnelの概要については、「iOS/iPadOS のMAM 用 Microsoft Tunnel - 管理者ガイド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

前提条件

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

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

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

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

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

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

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

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

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

    重要

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

iOS SDK のMAM 用 Microsoft Tunnelのしくみ

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. アプリの初回起動時に、MAM 用 Microsoft Tunnel 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. MAM 用 Microsoft Tunnel 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. [PROJECTTARGETS]\(プロジェクト > ターゲット\) で、[ビルド フェーズ>の埋め込みフレームワーク] を選択します。 (+) すべての 9 つのフレームワークを追加します。

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

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

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

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

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

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

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

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

    バンドル ID をチェックするには:

    1. [PROJECTTARGETS General]\(プロジェクト > ターゲット>全般\) に移動します。

    2. [IDバンドル識別子] を>選択します。

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

  • URL の種類: [PROJECTTARGETS]\(プロジェクト> ターゲット\) で、[情報] を選択します

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

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

    1. Intune App SDK for iOS (必須の前提条件) を使用して、Array プロパティをinfo.plist作成し、クエリされた 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. [PROJECTTARGETS Info]\(プロジェクト>ターゲット情報\>) に移動します

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

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

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

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

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

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

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

  1. [PROJECT> TARGETSビルド設定] に移動します>。
  2. [ ビルド オプション>] [ビットコードを有効にする] を選択します
  3. [ いいえ] を選択します

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

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

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

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

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

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

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

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

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

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

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

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

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

サンプル アプリ

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

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

MicrosoftTunnelAPI メソッド

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

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

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

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

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

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

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

警告

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

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

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

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

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

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

警告

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

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

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

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

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

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

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

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

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

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

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

重要

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

既知の問題

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

次の手順

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