Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

[SC10] 自社開発モバイルアプリの DLP 対応化を Microsoft Intune で可能に

800 views

Published on

Microsoft Intune が提供するモバイル アプリケーション管理機能は、アプリによって対応/非対応のものがある中、特に自社開発 (LOB) の iOS/Android 用モバイル アプリを対応させるために必要なライブラリや SDK について組み込み方法やポリシーのロジックにつき解説します。

受講対象: 自社開発のモバイル アプリケーションを MDM (Intune) で管理したいと考えている ISV の開発者、またはアーキテクト

製品/テクノロジ: Microsoft Intune/Microsoft Azure/Office 365/iOS/Android

Takuo Robert Nishi
Microsoft Corporation
Enterprise Client & Mobility Engineering
Senior Program Manager

Published in: Technology
  • Be the first to comment

  • Be the first to like this

[SC10] 自社開発モバイルアプリの DLP 対応化を Microsoft Intune で可能に

  1. 1. EMM – Enterprise Mobility Management • エンタープライズ・企業レベルでモバイル デバイスやモバイル アプリを管理する枠組みや考え方 MDM – Mobile Device Management • 主に OMA-DM の規格に基づいたモバイル デバイスの管理 (PC/Mac, スマホ) MAM – Mobile Application Management • モバイル デバイス上で利用するアプリケーションの管理 ADAL – Azure Active Directory Authentication Library • 「モダン認証」を実装するために必要な Azure Active Directory 認証用のライブラリ APP – Application Protection Policy • モバイル アプリケーションをポリシー ベースで管理・保護する方法 (AppConfig.org とは異なる) LOB – Line-of-Business (application) • 一般的に企業で利用される社内用アプリケーション OMA – Open Mobile Alliance / OMA-DM – Open Mobile Alliance Device Management • モバイル デバイス業界向けにオープン規格を定義している組織・DM はその中でデバイス管理の定義
  2. 2. 条件付きアクセスPC & モバイル管理 モバイル アプリ保護 ポリシー OS 層の機能管理 メールや Office 365 をはじめとした 様々なリソースへのアクセスを制御 LOB App #1 アプリケーションで扱う企業データ の保護
  3. 3. APP (Application Protection Policy) の有効化 アプリケーションの展開 アプリケーションとデータの 保護ポリシー アプリケーション構成
  4. 4. Mobile Application Management (MAM) Mobile Device Management (MDM)アプリケーション の展開 アプリケーション の構成 Application Protection Policy デバイス構成 ポリシー
  5. 5. 機能実装の目的は? ▪ 企業と個人のアプリケーション、データ、 ID を明確に分け、保護すること App Protection Policies ▪ Microsoft Office のモバイル アプリには 組み込み済み ▪ 一部のサードパーティ製品にも組み込み ▪ 自社の LOB アプリにも組み込み可 Managed apps Personal apps個人アプリ 管理されたアプリ MDM – オプション (Intune もしくは他社製品) 企業データ 個人データ マルチ ID のポリシー
  6. 6. アプリケーション アクセ ス時の制御 • アプリケーション用 PIN • 企業 ID/Pass • 脱獄・ルートされたデバ イス認識 情報漏洩保護 • コピペの制御 • アプリ間のデータ共有の 制御 • クラウドへの保存を制御 • プリント機能制御 データのリモート ワイプ • 管理されたアプリから 保護した企業データ のみワイプ可 データの暗号化 • iOS: OS レベルの暗号 化機能を利活用 • Android: OpenSSL ス キーマ 128-bit AES key gen
  7. 7. https://www.microsoft.com/en-us/cloud-platform/microsoft-intune-apps
  8. 8. Intune App SDK • APP 機能をフルで 利活用可能 • ストア公開アプリも LOB アプリも対象 Cordova Plugin • Cordova で開発した Android や iOS アプリ を対象に APP 機能を 実装 Xamarin Component • Xamarin で開発し Android や iOS アプリ を対象に APP 機能を 実装 App Wrapping Tool • コマンド ラインのツール • アプリのコード変更不要 • 簡易な LOB アプリ向け C:usersbill
  9. 9. Microsoft Intune のアプリケーション保護機能を利用する場合 認証に ADAL が必須 Intune App SDK を利用する場合、アプリケーション内に ADAL を手動で追加する必要がある Intune App Wrapping ツールを利用する場合、ツールによりアプリケーションに ADAL が追加される
  10. 10. App Wrapping Tool vs. Intune App SDK App Wrapping Tool Intune App SDK 簡易アプリ 複雑なアプリ、機能と容量の多いアプリ 社内のみにアプリを展開 社内以外に公開 App Store にもリリースする 1つの ID (企業ID) のみを必要とする 複数 ID のサポートを必要とする アプリを頻繁に更新しない アプリを頻繁に更新する アプリのソースコードが手元にない・触れない ソースコードがあり、コード内容を把握している
  11. 11. iOS Android 前提条件 • macOS X 10.8.5+ with Xcode toolset 5+ • Signing 用証明書 • Provisioning profile • アプリが暗号化されていないこと • iOS 8.0+ をターゲットとしたアプリ • Windows • Java Key tool • アプリが暗号化されていないこと • Android 4.0+ をターゲットとしたアプリ 実装環境 Terminal Powershell ハイブリッド モバイル プラットフォーム Cordova, Xamarin Cordova, Xamarin
  12. 12. プロパティ 使い方 -i Wrapping する前のアプリケーション ファイル パス (*.app/*.ipa) - 必須 -o Wrapping されたアプリケーションのアウトプット ファイル - 必須 -p (iOS) プロビジョニング プロファイルのパス (*.mobileprovision) ー 必須 -c Signing Certificate の SHA-1 Hash - 必須 -h ヘルプ -v (オプション) Wrapping 実行時の詳細ログをコンソールに表示 -e (オプション) アプリのプロセスする際に不要エンタイトルメントを削除 -xe (オプション) iOS エクステンションの情報を表示・利用するにあたって必要なエンタイトルメントを列挙 -x (オプション) エクステンション プロビジョニング プロファイルの指定 -f (オプション) コマンドラインの代わりに pfile を利用する場合の pfile パス指定 -b (オプション) カスタム バンドル バージョンの指定 (CFBundleVersion)
  13. 13. ターミナルでの実行コマンド
  14. 14. SDK のみで有効な機能 • 複数 ID 対応 • Save-as 時の保存先制御 • スタイル・ブランドのカスタマイズ • セレクティブ ワイプ • ステータス・状態・デバッグ通知 • MAM サービスと連携する API • MDM 登録しない状態での MAM 展開
  15. 15. 前提条件 • macOS: OS X 10.8.5 以上 • Xcode toolset version 8 • アプリへのソースコード アクセス (objective-C 又は Swift inter-op) コンポーネント • libIntuneMAM.a (静的ライブラリ – option 1) • IntuneMAM.framework (フレームワーク – option 2) • IntuneMAMResources.bundle (リソースのバンドル) • Headers (API を含む)
  16. 16. 前提条件 • Android (Java) アプリをコンパイルできるマシン • Java で書かれたアプリへのアクセス コンポーネント • Microsoft.Intune.MAM.SDK.jar • Microsoft.Intune.MAM.SDK.Support.v4.jar • Microsoft.Intune.MAM.SDK.Support.v7.jar • Resource directory • Microsoft.Intune.MAM.SDK.aar • AndroidManifest.xml
  17. 17. 前提条件 • Windows マシン • iOS 用には macOS が必要 • Cordova v.0.8.0+ 用 Azure Active Directory Authentication Libraries (ADAL) プラグイン プラットフォーム • Android 4.0+ • iOS ソースコード • JavaScript, HTML, and CSS
  18. 18. /* 1. ADAL バージョンの更新*/ cordova plugin remove cordova-plugin-ms-adal cordova plugin add cordova-plugin-ms-adal@0.8.x /* 2. Intune APP SDK Cordova plugin の追加*/ cordova plugin add cordova-plugin-ms-intune-mam
  19. 19. 前提条件 • Windows マシン • iOS 用には macOS が必要 • Xamarin Studio or Visual Studio プラットフォーム • Android • iOS ソースコード • C# • .NET framework
  20. 20. https://docs.microsoft.com/ja-jp/intune-classic/deploy-use/ decide-how-to-prepare-apps-for-mobile-application-management-with-microsoft-intune
  21. 21. HTTPS://GRAPH.MICROSOFT.COM/ 一つのエンドポイントから全てをコントロール 一つのリソースから 複数の Microsoft サービスに接続 オブジェクトやリレーションシップ間を容易に行き来 可能 データやインテリジェンスへのアクセス エンドポイントの検索の必要性を除外 一つの OAuth アクセス トーケンで充分 public API として提供
  22. 22. タスク manager memberOf デバイス メッセージ workingWith Shared with me ownedBy createdBy ファイル 会話 createdBy workingWith イベント trendingAround グループ タスク ノート・メモ ノート・メモ public modifiedBy ユーザー trendingAround
  23. 23. v1.0 users?$filter=user PrincipalName eq 'bob@tenant.onmicrosoft.com'
  24. 24. GET POST PATCH DELETE Microsoft Graph から データを引き出す Microsoft Graph に対し POST/ADD を実行 リソースを PATCH / UPDATE 可能 Microsoft Graph から 個々のリソースを削除 JSON で列挙 JSON でサービスにデータ 送信 JSON でサービスにデータ 送信
  25. 25. GET: https://graph.microsoft.com/v1.0/me { "displayName": "Tenant Admin Account", "preferredLanguage": "en-US", "userPrincipalName": admin@graphdemo.onmicrosoft.com } GET: https://graph.microsoft.com/v1.0/me/memberOf { "@odata.type": "#microsoft.graph.group", "id": "ee0af6a3-db7c-47dd-ac77-b74e2a1b8676", "displayName": "All Users" } GET: https://graph.microsoft.com/v1.0/me/ownedDevices { "value" : […] } GET: https://graph.microsoft.com/v1.0/me/assignedLicenses { "disabledPlans": [], "skuId": "9bc22083-45c4-4d60-93f1-39a540ac7649“ } グループデバイス ライセンス
  26. 26. データ: JSON Format userPrincipalName bob@tenant.onmicrosoft.com
  27. 27. Microsoft Graph https://graph.microsoft.com/ インサイトと関係性 Calendar Personal Contacts Files Notes Org Contacts NotesPeopleUsers ExcelTasksMailGroups データ XCode Eclipse or Android Studio Visual Studio REST開発環境 あなたのアプリ!! 書きやすい言語 (.NET, JS, HTML, Ruby, etc.) Microsoft Azure その他のホスティング (IIS, LAMP, etc.) ソリューション 認証と許可 OpenID Connect & OAuth 2.0
  28. 28. 管理された アプリ デバイス コンプライアンス Intune UX Azure Active Directory ExchangeIntune Service Office 365 Policy Provider App Providerアプリ プロバイダ ポリシー プロバイダ デバイス構成 管理された デバイス AAD Extension
  29. 29. Generic Graph Intune Graph (現在ベータ) クエリ 結果 https://graph.microsoft.com/v1.0/users Returns all users in Azure Active Directory https://graph.microsoft.com/v1.0/devices Returns all devices registered in Azure Active Directory https://graph.microsoft.com/v1.0/groups Returns all Azure Active Directory Groups https://graph.microsoft.com/v1.0/subscribedSkus Returns all SKUs the tenant has assigned クエリ 結果 https://graph.microsoft.com/beta/deviceAppManagem ent/mobileApps Returns all applications configured in the Intune Service https://graph.microsoft.com/beta/deviceManagement/ deviceCompliancePolicies Returns all the Compliance Policies configured in Intune
  30. 30. Sample Graph Android Store App - POST $JSON = @" { "@odata.type": "#microsoft.graph.androidStoreApp", "displayName": "Microsoft Outlook", "description": "Microsoft Outlook", "publisher": "Microsoft Corporation", "isFeatured": true, "appStoreUrl": "https://play.google.com/store/apps/details?id=com.microsoft.office.outlook&hl=en", "minimumSupportedOperatingSystem": { "@odata.type": "#microsoft.graph.androidMinimumOperatingSystem", "v4_0": true } } "@ $uri = "https://graph.microsoft.com/Beta/deviceAppManagement/mobileApps" Invoke-RestMethod -Uri $uri -Method Post -ContentType "application/json" -Body $JSON -Headers $authHeader
  31. 31. セッションアンケートにご協力ください ➢ 専用アプリからご回答いただけます。 decode 2017 ➢ スケジュールビルダーで受講セッションを 登録後、アンケート画面からご回答ください。 ➢ アンケートの回答時間はたったの 15 秒です!
  32. 32. Ask the Speaker のご案内 本セッションの詳細は『Ask the Speaker Room』各コーナーカウンタにて ご説明させていただきます。是非、お立ち寄りください。
  33. 33. © 2017 Microsoft Corporation. All rights reserved. 本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。

×