Code Monkey home page Code Monkey logo

emlauncherprofileservice's Introduction

EMlauncherProfileService

iOS OTA Profile service for EMLauncher

Install

このリポジトリを取得して、profile-service.rbを適当なディレクトリへと設置してください。

現状の設定ではSCEPサービスのためのクライアントとの通信にはTCPポートの8443番を使用するのでファイアウォールなどの設定でクライアントとの通信を許可してください。 ポート番号を変更するにはスクリプトの49行目@@portを変更します。

    49	# SCEP service port number.
    50	@@port = 8443

Ruby開発環境ではruby 2.4.0p0を利用しています。 EMlauncherのMySQLデータベースとの通信のためにmysql2を、Profile Serviceで配布されるWebClipのアイコンの生成にbase64を使用しています。

EMlauncherからのProfile Serviceの要求の参照と、Profile Serviceによって取得しrたテスト端末のUDIDの記録のためにEMlauncherのMySQLテーブルへのアクセスが必要となるので、EMlauncher側でデータベースのテーブル(emlauncher.ios_device_infoのみで可)に対してのDELETE, INSERT, SELECT, UPDATE権限を付与しておいてください。

MySQLサーバーへの接続情報はスクリプトの484行目、@@mysql_connection_infoを適当に修正します。 EMlauncherで使用するデータベースの名称なども必要であれば変更します。

    55	# Connection information for EMlauncher MySQL Server
    56	@@mysql_connection_info = {:host => 'emlauncher.example.com', :username => 'emlauncher', :password => 'password', :encoding => 'utf8', :database => 'emlauncher'}

SCEPサービスを稼働させるサーバーのホスト名(FQDN)を@@addressに設定します。

    48	# explicitly set this to host ip or name if more than one interface exists
    49	@@address = "scep.example.com"

Appleが提供するオリジナルのスクリプトでは自己証明書を使う前提となっているため、SSL通信やSCEPの証明書の作成に使用するためのSSL証明書はスクリプトの起動時に自動的に作成されます。 同時に端末にインストールするRoot CAの証明書も自動的に生成され、以下の様にSCEPサービスのサーバーURLのトップページへとアクセスして「root certificate」のリンクをクリックすることで自己証明書用のRoot CAの証明書を端末へとインストールすることができます。(※この場合、認証局の証明書は自己証明書、俗に言う「オレオレ証明書」となるため、端末へのインストールには警告が表示されます)

https://scep.example.com:8443/

また、このページの「enroll」リンクをクリックしてSCEPサービスの動作確認用にWebClipのプロファイルを端末へとインストールすることができます。 インストールされるWebClipは単純な@@emlauncher_urlに設定されたURLを開くだけのプロファイルです。

EMlauncher向けの実装では、オリジナルに若干手を加えてLet's Encryptなどで取得した正規のSSL証明書を利用しての認証を行える様になっています。 例えばLet's Encryptで取得したサーバー証明書を使う場合にはprofile-service.rbを展開したディレクトリにLet's Encryptで取得したサーバー証明書のcert.pemをssl_cert.pemとして、chain.pemをssl_chain.pemとして、privkey.pemをssl_private.pemとしてそれぞれコピーすることで正規のSSL証明書を利用することができます。 ※オリジナルが自己証明書を起動時に生成する仕組みとなっているため、profile-service.rb中の@@addressに設定されているドメイン名とSSL証明書に記録されているDNSネームが一致しない場合、スクリプトはSSL証明書を新たに作成しようとするので注意してください。

スクリプト52行目の@@emlauncher_urlには、SCEPサービスによって最終的にインストールされるWebClipをタップした際に接続するEMlauncherのWebサーバーURLを設定します。

    51	# EMlauncher URL.
    52	@@emlauncher_url = "https://emlauncher.example.com/"

Profile ServiceによってiOSテスト端末へとインストールされるWebClipのアイコンに使用する画像画像のファイルを同じくprofile-service.rbを展>開したディレクトリにWebClipIcon.pngというファイル名で保存しておくと、この画像がiOS端末のホーム画面に置かれるWebClipのアイコン画像に使われます。

スクリプトの60行目の@@emlauncher_titleを変更すると、SCEPサービスで使われる証明書やプロフィールに表示されるタイトルやWebClipアイコンに表示されるキャプションを変更できます。

    57	# String for Display WebClip Icon title and other
    58	@@emlauncher_title = "EMlauncher"

54行目の@@scep_prefixはProfile Serviceで生成されるプロフィールのペイロード識別子のプレフィックスに使われる文字列です。

    53	# prefix for profile payload
    54	@@scep_prefix = "com.example"

emlauncherprofileservice's People

Contributors

kazuhidet avatar takehiakihiro-fb-randd avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.