2012-04-12 33 views
4

は、認証とPhoneGapにクライアント証明書を使用した経験がありますか?クライアント証明書で保護されたWebアプリケーションがあり、PhoneGapを使用してこのWebアプリケーションにアクセスしたいと考えています。 Webアプリケーションは、証明書が見つからなかったため私を認証できなかったので、私の要求を拒否しました。私はアンドロイドのデフォルトブラウザからデータ形式PKCS#12のクライアント証明書をダウンロードしましたが、私はAndroidのグローバルキーストアの代わりにブラウザのキーストアに格納されているだけです。これを要約すると:PhoneGapでクライアント証明書を使用した認証

1.)とにかくAndroidでの認証にクライアント証明書を使用することは可能ですか? 2)そうなら、PhoneGapでも可能ですか? 3.)もう一度答えが得られたら、どうすればいいですか?

ありがとうございます!

よろしく、ラルフ

+1

本当に??誰もいない?お願いします!!私が今見出したことの1つは、クライアント証明書がAndroid 4+でしか動作しないということです。 – RaHe

答えて

6

ないより遅く:(少なくともSDK 16まで)4+アンドロイドのための問題はWebViewのをオーバーライドすることはできませんSDKの隠されたonReceivedClientCertRequest、とクライアント証明書の認証を拒否していることです。

これはandroid.jarする隠されたクラスを含むでバイパス(https://devmaze.wordpress.com/2011/01/18/using-com-android-internal-part-1-introduction/ページを参照)、オーバーライドCordovaWebViewClient :: onReceivedClientCertRequestで(https://github.com/apache/incubator-cordova-androidから)コルドバをコンパイルすることができます。

私は、initのアプリケーションがプライベートキーと証明書チェーンを読み込むようにしました(ユーザーは最初のアプリのexecだけでキーチェーンから選択します)。これは別のスレッドで行う必要があります。私はこれが主なスレッドが使用する証明書やロードする証明書チェーンを選択するのを待つので、クライアント証明書認証がまだサポートされていない理由であると思われます。

EDIT: これは短命た:onReceivedClientCertRequestは、Android 4.2(SDK 17)で除去しているようです

速すぎた結論:彼らはちょうどWebViewClientClassicExtクラスに機能を移し、あなたのこれだけWebViewClientではなくCordovaWebViewClientを拡張する必要があり、4.2でも動作します。

+0

WebViewClientClassicExtはAndroid 4.2および4.3用のAndroid.Webkitパッケージには存在しないようです。 – ridan

関連する問題