-
OTAプロファイル登録に必要なコンポーネント
- ユーザ認証サーバ
- プロファイル配信サーバ
- SCEPサーバ
-
ユーザ認証サーバ
配信するユーザを限定するのであれば、そのユーザを認証できる仕組みが必要。
特に制限はない。 -
プロファイル配信サーバ
ユーザ認証サーバと同一でかまわない。
iOSからSCEP認証プロセスを開始するのに必要なエンドポイントを提供する。
特に制限はない。 -
SCEPサーバ
デバイス内の秘密鍵を用いて、デバイス一意性をプロファイル配信サーバで保証するために、
SCEPを用いてデバイスに証明書を発行するサーバ。
経験上では、Windows Server 2008 Enterprise / DataCenter EditionでしかiOSとの連携動作を確認していない。
他の選択肢としては、OpenSCEP, EJBCA, OpanCA等があると思うが、動くか、動いている例があるのかは知らない。 -
登録ステップ概要
- ユーザ認証サーバは、iOSからのアクセス(例:HTTP等)に対し、ユーザを認証する
- iOSから、プロファイル配信サーバが用意したプロファイル登録用プロファイル配信エンドポイントにアクセスする
- プロファイル配信サーバは、必要であれば、続く本HTTPセッションを保たないiOSからのアクセスに対応するための一時トークンを、プロファイル登録エンドポイントとしてプロファイル登録開始用プロファイルに含めるURLにGETパラメータなどで含めておく。
- プロファイル配信サーバは、プロファイル登録用プロファイルに上記情報及びリクエストするデバイス情報を含め、iOSに返す。
- iOSがプロファイルを認識し、[設定]->[プロファイル]ページにてOTAプロファイル登録ステップ
を開始する - iOSは、デバイス内の証明書を用いてリクエストされたデバイス情報のPlistに署名し、それをボディとしてプロファイル登録サーバにアクセスする。
- プロファイル登録サーバは、署名がSCEPサーバから発行された証明書に基づくものであるかをチェックし、そうでないこと(デバイス内部の証明書であること)を確認して、SCEPサーバに証明書発行用チャレンジを要求する。
- プロファイル配信サーバは、実際のプロファイル配信に用いる証明書を取得するために用いる証明書を取得するための(2回書いてあるのは書き間違いではない)、SCEP登録要求リクエストとして、上記チャレンジを含めたプロファイルをiOSに返す。
- iOSは、上記チャレンジを用いてSCEPサーバから証明書を取得し、その証明書でリクエストボディに署名して再度プロファイル配信サーバにアクセスする。
- プロファイル配信サーバは、証明書の発行元を検証し、確認できれば、更にもう一つのSCEP発行用チャレンジを取得する。
- プロファイル配信サーバは、上記チャレンジと、実際に配信する構成プロファイルを合わせたプロファイルを、今回のアクセスでデバイスが用いた証明書を使って暗号化したプロファイルを、暗号化プロファイルとして含めたプロファイルをiOSに返す(表現が冗長なのは間違いではない)
- デバイスは、上記チャレンジを用いて、SCEPから再度別の証明書を取得し、プロファイルをインストールする。
-
備考
サンプルのWEBrickコードが、Appleのドキュメントの右上からダウンロードできる。
WS2008のNDES(Network Device Enrollment Service) のMSCEP(Microsoft Simple Certificate Enrollment Protocol)を用いるが、Active Directoryを有効にしてActive Directory Certificate Serviceを用い、エンタープライズCAとしないと、iOSと連携して動かなかった。
そのほかにも、NDESのセットアップで気をつけなければいけないことも色々あるので、検索して確認要
More than 5 years have passed since last update.
Register as a new user and use Qiita more conveniently
- You get articles that match your needs
- You can efficiently read back useful information
- You can use dark theme