私は自分のプロジェクトにいくつかのデータを保存するためにJSONStoreを使用していますが、データのロックを解除するために使用するキーを保存したいという問題があります。JSONStoreに暗号化キー/パスワードを保存する方法
MobileFirstはしっかり、クライアント側またはサーバー側でキーを保存
- にどのような方法を提供しています。
- アダプタからキーを取得したり、アダプタに接続して JSONStoreをロック解除する方法はありますか。
私は自分のプロジェクトにいくつかのデータを保存するためにJSONStoreを使用していますが、データのロックを解除するために使用するキーを保存したいという問題があります。JSONStoreに暗号化キー/パスワードを保存する方法
MobileFirstはしっかり、クライアント側またはサーバー側でキーを保存
私は、JSONStoreコレクション内のデータを暗号化すると同時に、ユーザーがパスワードを入力することなくコレクションを復号化できるようにしたいと考えています。
アプローチ1:クライアント側
あなたは、iOSであなたがその目的のためにタッチIDを使用することができることを達成したい場合。 https://www.ibm.com/support/knowledgecenter/SSHS8R_7.1.0/com.ibm.worklight.dev.doc/devref/t_setting_up_touch_id_jsonstore.html
Androidの場合は、Android Marshmallow(6.0)にスタンドアロンの機能がありますが、使用できる指紋スキャナのAPIもあります。 https://developer.android.com/about/versions/marshmallow/android-6.0.html#fingerprint-authentication
基本的に上記のアプローチでは、ランダムなパスワードを作成してデバイスに安全に保存しています。その後、デバイスはユーザーに認証(指紋スキャナまたはピンコード)を要求し、成功した場合はそのランダムパスワードにアクセスします。
アプローチ2:このアプローチではサーバー側
あなたがクライアントから送信されたトークン/文字列をハッシュするアダプタを使用します。これが機能するためにあなたは、すなわちデバイスID WL.Device.getID(一定のまま何かを使用する必要があります)https://www.ibm.com/support/knowledgecenter/SSHS8R_7.1.0/com.ibm.worklight.apiref.doc/html/refjavascript-client/html/WL.Device.html#getID
app.jsあなたのアダプタで
WL.Device.getID(function(response){
var id = response.deviceID;
var req = WLResourceRequest('/adapters/Util/hash', WLResourceRequest.POST);
return req.sendFormParameters({
pass: id
});
}).then(function(response){
var passwordHash = response.responseJSON.hash;
// open JSONStore collection with the passwordHash
});
あなたは/パスワードをハッシュすることができますデバイスIDを取得してデバイスに戻し、JSONStoreコレクションを開きます。あなたのJavaアダプタにパスワードをハッシュしたい場合は、How can I hash a password in Java?ポストを確認することができます
正当なユーザのためにJSONStoreを開く/解読していることを確認するには、何らかの方法で認証する必要があります。