Upgrade to Pro — share decks privately, control downloads, hide ads and more …

iOSDCJapan2021_day1-B-1410

D79df863ac26fcad4777f67a669bdacd?s=47 feedtailor
September 18, 2021

 iOSDCJapan2021_day1-B-1410

MDMを使って業務用アプリの初期設定を自動化する技術

D79df863ac26fcad4777f67a669bdacd?s=128

feedtailor

September 18, 2021
Tweet

Transcript

  1. iOSDC Japan 2021 MDMを使って 業務用アプリの初期設定を 自動化する技術 @oishi

  2. 大石 裕一 株式会社フィードテイラー 2008〜 iPhoneアプリ開発事業 2010〜 エンタープライズiOS アプリ開発・導入支援事業 2016 iOSアプリ開発事業整理

    2020〜 エンタープライズiOS 研究所 設立 @oishi
  3. エンタープライズiOS研究所 ( https://www.micss.biz/ )

  4. MDM (Mobile Device Management) iOS Managed App Configuration ABM (Apple

    Business Manager) Single App Mode ASAM (Autonomous Single App Mode) VPP (Volume Purchase Program) ADP (Apple Deployment Program) ADEP (Apple Developer Enterprise Program) DEP (Device Enrollment Program) Apple Configurator2 Configuration Profile Custom App Custom B2B Guided Access Per App VPN Supervised Mode Apple VAR
  5. MDM (Mobile Device Management) iOS Managed App Configuration ABM (Apple

    Business Manager) Single App Mode ASAM (Autonomous Single App Mode) VPP (Volume Purchase Program) ADP (Apple Deployment Program) ADEP (Apple Developer Enterprise Program) Apple Configurator2 Configuration Profile Custom App Custom B2B Guided Access Per App VPN Supervised Mode Apple VAR キーワード多すぎ!なエンタープライズiOSの世界を俯瞰する iOSDC2020
  6. MDM (Mobile Device Management) iOS Managed App Configuration ABM (Apple

    Business Manager) Single App Mode ASAM (Autonomous Single App Mode) VPP (Volume Purchase Program) ADP (Apple Deployment Program) ADEP (Apple Developer Enterprise Program) DEP (Device Enrollment Program) Apple Configurator2 Configuration Profile Custom App Custom B2B Guided Access Per App VPN Supervised Mode Apple VAR
  7. Managed App Configuration (MDMからアプリ用の設定値を配布する仕組み)

  8. 「企業ごとに異なるが、同一企業内では一緒」の初期設定値 サーバURL 業務用アプリあるある

  9. A. 初回のみだが、全従業員に入力して貰う B. 全従業員分を入力してから、端末配布する C. 設定値埋め込みの自社専用ビルドを依頼する サーバURL 従業員が数人なら良いが500人なら... 500人全員にこの設定を?

  10. App Store Connect ABM MDM App Store Managed App Configuration

    を使うと...
  11. App Store Connect ABM MDM App Store App Managed App

    Configuration を使うと...
  12. App Store Connect ABM MDM App Store App Managed App

    Configuration を使うと... App Config serverurl = https://feedtailor.example.com/
  13. MDMから配布される値を参照して起動時に自動設定 https://feedtailor.example.com/ Zero Touch AppConfiguration 🙌 😀

  14. MDMから配布される値を参照して起動時に自動設定 https://feedtailor.example.com/ Zero Touch AppConfiguration 🙌 😀 • 起動するだけ •

    顧客ごとのビルドは不要=ソース管理1本化
  15. App Store Connect ABM MDM App Store App 送り手と受け手の連携

  16. MDM側 • Managed App Configuration 対応が前提 • 配信するアプリの付随情報として key -

    value を登録 BizMobile Go!
  17. アプリ側 専用キーを指定して UserDefaults から dictionary を取得

  18. 公式サンプル https://developer.apple.com/library/archive/samplecode/sc2279/Introduction/Intro.html

  19. jamfによる公開ソース https://github.com/jamf/ManagedAppConfigLib

  20. 具体例1 Managed App Configuration なし Managed App Configuration あり

  21. 具体例2 https://feedtailor.example.com/list.json https://example.com/list.json organization = feedtailor 一般ユーザ向けアプリを企業向けカスタマイズ版アプリとして提供する実験

  22. 具体例3 AppStoreから個人端末に業務用アプリをインストールして使用することを阻止

  23. 具体例3 AppStoreから個人端末にインストールして使用することを阻止 lineworks_key = xxxxxxxxxxxxxxx LINE WORKS 会社端末 User Company

    Password lineworks_key 個人端末 User Company Password
  24. Managed App Configuration に必要なもの • Managed App Configuration 対応のMDM •

    MDMサービス上での key-value 登録 • MDMにチェックイン済みのiOS端末 • Managed App Configuration 用のアプリ側実装 • Apple Business Manager ※ iOS端末は監視モード(Supervised Mode)でなくても良い
  25. 端末ごとに異なる値も入れてあげたい 応用技 https://feedtailor.example.com/ 🤔

  26. 端末ごとに異なる値を指定できるMDMもある(変数展開) 応用技 deviceid deviceid

  27. None
  28. ABM MDM App Store App Config deviceid = $device_id App

  29. ABM MDM App Store deviceid = FT-01 deviceid = FT-03

    deviceid = FT-05
  30. ABM MDM App Store deviceid = FT-01 deviceid = FT-03

    deviceid = FT-07 Settings Info Server FT-03用の設定下さい JSON for FT-03 自前の設定情報サーバを用意すれば端末ごとに異なる設定も自由自在
  31. 変数展開されたMDM由来の値を参照してデバイス毎に自動設定 https://feedtailor.example.com/ Zero Touch App Configuration 😀 testuser03 テストユーザ03

  32. Do not store passwords or private keys in these dictionaries.

  33. MDM (Mobile Device Management) iOS Managed App Configuration ABM (Apple

    Business Manager) Single App Mode ASAM (Autonomous Single App Mode) VPP (Volume Purchase Program) ADP (Apple Deployment Program) ADEP (Apple Developer Enterprise Program) DEP (Device Enrollment Program) Apple Configurator2 Configuration Profile Custom App Custom B2B Guided Access Per App VPN Supervised Mode Apple VAR
  34. App Store Connect ABM MDM PUBLIC PRIVATE PRIVATE

  35. App Store Connect ABM MDM PUBLIC PRIVATE PRIVATE DEVELOPMENT DEPLOYMENT

  36. MDMプロトコルリファレンス https://developer.apple.com/business/documentation/MDM-Protocol-Reference.pdf Managed App Configuration 公式サンプル (Objective-C) https://developer.apple.com/library/archive/samplecode/sc2279/Introduction/Intro.html GitHub :

    jamf/ManagedAppConfigLib (swift) https://github.com/jamf/ManagedAppConfigLib LINE WORKS ヘルプセンター - 外部MDM連携 https://guide.worksmobile.com/jp/admin/admin-guide/security/mobile-security/3rd-party-mdm/ キーワード多すぎ!なエンタープライズiOSの世界を俯瞰する (@iOSDC2020) https://www.youtube.com/watch?v=j3LHNwhUHZQ 参考資料
  37. iOSDC Japan 2021 MDMを使って 業務用アプリの初期設定を 自動化する技術 @oishi