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 を続行する前に、次のプロジェクトが正常にビルドされていることを確認します。
Intune App SDK for iOS (GitHub サイトが開きます): 少なくとも、16.1.1 バージョンをインストールします。
このサイトでは、App SDK for iOS ファイルIntune Microsoft ライセンス条項も確認してください。
レコードの場合は、ライセンス条項のコピーを保持します。 MAM 用 Microsoft Tunnel iOS SDK をダウンロードして使用することで、ライセンス条項に同意したことになります。 ライセンス条項に同意しない場合は、ソフトウェアを使用しないでください。
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 と正常に統合されたマネージド アプリからのフローを示しています。
アプリの初回起動時に、MAM 用 Microsoft Tunnel SDK for iOS を使用して接続が確立されます。
トンネルは、Microsoft Entra IDからデバイス認証トークンを取得します。
デバイスが Outlook、Edge、Microsoft 365 モバイル アプリなど、別の MAM 対応アプリにサインインしている場合、デバイスに既にMicrosoft Entra認証トークンが含まれている可能性があります。 有効な認証トークンが既に存在する場合は、既存のトークンが使用されます。
TCP Connect が発生します。これは、トークンとトンネル サーバーの間の TLS ハンドシェイクです。
Microsoft Tunnel Gateway で UDP が有効になっている場合は、DTLS を使用したデータ チャネル接続が行われます。 UDP が無効になっている場合、TCP は Tunnel ゲートウェイへのデータ チャネルを確立します。
詳細については、「 Microsoft Tunnel の概要 - アーキテクチャ」の TCP および UDP に関するメモを参照してください。
モバイル アプリがオンプレミスの企業リソースに接続する場合:
- MAM 用 Microsoft Tunnel API は、会社のリソースへの接続を要求します。
- 暗号化された Web 要求が作成され、企業リソースに送信されます。
Xcode タスク
このセクションでは、以下を含む、完了する必要がある Xcode タスクの一覧と説明を示します。
- フレームワークとライブラリを追加する
- 次の機能を確認して更新します。
-
info.plist
ファイル - ビルド設定
- キーチェーン共有
-
- サンプルを使用して Xcode AppDelegate プロジェクトを更新し、Microsoft Tunnel デリゲート ファイルを追加する
手順 1 - フレームワークとライブラリを追加する
次のフレームワークには、Intune Microsoft Tunnel Gateway と通信するために必要な API とデリゲート メソッドが含まれます。 アプリ内に Microsoft Tunnel VPN 機能を実装します。
MAM iOS SDK のトンネルを有効にするには、次の手順に従います。
MACOS コンピューター上のフォルダーに MAM iOS SDK 用トンネルをダウンロードして抽出します。 このタスクは、前提条件にも記載 されています。
次の 9 つのフレームワークを Xcode アプリ プロジェクト フレームワーク フォルダーにコピーします。
crypto.xcframework
MCPCommon.xcframework
MCPCore.xcframework
MCPPluginUnencryptedFile.xcframework
MicrosoftTunnelApi.xcframework
MSTAPNextPluginSecurityOpenssl.xcframework
MSTAPNextPluginSwiftSupport.xcframework
MSTAPNextPluginVpnMicrosoftTunnel.xcframework
ssl.xcframework
Xcode プロジェクトで、[ファイルの追加] >アプリ プロジェクトを選択します。 次の例では、"Flash Chat" という名前のアプリ プロジェクトにファイルが追加されます。
[PROJECT>TARGETS] で、[ビルド フェーズ>Embed Frameworks] を選択します。 9 つのフレームワークをすべて追加 (+) します。
次の例は、追加されたすべての 9 つのフレームワークを示しています。
PROJECT>TARGETS で、[ビルド フェーズ>ライブラリを使用したバイナリのリンク] を選択します。 一覧では、
MicrosoftTunnelApi.xcframework
フレームワークのみを追加する必要があります。 他のフレームワークが一覧表示されている場合は、マイナス (-) を使用して削除します。
手順2 - info.plist
ファイルを更新する
Xcode アプリ プロジェクトの info.plist
で、次の設定を確認します。
バンドル ID: iOS モバイル アプリの Microsoft Entra アプリ登録に一覧表示されているバンドル ID が、アプリ プロジェクトで同じバンドル ID であることを確認します。
バンドル ID をチェックするには:
URL の種類: PROJECT>TARGETS で、[情報] を選択 します。
[ URL の種類] で、
$(PRODUCT_BUNDLE_IDENTIFIER)
変数が存在することを確認します。 Intune App SDK for iOS をアプリ プロジェクト (必須の前提条件) と統合すると、この変数が作成されているはずです。変数が存在しない場合は、変数を追加する必要があります。
Intune App SDK for iOS (必須の前提条件) を使用して、
info.plist
Array プロパティを作成し、クエリされた URL スキームという名前を付けます。「Intune App SDK for iOS 開発者ガイド - 手順 5.」に記載されている文字列項目を追加します。 この手順では、Intune MAM SDK URL スキームを作成します。
次の例は、 クエリされた URL スキームを使用した info.plist を示しています。
$(PRODUCT_BUNDLE_IDENTIFIER)
変数を追加します。次の例は、URL 型の
$(PRODUCT_BUNDLE_IDENTIFIER)
変数を示しています。
IntuneMAMSettings: 次の MSAL 設定が適切なMicrosoft Entra アプリ登録値で構成されていることを確認します。
[PROJECT>TARGETS>Info] に移動します。
[IntuneMAMSettings] を選択します。 設定を確認します。
-
ADALAuthority
:https://login.microsoftonline.com/USE_YOUR_ Directory (tenant) ID
など、Microsoft Entraテナント 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 設定を構成する」の開発者ガイドに従います。次の例は、構成されたこれらの値を示しています。
手順 3 - ビットコードをオフにする
- [PROJECT>TARGETS>Build 設定] に移動します。
- [ビルド オプション>Enable Bitcode] を選択します。
- [ いいえ] を選択します。
手順 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 を確認します。
サンプル アプリ
✔️ iOS SDK サンプル アプリMAM 用 Microsoft Tunnelダウンロードします (GitHub サイトが開きます)。
これらのサンプル アプリは、さまざまなシナリオを開始してカバーするのに役立ちます。
MicrosoftTunnelAPI メソッド
MicrosoftTunnelAPI
には、次のメソッドが含まれています。
Initialize
– VPN 構成を確認して設定し、ログ記録を設定し、MicrosoftTunnelAPI
インスタンスを設定します。Connect
–MicrosoftTunnelAPI
インスタンスを取得し、ネットワーク トラフィックのインターセプトを有効にします。 API が初期化されていない場合は、エラーが表示されます。Disconnect
-MicrosoftTunnelAPI
インスタンスを取得し、ネットワーク トラフィックのインターセプトを無効にします。 API が初期化されていない場合は、エラーが表示されます。onTokenRequired
–随意。 アプリが既にIntuneMAM
または MSAL と統合されている場合は、この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 ログ デリゲート メソッドの例
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」を参照してください。