社内の iPad アプリでこのようなシステムを構築しました。
システム設定、プロファイルなどを忘れてください。この方法でインストールされたすべての証明書は、サードパーティのアプリからはアクセスできず、システム アプリからのみアクセスできます。おそらく、Apple キーチェーンにインストールされているためです。
これらの 3 つの方法を調べて証明書をロードし、最後の方法を使用しました。
- あなたがすでに見たように、アプリにバンドルすることは実用的ではありません
- 別のアプリ (メールなど) からファイルを送信する
- リンクを使用してダウンロードします(私がしたこと)
序文
- CA、自動/手動による証明書の発行/取り消し方法などを使用して、simil-PKI を構築したと思います。
したがって、問題はデバイスへの配信です。
- すべてのソリューションについて、秘密鍵と証明書を PKCS #12 形式で強力なパスワードとともに保存することをお勧めします。
- MDM を使用してデバイスを管理します。アプリが内部用で、会社のデバイスで使用される場合は、追加オプションを監視します (たとえば、Meraki は無料ですが、ManagedAppConfiguration を処理しません)。
ソリューション
解決策 1)
特定の証明書を使用して異なるバージョンのアプリを生成するのは非常に困難 (または不可能) であるため、実用的ではありません。言うまでもなく、ユーザーのすべてのデバイスで特定のバージョンの配布を処理することはほぼ不可能です。
解決策 2)
最も安全な方法は、ユーザーがパスワードを選択して .p12 ファイルを暗号化できるようにすることです。そのため、p12 を開くときにユーザーは自分のパスワードを入力する必要がありますが、これはそれを機能させるための他の作業につながります。安全性は劣りますが有効な方法は、アプリに埋め込まれた強力なパスワードを 1 つ使用し、それをすべての .p12 ファイルに使用することです。
解決策 3)
2) と同様ですが、Web アプリケーションの特定の URI からファイルを直接ダウンロードします。これにより、アプリが自分自身を識別できるため、自動構成が可能になります。
基本的にこれらの手順は次のとおりです。
- アプリは、HTTPS 経由でアプリケーションの特定の URL に接続します。
- サーバー証明書が正しいことを確認します (信頼されたオリジン)。
- 認証するために何かを送信します。
私たちの場合、デバイスの準備中に設定したデバイス名を使用し、MDM を使用してリモートで変更できます。
- 証明書を含む構成バンドルをダウンロードします
JSON ペイロードを使用して、base64 でエンコードされた PKCS #12 ファイルとその他のデータを送信し、アプリを構成します。
MDM が ManagedAppConfiguration をサポートしている場合、これらの操作を少し変更して、より柔軟な動作を構築できます。認証のためのデバイス名の使用を完全に廃止します。
WWDC 2014 #704 - エンタープライズおよび教育向けアプリの構築 ~13:00
Apple Developer - ManagedConfig サンプル アプリ
追加されたパラノイア
すべてを記録してください!アプリのこの部分が行うすべて (失敗した/間違った要求、存在しないデバイス名の要求など)
新しいデバイスを構成する必要がある場合にのみ、構成 URL がアクティブ化/非アクティブ化されます。
これはさまざまな方法で実行できます。私の webapp は特定のファイルの存在をチェックするのでtouch APP_CERTIFICATES_CONFIG_ENABLED
、自動構成サービスを有効にして、ファイルを削除するすべてを無効にするなどのことができます。
私の監督なしに証明書が回らないようにするためです。