MAM 用 Microsoft Tunnel iOS SDK 開発者ガイドは開発者向けのリソースです。 これは、開発者が 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.xcframeworkMCPCommon.xcframeworkMCPCore.xcframeworkMCPPluginUnencryptedFile.xcframeworkMicrosoftTunnelApi.xcframeworkMSTAPNextPluginSecurityOpenssl.xcframeworkMSTAPNextPluginSwiftSupport.xcframeworkMSTAPNextPluginVpnMicrosoftTunnel.xcframeworkssl.xcframework
前提条件
iOS SDK の MAM 用 Microsoft Tunnel を使用するには、次の前提条件が必要です。
Xcode 14.0 以降がインストールされている macOS コンピューター
基幹業務 (LOB) iOS/iPadOS アプリは、iOS/iPadOS 14.0 以降をターゲットにする必要があります。
Xcode で iOS アプリをダウンロードして統合するには、2 つの GitHub SDK があります。 MAM 用 Microsoft Tunnel iOS SDK を続行する前に、次のプロジェクトが正常にビルドされていることを確認してください。
- iOS 用 Intune アプリ SDK (GitHub サイトが開きます): 少なくとも 16.1.1 バージョンをインストールします。
このサイトで、マイクロソフト ライセンス条項の Intune App SDK for iOS ファイルも確認してください。
記録用に、ライセンス条項のコピーを保管してください。 iOS SDK MAM 用 Microsoft Tunnel をダウンロードして使用することにより、ライセンス条項に同意したものと見なされます。 ライセンス条項に同意しない場合は、本ソフトウェアを使用しないでください。
- Microsoft 認証ライブラリ (MSAL) (GitHub サイトが開きます): 少なくとも 1.2.3 バージョンをインストールします。
iOS SDK 用の MAM 用 Microsoft Tunnel をインストールして設定します (GitHub サイトを開きます)。 この記事では、この SDK に焦点を当てています。
重要
Intune は、iOS SDK の MAM 用 Microsoft Tunnel の更新プログラムを定期的にリリースします。 定期的に、iOS SDK の MAM 用 Microsoft Tunnel で更新プログラムをチェックしてください。 これらの更新プログラムをソフトウェア開発のリリース サイクルに追加します。 アプリが Microsoft Tunnel ゲートウェイの更新プログラムと機能強化をサポートしていることを確認する必要があります。
MAM 用 Microsoft Tunnel iOS SDK のしくみ
MAM iOS SDK 用トンネルにより、iOS/iPadOS アプリで "アプリ内" VPN 接続を確立できます。 VPN 接続はアプリ内にのみ存在します。
要約すると、これらのアプリ内 VPN 接続は次のとおりです。
- デバイス レベルではない個別の VPN 接続
- アプリケーション ネットワーク層のみを対象とします
アプリがネットワーク呼び出しを行うと、SDK はネットワーク呼び出しをインターセプトして VPN 接続を確立します。 このアプリ内 VPN 接続は、iOS/iPadOS デバイスの設定アプリには表示されません。
アーキテクチャ: MAM iOS SDK 用トンネル
次の図は、Tunnel for MAM iOS SDK と正常に統合されたマネージド アプリからのフローを示しています。
アプリの初回起動時に、iOS 用の MAM 用 Microsoft Tunnel SDK を使用して接続が確立されます。
トンネルは、Microsoft Entra ID からデバイス認証トークンを取得します。
デバイスが Microsoft Outlook、Microsoft Edge、Microsoft 365 モバイル アプリなどの別の MAM 対応アプリにサインインしている場合、デバイスには Microsoft Entra 認証トークンが既にある可能性があります。 有効な認証トークンが既に存在する場合は、既存のトークンが使用されます。
トークンとトンネル サーバーの間の TLS ハンドシェイクである TCP 接続が発生します。
Microsoft Tunnel ゲートウェイで UDP が有効になっている場合は、DTLS を使用したデータチャネル接続が確立されます。 UDP が無効になっている場合は、TCP によってトンネル ゲートウェイへのデータ チャネルが確立されます。
詳細については、「 Microsoft Tunnel の概要 - アーキテクチャ」の「TCP と UDP の注意事項」を参照してください。
モバイル アプリがオンプレミスの企業リソースに接続する場合:
- A MAM 用 Microsoft Tunnel API 要求により、会社のリソースに接続できます。
- 暗号化された Web 要求が作成され、企業リソースに送信されます。
Xcode タスク
このセクションでは、完了する必要がある次のような Xcode タスクを一覧表示し、説明します:
- フレームワークとライブラリを追加する
- 次の機能を確認して更新します。
-
info.plistファイル - ビルド設定
- キーチェーン共有
-
- サンプルを使用して、Xcode AppDelegate プロジェクトを更新し、Microsoft Tunnel デリゲート ファイルを追加します
手順 1 - フレームワークとライブラリを追加する
次のフレームワークには、Intune Microsoft Tunnel ゲートウェイと通信するために必要な API とデリゲート メソッドが含まれています。 アプリ内に Microsoft Tunnel VPN 機能を実装します。
MAM iOS SDK 用のトンネルを有効にするには、次の手順を使用します。
Tunnel for MAM iOS SDK を macOS コンピューター上のフォルダーにダウンロードおよび展開します。 このタスクは [ 前提条件] にも記載されています。
次の 9 つのフレームワークを Xcode アプリ プロジェクトのフレームワーク フォルダーにコピーします。
crypto.xcframeworkMCPCommon.xcframeworkMCPCore.xcframeworkMCPPluginUnencryptedFile.xcframeworkMicrosoftTunnelApi.xcframeworkMSTAPNextPluginSecurityOpenssl.xcframeworkMSTAPNextPluginSwiftSupport.xcframeworkMSTAPNextPluginVpnMicrosoftTunnel.xcframeworkssl.xcframework
Xcode プロジェクトで、アプリ プロジェクトを選択します >ファイルの追加。 次の例では、"Flash Chat" という名前のアプリ プロジェクトにファイルを追加します。
[プロジェクト>ターゲット] で、[ビルド フェーズ>埋め込みフレームワーク] を選択します。 9 つのフレームワークをすべて追加 (+) します。
次の例は、追加された 9 つのフレームワークすべてを示しています。
[プロジェクト>ターゲット] で、[ビルド フェーズ>ライブラリとバイナリのリンク] を選択します。 この一覧では、
MicrosoftTunnelApi.xcframeworkフレームワークのみを追加する必要があります。 他のフレームワークが一覧に表示されている場合は、負符号 (-) を使用して削除します。
手順 2 - info.plist ファイルを更新する
Xcode アプリ プロジェクトの info.plist で、次の設定を確認します。
バンドル ID: iOS モバイル アプリの Microsoft Entra アプリの登録に記載されているバンドル ID と同じが、アプリ プロジェクト内のバンドル ID と同じであることを確認します。
バンドル ID をチェックするには:
URL タイプ: 「プロジェクト>ターゲット」で、「 情報」を選択します。
[URL タイプ] で、
$(PRODUCT_BUNDLE_IDENTIFIER)変数があることを確認します。 iOS 用 Intune App SDK をアプリ プロジェクト (必要な前提条件) と統合するときに、この変数が作成されているはずです。変数が存在しない場合は、追加する必要があります。
iOS 用 Intune App SDK (必須の前提条件) を使用して
info.plistArray プロパティを作成し、クエリされた URL スキームという名前を付けます。「 モバイル アプリに SDK をビルドする」の手順 5 に記載されている文字列項目を追加します。 この手順では、Intune MAM SDK URL スキームを作成します。
次の例は、 クエリされた URL スキームを使用した info.plist を示しています:
$(PRODUCT_BUNDLE_IDENTIFIER)変数を追加します。以下の例は、URL タイプでの
$(PRODUCT_BUNDLE_IDENTIFIER)変数を示しています。
IntuneMAMSettings: 次の MSAL 設定が、適切な Microsoft Entra アプリの登録値で構成されていることを確認します。
PROJECT>TARGETS>Info に移動します。
IntuneMAMSettings を選択します。 設定を確認します。
-
ADALAuthority: Microsoft Entra テナント ID (https://login.microsoftonline.com/USE_YOUR_ Directory (tenant) IDなど) を入力します。 -
ADALClientId: アプリケーション クライアント ID を入力します。 -
ADALRedirectUri:msauth.$(PRODUCT_BUNDLE_IDENTIFIER):/authと入力します。
-
iOS 用 Intune アプリ SDK をアプリ プロジェクト (必要な前提条件) と統合するときに、これらの設定が構成されているはずです。
これらの設定が構成されていない場合は、構成する必要があります。 IntuneMAMSettings
info.plistDictionary プロパティと関連する Microsoft 認証ライブラリ文字列を作成するには、「Intune App SDK の MSAL 設定を構成する」にある iOS 用 Intune App SDK (必須の前提条件) 開発者ガイドに従ってください。次の例は、これらの値が構成されている場合を示しています。
ステップ 3 - ビットコードをオフにする
- [プロジェクト>ターゲット>ビルド設定] に移動します。
- [ビルド オプション>ビットコードを有効にする] を選択します。
- [ いいえ] を選択します。
手順 4 - キーチェーン共有を追加する
キーチェーン共有は、アプリ プロジェクトに存在する可能性があります。 存在しなかった場合は、そのセクションを追加します。
- PROJECT>TARGETS>Signing & capabilities に移動します。
- [ キーチェーン共有] を選択します。
- [キーチェーングループ] リストで、
com.microsoft.workplacejoinを追加 (+) します。
手順 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 を確認します。
サンプル アプリ
✔️ MAM 用 Microsoft Tunnel iOS SDK サンプル アプリでダウンロードします (GitHub サイトが開きます)。
これらのサンプル アプリは、作業を開始する際に役立つため、さまざまなシナリオをカバーできます。
MicrosoftTunnelAPI メソッド
MicrosoftTunnelAPIには、次のメソッドが含まれます。
Initialize– VPN 設定の確認と設定、ログのセットアップ、MicrosoftTunnelAPIインスタンスのセットアップを行います。Connect–MicrosoftTunnelAPIインスタンスを取得し、ネットワーク トラフィックのインターセプトを有効にします。 API が初期化されていない場合は、エラーが表示されます。Disconnect-MicrosoftTunnelAPIインスタンスを取得し、ネットワーク トラフィックの傍受を無効にします。 API が初期化されていない場合は、エラーが表示されます。onTokenRequired- オプション。 アプリが既にIntuneMAMまたは MSAL と統合されている場合は、このonTokenRequiredメソッドを実装する必要があります。 このメソッドでは、IntuneMAMSettingsと MSAL を使用して、有効な認証トークンを取得して Microsoft Tunnel ゲートウェイに接続します。Logging–kで示される、いくつかの異なるログ クラスがあります。 たとえば、kLoggingClassConnectは Xcode コンソールでログ出力を作成します。 これらのログ構成キーは、デリゲート構成に追加できます。 サンプル アプリには、これらのログ クラスの例がいくつかあります。kLoggingClassInternalkLoggingClassConnectkLoggingClassPacketkLoggingClassSocketkLoggingClassHttpkLoggingClassIntunekLoggingClassMobileAccesskLoggingSeverityDebugkLoggingSeverityInfokLoggingSeverityWarnkLoggingSeverityMinorkLoggingSeverityMajorkLoggingSeverityCrit
警告
配置されたアプリではデバッグ キーを使用しないでください。 キーは、ユーザーを特定できる情報とセキュリティ データをログに記録して表示できます。
iOS/iPadOS LOB アプリのログ記録
SDK を統合しても、ログ記録は自動的に有効になりません。 開発者は、適切なコードを追加してログ デリゲート フレームワークを実装し、適切なログ呼び出しを行う必要があります。 具体的な実装は、SDK と開発者の要件によって異なります。
開発者は以下を行う必要があります。
顧客を特定できるデータやエンド ユーザーの個人データがログに含まれていないことを確認してください。 プライバシー規制に準拠する必要があります。
組織の organization/organization のプライバシー チームに相談し、連携します。 プライバシー チームは、ログに記録できる適切なデータと機密データの適切な処理方法に関するガイダンスを提供できます。
警告
ログとデータのプライバシーに関する具体的なガイダンスについては、 MAM 用 Microsoft Tunnel iOS SDK のプライバシーに関するドキュメント (GitHub で PDF ファイルを開きます) を参照してください。
MAM-Tunnel ログ デリゲート メソッドの例
モバイル アプリケーション管理用 Microsoft Tunnel プライバシー情報
お客様のプライバシーは、Microsoft にとって重要です。 次のプライバシー関連のオンライン ドキュメントを確認してください。
MAM 用 Microsoft Tunnel iOS SDK がモバイル アプリに統合されると、開発者が次のときに次のデータが収集されます。
- アプリで Intune MAM テレメトリ モジュールを有効にします
収集されるデータには、次の領域が含まれる場合があります。
- MAM 用 Microsoft Tunnel SDK バージョン
- Microsoft が生成したユーザー情報
- デバイス ID
- ハードウェアとソフトウェアの情報
- デバイス製造業者
- デバイス モデル
- デバイスの OS バージョン
- 管理者とアカウント情報
- Intune テナント ID
- Microsoft Entra テナント ID
- 使用状況の測定:
- VPN の初期化
- VPN の接続および切断イベント
- エラー情報
- VPN 接続エラーに関連するエラー
ユーザーを特定できる情報は収集されません。
重要
開発者は、SDK を統合する際に、コードを使用してアプリケーション内でメッセージのアドレス指定およびキャプチャを行うときに、ユーザーを特定できるデータを含めないことが重要です。
既知の問題
既知の問題については、「iOS/iPadOS 用 MAM 用 Microsoft Tunnel - Intune 管理ガイド」を参照してください。