はじめに
②の記事で、Authenticator Demoアプリを使ってQRCode読み取ったあと、デバイスの検証に進むことができませんでした。なぜデバイスの検証に進めないのか調べてみました。
Android Studio と IBM Security Verify SDKをはじめて触ってみる②
オーセンティケータの状態を、/v1.0/authenticators APIを用いて比較してみました。
1.IBM Security VerifyアプリでQRCodeを読み取った場合
まず最初に、IBM Security Verifyアプリを使ってQRCodeを読み取り、指紋認証まで実施したときのオーセンティケータを確認しました。
{
"total": 1,
"authenticators": [
{
"owner": "75500008BB",
"clientId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"creationTime": "2021-08-04T03:21:53.635Z",
"attributes": {
"applicationVersion": "2.5.0",
"deviceType": "SOV37",
"accountName": "testuser",
"platformType": "Android",
"pushToken": "yyyy~~~~~~yyyyy",
"deviceName": "SOV37",
"deviceId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"fingerprintSupport": true,
"verifySdkVersion": "2.1.4",
"osVersion": "10",
"frontCameraSupport": true,
"faceSupport": false,
"applicationId": "com.ibm.security.verifyapp"
},
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"state": "ACTIVE",
"enabled": true
}
],
"limit": 200,
"count": 200,
"page": 1
}
2.Authenticator DemoアプリでQRCodeを読み取った場合
次にAuthenticator Demoアプリを使い、オーセンティケータ登録/確認しました。
IBM Security Verifyアプリとの違いとしては以下の点がありました。
- PushTokenが空白
- Stateが"ENROLLING"になっている
StateがActiveになっていないため、デバイスの検証に進めまないようでした。
また、Push通知に関するコードは実装されていないため、PushTokenが設定されていませんでした。
{
"total": 1,
"authenticators": [
{
"owner": "75500008BB",
"clientId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"creationTime": "2021-08-04T01:52:34.825Z",
"attributes": {
"applicationVersion": "1.0",
"deviceType": "SOV37",
"accountName": "testuser",
"platformType": "Android",
"pushToken": "",
"deviceName": "SOV37",
"deviceId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"fingerprintSupport": true,
"verifySdkVersion": "2.1.4",
"osVersion": "10",
"frontCameraSupport": true,
"faceSupport": false,
"applicationId": "com.ibm.security.verifyapp"
},
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"state": "ENROLLING",
"enabled": true
}
],
"limit": 200,
"count": 200,
"page": 1
}
3.Stateを"ENROLLING"から "ACTIVE"に変更するには?
Push通知が来ないため、多要素認証としてまだ利用できませんが、
とりあえずStateを"ENROLLING"から "ACTIVE"に変更できないかと試行錯誤しました。
結果としては、refreshを行うことでStateが"ACTIVE"に変わりました。
AuthenticatorContext.sharedInstance().refresh(mfaAuthenticator,
new IResultCallback<Void>() {
@Override public void handleResult(Void unused, VerifySdkException e) {
}
});
StateがACTIVEになると、デバイスの検証ボタンがクリックできる状態になりました。
最後に
全4回にわたりIBM Security Verify SDK+デモアプリケーションを使ってなにができるのか試行錯誤してみました。
(一覧)
Android Studio と IBM Security Verify SDKをはじめて触ってみる①
Android Studio と IBM Security Verify SDKをはじめて触ってみる②
Android Studio と IBM Security Verify SDKをはじめて触ってみる③
Android Studio と IBM Security Verify SDKをはじめて触ってみる④