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

iOSDCJapan2021_day1-B-1410

feedtailor
September 18, 2021

 iOSDCJapan2021_day1-B-1410

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

feedtailor

September 18, 2021
Tweet

More Decks by feedtailor

Other Decks in Technology

Transcript

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

    View Slide

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

    View Slide

  3. エンタープライズiOS研究所 ( https://www.micss.biz/ )

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  7. Managed App Configuration
    (MDMからアプリ用の設定値を配布する仕組み)

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  12. App Store Connect ABM MDM
    App Store
    App
    Managed App Configuration を使うと...
    App Config
    serverurl = https://feedtailor.example.com/

    View Slide

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

    View Slide

  14. MDMから配布される値を参照して起動時に自動設定
    https://feedtailor.example.com/
    Zero Touch AppConfiguration
    🙌
    😀
    ● 起動するだけ
    ● 顧客ごとのビルドは不要=ソース管理1本化

    View Slide

  15. App Store Connect ABM MDM
    App Store
    App
    送り手と受け手の連携

    View Slide

  16. MDM側
    ● Managed App Configuration 対応が前提
    ● 配信するアプリの付随情報として key - value を登録
    BizMobile Go!

    View Slide

  17. アプリ側
    専用キーを指定して UserDefaults から dictionary を取得

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  24. Managed App Configuration に必要なもの
    ● Managed App Configuration 対応のMDM
    ● MDMサービス上での key-value 登録
    ● MDMにチェックイン済みのiOS端末
    ● Managed App Configuration 用のアプリ側実装
    ● Apple Business Manager
    ※ iOS端末は監視モード(Supervised Mode)でなくても良い

    View Slide

  25. 端末ごとに異なる値も入れてあげたい
    応用技
    https://feedtailor.example.com/
    🤔

    View Slide

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

    View Slide

  27. View Slide

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

    View Slide

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

    View Slide

  30. ABM MDM
    App Store
    deviceid = FT-01 deviceid = FT-03 deviceid = FT-07
    Settings Info
    Server
    FT-03用の設定下さい JSON for FT-03
    自前の設定情報サーバを用意すれば端末ごとに異なる設定も自由自在

    View Slide

  31. 変数展開されたMDM由来の値を参照してデバイス毎に自動設定
    https://feedtailor.example.com/
    Zero Touch App Configuration
    😀
    testuser03
    テストユーザ03

    View Slide

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

    View Slide

  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

    View Slide

  34. App Store Connect ABM MDM
    PUBLIC
    PRIVATE
    PRIVATE

    View Slide

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

    View Slide

  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
    参考資料

    View Slide

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

    View Slide