1. 変更履歴
| 変更箇所 | 内容 |
|---|---|
|
linkAccount、showAccountのメソッドを追加。 |
2. はじめに
本ドキュメントは Trust Idiom/ID を導入される企業様に向けた、モバイルアプリ (iOS) 向けの SDK のインストール方法、実装方法などをまとめたマニュアルです。 本ドキュメント及び SDK の構成については今後変更される場合があります。
2.1. 動作環境
SDK は以下の環境での動作を保証しています。
OS |
iOS 13.x 以上 |
アーキテクチャ |
ARM |
FIDO に使用している NC7000-3A-FS は x86 アーキテクチャの動作をサポートしていないため、iOS シミュレータでのデバッグ・実行は行えません。動作確認を行う際は iOS デバイスをご用意ください。
2.2. ライブラリ構成
SDK は以下のモジュールで構成されています。
| モジュール名 | 説明 |
|---|---|
TrustIDSDK |
Trust Idiom/ID SDK のコアモジュール |
NCAdapter |
NC7000-3A-FS のアダプターモジュール |
Trust Idiom/ID SDK の基本機能は TrustIDSDK モジュールに搭載されています。その中で FIDO (生体認証など) に関わる機能は NC7000-3A-FS を包含した nc-adapter モジュールで提供しています。
2.3. NC7000-3A-FS について
NC7000-3A-FS は日本電気株式会社(NEC)製のネイティブアプリ向けの FIDO UAF1.1 に対応した認証機能の SDK です。
Trust Idiom/ID では FIDO 機能に NC7000-3A-FS を使用しているため、FIDO 機能の振る舞いを含めた仕様は本製品に準拠します。
| バージョン |
|---|
1.5.7 |
3. SBIデジトラスト株式会社へ一部プロジェクト情報を提出する
NC7000-3A-FS を利用するためには、SBIデジトラスト株式会社へ以下の一部プロジェクト情報を事前に提出いただく必要があります。具体的な提出方法に関しては、個別に担当者へご相談ください。
3.1. バンドルID(Bundle identifier)
NC7000-3A-FS のライセンス文字列を発行するには、導入先 iOS プロジェクトの バンドルID が必要です。
4. Firebase SDK のインストール
Trust Idiom/ID は Firebase のサービスである Firebase Cloud Messaging (以下 FCM) を利用しています。
Push 通知機能を利用する場合は Firebase SDK のインストールが必要です。Firebase SDK の導入手順は以下のドキュメントを参考にしてください。
Firebase は次のサービスを利用します。
-
Firebase Cloud Messaging (FCM)
5. Trust Idiom/ID SDK のインストール
5.1. インストールする方法
Trust Idiom/ID SDK は Zip ファイルとして提供しています。担当者から受領した上でインストールを進めてください。
5.2. Trust Idiom/ID SDK のインストール
5.2.1. Xcode へのインポート
Zip ファイルを解凍すると次のファイル構成になっていることが確認できます。
| ファイルまたはフォルダ名 | 説明 |
|---|---|
|
Trust Idiom/ID SDK フレームワーク |
|
Trust Idiom/ID SDK の設定ファイル |
|
NC7000-3A-FS 拡張フレームワーク |
|
NC7000-3A-FS トランザクション認証拡張フレームワーク |
|
FIDO ライブラリおよび設定ファイル |
これらのファイル・フォルダを Xcode プロジェクトにドラッグ&ドロップで追加します。具体的な内容については下記手順を参照してください。
TrustIDSDK.framework TrustID-Info.plist NCAdapter.framework NCPlugin◯◯.framework は「Copy items if needed」にチェックが付いていること、「Create folder references」を確認します。
FIDO は「Copy items if needed」にチェックが付いていること、「Create Groups」にチェックが付いていることを確認します。
下図のようになれば正常に追加できています。 FIDOディレクトリ配下の nc7000_3a_fs_client.framework, SVGKit.famework が含まれない場合はドラッグアンドドロップで追加します。
General > Frameworks, Libraries, and Embedded Content
Build Phases > Copy Bundle Resources
5.2.2. Runpath Search Paths の追加
「Runpath Search Paths」に「@executable_path/FIDO」を追加します。
Build Settings > Linking > Runpath Search Paths
5.2.3. NC7000-3A-FS 設定ファイルの修正
FIDO ディレクトリには NC7000-3A-FS の実行に必要な設定ファイルなどが含まれています。
| ファイルまたはフォルダ名 | 説明 |
|---|---|
|
トランザクション確認画面を表示するクラス |
|
トランザクション確認画面を表示するクラス |
|
NC7000-3A-FS フレームワーク本体 |
|
NC7000-3A-FS 設定ファイル |
|
SVG 描画ライブラリ |
NC7000-3A-FS の実行には導入するアプリごとに提供されるライセンス文字列が必要です。ライセンス文字列を受領後、NC7000-3A-FS の設定ファイルである nc7000_3a_fs.bundle 内の fs_authtag.txt を書き換えます。
fs_authtag.txt の内容は次のようになっています(ライセンス文字列は一例)。
89c6ff64f3a9aabcffffffff20260401
トランザクション確認画面をカスタマイズする場合、NC7000-3A-FS の設定ファイルである nc7000_3a_fs.bundle 内の fs_config.txt を書き換えます。 [_トランザクション確認画面] については後述している内容を確認してください。
"fingerprint":{
"transaction_display": "ファイル名"
},
"faceID":{
"transaction_display": "ファイル名"
},
fs_config.txt の詳細な設定値については、NC7000-3A-FSのドキュメントのSG値を確認してください。
5.2.4. FaceID の設定
FaceID機能を利用するため、 iOS11以降ではFaceID使用目的を記載しないとアプリケーションが動作しません。
Info.plistに「Privacy – Face ID Usage Description」を追加し、使用目的を記載してください。 詳細ついてはNC7000-3A-FSのドキュメントの UAF APIリファレンス のFaceIDに関する記載箇所を参照してください。
5.2.5. Bitcodeの設定
Trust Idiom/ID SDKの利用において、Bitcodeをオフにする必要があります。
BuildSetting > Build Options > Enable Bitcode で値をNoにします。
5.3. プロジェクトの設定
5.3.1. Trust Idiom/ID SDK の設定
SDK の設定ファイルとして TrustID-Info.plist を Info.plist と同一フォルダ配下に配置します。
| key | 説明 |
|---|---|
CLIENT_ID |
SDK クライアントID ※1 |
TENANT_ID |
テナントID ※1 |
WEB_ENDPOINT |
WebView画面のエンドポイント ※1 |
WEB_VERSION |
WebViewのバージョン ※3 |
ENV |
動作環境 (開発用: DEBUG、 本番用: RELEASE) |
AUTHENTICATION_ENDPOINT |
認証リクエストエンドポイント |
TOKEN_ENDPOINT |
トークンエンドポイント |
REFRESH_TOKEN_EXPIRES_IN |
リフレッシュトークンの有効期限 ※2 |
※1 は Trust Idiom/ID で発行した値を設定する必要があります。担当者までご連絡ください。 ※2 は Trust Idiom/ID 導入時に取り決めた値になります。 ※3 は デフォルト値は1.0。機能改修で、バージョンを上げる場合は設定を行う。
5.4. Push Notifications の設定
本サービスはプッシュ通知を FCM を介して利用するため、Capabilities に Push Notifications を追加する必要があります。未追加の場合は Xcode Project 設定の Capability から Push Notifications を追加します。
また、アプリでプッシュ通知を利用するには Apple Developer 上で App の Push Notification を有効化し、Firebase に認証キーを登録する必要があります。詳しくは FCM のドキュメントを参照してください。
5.5. クイックスタート
Trust Idiomの画面が起動することを確認します。
import UIKit
import TrustIDSDK
class LoginViewController: UIViewController {
let service = TrustIDV2Service.shared
override func viewDidLoad() {
super.viewDidLoad()
service.configure()
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
service.login(from: self, path: "/1.0/tid/",clientId: "", scope: ["openid"])
}
}
6. Trust Idiom/ID SDK の提供する実装方法
Trust Idiom/ID では、SDKの導入を実現するために以下の実装方法を提供しています。
6.1. TrustIDV2Serviceの初期設定
アプリ起動後に AppDelegate などで TrustIDV2Service.shared.configure() を実行ください。
このメソッドを実行すると FIDO の設定がされます。
Trust Idiom/ID の機能を利用するために必要な実装については次項より解説します。 各メソッドの詳細はAPIドキュメントをご確認ください。
6.2. login
ネイティブアプリでログインをするためのメソッドです。トークンとユーザー情報を取得します。 本人確認が未実施の場合、Trust Idiomの画面が表示されます。 scopeに応じてユーザー情報が返却されます。
let service = TrustIDV2Service.shared
service.delegate = self // 実装したdelegateを設定する
service.login(from: self, clientId: "", scope: ["openid", "profile", "phone", "email", "address"])
以下のデリゲートメソッドで処理のハンドリングを実施できます。
extension ViewController: TrustIDV2ServiceDelegate {
func didLoginSuccess(loginResponse: LoginResponseObj) {
// 成功時のハンドリング
}
func didLoginFailure(error: LoginErrorObj) {
// 失敗時のハンドリング
}
}
6.3. getToken
トークンを取得するメソッドです。 ログイン後に、振込など更新系のトークンを取得する際に利用します。 scopeは適宜指定してください。
let service = TrustIDV2Service.shared
service.delegate = self // 実装したdelegateを設定する
service.getToken(from: self, clientId: "", scope: ["openid", "profile", "phone", "email", "address"])
以下のデリゲートメソッドで処理のハンドリングを実施できます。
extension ViewController: TrustIDV2ServiceDelegate {
func didGetTokenSuccess(tokenResponse: TokenV2ResponseObj) {
// 成功時のハンドリング
}
func didGetTokenFailure(error: GetTokenErrorObj) {
// 失敗時のハンドリング
}
}
6.4. execute
Trust Idiomでカスタマイズ機能を呼び出すメソッドです。Trust Idiomのカスタマイズ画面が起動します。
let service = TrustIDV2Service.shared
service.delegate = self // 実装したdelegateを設定する
service.execute(from: self, path: "カスタマイズ時に規定したパス")
以下のデリゲートメソッドで処理のハンドリングを実施できます。
extension ViewController: TrustIDV2ServiceDelegate {
didExecuteSuccess(path: String, query: [String: String]?, notificationToken: String, miscData: [String: String], status: AccountStatusObj, data: String?) {
// 成功時のハンドリング
}
func didExecuteFailure(path: String, query: [String: String]?, notificationToken: String, miscData: [String: String], error: ExecuteErrorObj) {
// 失敗時のハンドリング
}
}
6.5. linkAccount
Trust Idiomアカウントが連携されているかを確認します。本人確認が未実施の場合、Trust Idiomの画面が表示されます。
※更新系など一部の機能のみでTrust Idiomを利用する場合に利用します。
let service = TrustIDV2Service.shared
service.delegate = self // 実装したdelegateを設定する
service.linkAccount(from: self, notificationToken: "fcm tokenを設定する")
以下のデリゲートメソッドで処理のハンドリングを実施できます。
extension ViewController: TrustIDV2ServiceDelegate {
didLinkAccountSuccess(notificationToken: String, miscData: [String: String], status: AccountStatusObj, data: String?) {
// 成功時のハンドリング
}
func didLinkAccountFailure(notificationToken: String, miscData: [String: String], error: LinkAccountErrorObj) {
// 失敗時のハンドリング
}
}
6.6. showAccount
Trust Idiomアカウントの照会機能。Trust Idiomのアカウント照会の画面が表示されます。
let service = TrustIDV2Service.shared
service.delegate = self // 実装したdelegateを設定する
service.showAccount(from: self, notificationToken: "fcm tokenを設定する")
以下のデリゲートメソッドで処理のハンドリングを実施できます。
extension ViewController: TrustIDV2ServiceDelegate {
didShowAccountSuccess(notificationToken: String, miscData: [String: String], status: AccountStatusObj, data: String?) {
// 成功時のハンドリング
}
func didShowAccountFailure(notificationToken: String, miscData: [String: String], error: ShowAccountErrorObj) {
// 失敗時のハンドリング
}
}
6.7. getAuthenticationViewController
FIDO認証用のViewControllerを取得します。
let service = TrustIDV2Service.shared
let authenticationViewController = service.getAuthenticationViewController(delegate: self)
self.present()
以下のデリゲートメソッドで処理のハンドリングを実施できます。
extension ViewController: AuthenticationViewControllerDelegate {
func authenticationViewControllerDidSuccess(viewController: AuthenticationViewController) {
// 成功時のハンドリング
}
func authenticationViewControllerDidFailure(viewController: AuthenticationViewController) {
// 失敗時のハンドリング
}
func authenticationViewControllerDidClose(viewController: AuthenticationViewController) {
// Viewを閉じた場合のハンドリング
}
}
6.8. hasAuthenticationメソッド
認証要求の有無を確認することができるメソッドです。結果はdelegateで通知されます。
let service = TrustIDV2Service.shared
service.delegate = self // 実装したdelegateを設定する
service.hasAuthentication()
以下のデリゲートメソッドで処理のハンドリングを実施できます。
extension ViewController: TrustIDV2ServiceDelegate {
func didHasAuthenticationSuccess(result: Bool) {
// 成功時のハンドリング
if (result) {
// 認証要求がある場合の処理
// getAuthenticationViewControllerで取得したViewControllerを表示する
}
}
func didHasAuthenticationFailure(error: HasAuthenticationErrorObj) {
// 失敗時のハンドリング
}
}
6.9. logout メソッド
キャッシュされているトークンを全て破棄すメソッドです。
let service = TrustIDV2Service.shared
service.logout()
7. Push Notifications の実装
Remote Notification (プッシュ通知) は CIBA フローによってログインを実行する際に必要となります。Remote Notification はアプリ未起動状態で開封した場合とアプリ起動中に開封した場合、2通りの状況のいずれにも対応できるようにしておく必要があります。
※プッシュ通知が認証端末に到達しない場合でも、後述するメソッド TrustIDV2Service#getAuthenticationViewController でViewControllerを取得し画面を起動することで認証を開始することができます。
まず FCM の Registration Token を SDK に登録します。FCM の Registration Token の取得方法は Firebase のドキュメントを参考にしてください。
Registration Token を取得したら、 TrustIDV2Service#login 及び execute メソッドの引数に設定してください。
プッシュ通知の受信方法はFirebase のドキュメントを参考にしてください。 iOS アプリでメッセージを受信する
| key | value |
|---|---|
|
trustid.jp |
|
通知タイトル |
|
通知メッセージボディ |
データメッセージの sender の value が trustid.jp なら Trust Idiom/ID からの通知となります。
sender の値を参照して通知の表示のハンドリングを行ってください。
shouldHandle() を使うことでハンドリングすべきか否かを判別できます。
Trust Idiom/ID からの通知の場合、getAuthenticationViewControllerメソッドで取得してViewControllerを起動してください。 処理結果のハンドリングはデリゲートを実装してください。
8. トランザクション認証の利用
トランザクション認証は送金など本人確認が必要とされる操作について、確認画面と生体認証を同時に実行できる機能です。
Trust Idiom/ID を使うと、次のようなフローを構成することができます。
-
ユーザーはアプリから送金先の口座情報を入力し、送金リクエストを行う(ボタンタップなど)。
-
送金確認を含む認証(トランザクション認証)のリクエストがサービスに対して実行される。
-
ユーザーはFIDO認証を実行する。
-
ユーザーに送金先の情報を含む送金確認アラートが表示される。
-
承認するとトランザクション認証が完了する。
※利用する場合は、トランザクション認証画面に連携するパラメータ及び画面デザインを決める必要があります。
トランザクション機能は FIDO Transaction Confirmation の仕様に準拠しています。仕様についてより詳しく知りたい場合は、次のドキュメントも参照してください。
8.1. getToken
トランザクション認証を利用する場合はauthorizationDetailsの引数を指定します。
AuthorizationDetailsBuilderを利用してトランザクション認証のリクエストを組み立ててください。
authorizationDetailsのTrust Idiom® 導入における FAPI-CIBA 対応マニュアル(トークン取得編)のRich Authorization Requestsを参照ください。
また、authorizationDetailsのcontentsで指定した値以外に画面に表示する値がある場合はtransactionViewDataを設定してください。
例
let builder = AuthorizationDetailsBuilder()
.addApiPath(path: "/v1/api")
.addOneshotToken(oneshot: true)
.addContents(contents: ["bankCode": "bankCode",
"senderName": "senderName",
"receiverName": "receiverName",
"fee": "fee",
"transferAmount": "transferAmount",
"bankName": "bankName",
"receiverDate": "receiverDate",
"accountNumber":"accountNumber",
"depositSubject": "普通預金"
])
.addIntrospectionCheck(check: true)
.addIntrospectionCheck(check: true)
let transactionViewData = ["custom": "data"]
service.getToken(from: self, clientId: clientId, scope: ["openid", "profile", "email", "phone"], customHeaders: ["x-client-id": clientId, "x-tenant-id": tenantId],
authorizationDetails: builder.build(), transactionViewData: transactionViewData)
8.2. FIDOトランザクション確認画面
トランザクション認証で使用する確認画面はSDK内部に実装された画面が使用されます。 NC7000-3A-FS の提供 API を使用することにより、アプリのデザインにマッチした確認画面にすることが可能になります。 独自に実装したい場合はNC7000-3A-FSのドキュメントのTransactionDisplay APIリファレンスを参照してください。
FIDOトランザクション認証用文字列の詳細については Trust Idiom® 導入における FAPI-CIBA 対応マニュアル(トークン取得編)のFIDOトランザクション認証用文字列を参照ください。
9. SDKの拡張機能について
9.1. ekyc
ekycプロバイダーでliquidを利用する場合は下記マニュアルを参照してください。
ekycプロバイダーでpolarifyを利用する場合は下記マニュアルを参照してください。
10. エラーコード
10.1. エラーメッセージ
| メソッド | エラータイプ | エラータイトル | エラーメッセージ |
|---|---|---|---|
login |
loginNotAvailable |
要本人確認 |
ログインするためには、本人確認が完了する必要があります。(エラーコード) |
reLoginRequired |
再ログイン |
本人確認が完了しました。ログインを実施してください。(エラーコード) |
|
authenticationNotFound |
認証エラー |
認証を実施することができませんでした。再度、認証を実施してください。(エラーコード) |
|
authenticationTimeout |
認証エラー |
認証時にタイムアウトが発生しました。再度、認証を実施してください。(エラーコード) |
|
authenticationFailed |
認証エラー |
認証に失敗しました。再度、認証を実施してください。(エラーコード) |
|
authenticationCancel |
認証エラー |
認証がキャンセルされました。再度、認証を実施してください。(エラーコード) |
|
authenticationLocked |
認証エラー |
認証機能がロックされました。しばらく時間をおいてから、再度、認証を実施してください。(エラーコード) |
|
deviceSettingRequired |
端末設定エラー |
認証を実施することができませんでした。端末の生体認証の設定をご確認ください。(エラーコード) |
|
permissionRequired |
アプリ権限エラー |
認証を実施することができませんでした。アプリの権限をご確認ください。(エラーコード) |
|
deviceNotSupported |
端末エラー |
認証を実施することができませんでした。端末の生体認証が利用可能かご確認ください。(エラーコード) |
|
invalidSetting |
設定エラー |
アプリの設定エラーが発生しました。問い合わせ窓口にまでご連絡ください。(エラーコード) |
|
networkCommunicationFailed |
通信エラー |
通信エラーが発生しました。再度、実施してください。(エラーコード) |
|
maintenanceError |
メンテナンス中 |
Trust Idiomサービスはメンテナンス中になります。メンテナンスが完了するまで暫くお待ち下さい。(エラーコード) |
|
gatewayTimeoutError |
通信エラー |
通信時にタイムアウトが発生しました。再度、実施してください。(エラーコード) |
|
unexpected |
予期せぬエラー |
予期せぬエラーが発生しました。何度も発生する場合は、問い合わせ窓口にまでご連絡ください。(エラーコード) |
|
execute |
authenticationFailed |
認証エラー |
認証に失敗しました。再度、認証を実施してください。(エラーコード) |
authenticationNotFound |
認証エラー |
認証を実施することができませんでした。再度、認証を実施してください。(エラーコード) |
|
authenticationTimeout |
認証エラー |
認証時にタイムアウトが発生しました。再度、認証を実施してください。(エラーコード) |
|
authenticationCancel |
認証エラー |
認証がキャンセルされました。再度、認証を実施してください。(エラーコード) |
|
authenticationLocked |
認証エラー |
認証機能がロックされました。しばらく時間をおいてから、再度、認証を実施してください。(エラーコード) |
|
deviceSettingRequired |
端末設定エラー |
認証を実施することができませんでした。端末の生体認証の設定をご確認ください。(エラーコード) |
|
permissionRequired |
アプリ権限エラー |
認証を実施することができませんでした。アプリの権限をご確認ください。(エラーコード) |
|
deviceNotSupported |
端末エラー |
認証を実施することができませんでした。端末の生体認証が利用可能かご確認ください。(エラーコード) |
|
invalidSetting |
設定エラー |
アプリの設定エラーが発生しました。問い合わせ窓口にまでご連絡ください。(エラーコード) |
|
networkCommunicationFailed |
通信エラー |
通信エラーが発生しました。再度、認証を実施してください。(エラーコード) |
|
maintenanceError |
メンテナンス中 |
Trust Idiomサービスはメンテナンス中になります。メンテナンスが完了するまで暫くお待ち下さい。(エラーコード) |
|
gatewayTimeoutError |
通信エラー |
通信時にタイムアウトが発生しました。再度、実施してください。(エラーコード) |
|
unexpected |
予期せぬエラー |
予期せぬエラーが発生しました。何度も発生する場合は、問い合わせ窓口にまでご連絡ください。(エラーコード) |
|
getToken |
logoutRequired |
認証エラー |
認証が実施できない状態です。ログアウト実施後に、再度お試しください。(エラーコード) |
authenticationFailed |
認証エラー |
認証に失敗しました。再度、認証を実施してください。(エラーコード) |
|
authenticationNotFound |
認証エラー |
認証を実施することができませんでした。再度、認証を実施してください。(エラーコード) |
|
authenticationTimeout |
認証エラー |
認証時にタイムアウトが発生しました。再度、認証を実施してください。(エラーコード) |
|
authenticationCancel |
認証エラー |
認証がキャンセルされました。再度、認証を実施してください。(エラーコード) |
|
authenticationLocked |
認証エラー |
認証機能がロックされました。しばらく時間をおいてから、再度、認証を実施してください。(エラーコード) |
|
deviceSettingRequired |
端末設定エラー |
認証を実施することができませんでした。端末の生体認証の設定をご確認ください。(エラーコード) |
|
permissionRequired |
アプリ権限エラー |
認証を実施することができませんでした。アプリの権限をご確認ください。(エラーコード) |
|
deviceNotSupported |
端末エラー |
認証を実施することができませんでした。端末の生体認証が利用可能かご確認ください。(エラーコード) |
|
invalidSetting |
設定エラー |
アプリの設定エラーが発生しました。問い合わせ窓口にまでご連絡ください。(エラーコード) |
|
networkCommunicationFailed |
通信エラー |
通信エラーが発生しました。再度、認証を実施してください。(エラーコード) |
|
maintenanceError |
メンテナンス中 |
Trust Idiomサービスはメンテナンス中になります。メンテナンスが完了するまで暫くお待ち下さい。(エラーコード) |
|
gatewayTimeoutError |
通信エラー |
通信時にタイムアウトが発生しました。再度、実施してください。(エラーコード) |
|
unexpected |
予期せぬエラー |
予期せぬエラーが発生しました。何度も発生する場合は、問い合わせ窓口にまでご連絡ください。(エラーコード) |
|
hasAuthentication |
networkCommunicationFailed |
通信エラー |
通信エラーが発生しました。再度、認証を実施してください。(エラーコード) |
maintenanceError |
メンテナンス中 |
Trust Idiomサービスはメンテナンス中になります。メンテナンスが完了するまで暫くお待ち下さい。(エラーコード) |
|
gatewayTimeoutError |
通信エラー |
通信時にタイムアウトが発生しました。再度、実施してください。(エラーコード) |
|
unexpected |
予期せぬエラー |
予期せぬエラーが発生しました。何度も発生する場合は、問い合わせ窓口にまでご連絡ください。(エラーコード) |
10.2. エラーコードのカテゴリ
SDK 利用時に発生したエラーにはすべて、エラーコードとエラーメッセージが付与されます。エラーコードは次のカテゴリに分けられます。
| エラーカテゴリ | エラーコード | 説明 |
|---|---|---|
オペレーションエラー |
1000番台 |
Trust Idiom SDK機能が想定しないタイミングで呼び出された場合。 |
通信エラー |
2000番台 |
ネットワークが繋がっていない、API リクエストが正常に行えないなど通信が正常に行えていない場合。 |
ライブラリエラー |
3000番台 |
NC7000-3A-FS の処理内でエラーが発生した場合。 |
アカウントステータスエラー |
4000番台 |
Trust Idiomのアカウントのエラー。 |
予期せぬエラー |
9000番台 |
上記に含まれない、想定していないエラーが発生した場合。 |
またライブラリエラー3016番以降のエラーが発生した場合、Trust Idiom担当者までご連絡ください。
10.3. エラーコード一覧
| エラーコード | 内容 | 再実行可 |
|---|---|---|
1001 |
クライアントデバイスIDが取得できない |
|
1002 |
Safari Viewを開くことができない |
|
1003 |
認証鍵が作成できない |
|
1004 |
バインディングメッセージが認証リクエストと異なる |
|
1005 |
認証リクエストで許可されていない認証方式を実行した |
|
1006 |
アカウントが登録されていない |
|
1007 |
認証器が登録されていない |
|
1008 |
パスワードが一致しない |
○ |
1009 |
アカウントの機能制限エラー |
|
1010 |
認証リクエストが見つからない |
|
1011 |
リソースオーナーが認証を拒否した |
|
1012 |
トークン取得の有効期限が切れた |
|
1013 |
アクセストークンが取得できていない |
|
1014 |
認証期限が切れた |
|
1015 |
FIDOの署名検証が正しくない |
|
1016 |
不正な認証が行われた |
|
1017 |
認証に失敗した |
|
1018 |
リカバリーフローにおけるトークンポーリングがキャンセルされた。再実行してください。 |
◯ |
1019 |
ekycのクライアントの設定がされていない場合のエラー。アプリケーションの実装を確認ください。 |
|
1020 |
サーバーサイド生体認証のクライアントの設定がされていない場合のエラー。アプリケーションの実装を確認ください。 |
|
1021 |
FIDO-UAFのクライアントの設定がされていない場合のエラー。アプリケーションの実装を確認ください。 |
|
2001 |
ネットワークが繋がっていない |
|
2002 |
APIのリクエストが正しくない |
|
2003 |
APIのリクエスト先に起因するエラー |
|
2004 |
APIのリクエストのJSONエンコードができない |
|
2005 |
APIのレスポンスのJSONデコードができない |
|
2006 |
サーバーメンテナンスに起因するエラー |
|
2007 |
APIGatewayのタイムアウトに起因するエラー |
|
3001 |
FIDO認証実行がタイムアウトした。一定時間以内に顔認証を行ってください |
|
3002 |
FIDO認証実行がキャンセルされた。正常にキャンセルされたので対処はありません。 |
|
3003 |
FIDO登録/認証実行にアウトオブメモリーが発生。メモリ不足ですので、他のアプリを閉じてから再実行してください。 |
○ |
3004 |
FIDO認証実行時に生体情報が未登録。FIDO登録を行ってからFIDO認証を再実行してください。 |
|
3005 |
FIDO登録/認証実行にアクセス権限エラーが発生。アクセス権限を確認して、再実行してください。UAFメッセージに設定されているAPPIDはFIDO登録時、認証時で同じ内容になっていること |
|
3006 |
FIDO登録/認証実行に必要な指紋認証機能がない。指紋認証機能が存在するデバイスを使用して、再実行してください。 |
|
3007 |
FIDO認証実行時に指紋認証情報が未登録。指紋を登録して、再実行してください。 |
|
3008 |
FIDO認証実行時に指紋認証のロックアウトが発生。端末を一度ロックした後、パスコードで端末のロックを解除し、再実行してください。 |
○ |
3009 |
FIDO登録/認証実行にAPIのリクエストでエラーが発生。再実行してください。 |
○ |
3010 |
FIDO登録/認証実行にAPIのリクエストでエラーが発生。再実行してください。 |
○ |
3011 |
FIDO認証実行時にFaceIDの登録がない。Face IDを登録して、再実行してください。 |
|
3012 |
FIDO認証実行時にFaceIDの機能がない。Face ID認証機能が存在するデバイスを使用して、再実行してください。 |
|
3013 |
FIDO認証実行時に顔認証情報のロックアウトが発生。端末を一度ロックした後、パスコードで端末のロックを解除し、再実行してください。 |
○ |
3014 |
以前のFIDO認証が未完了の状態でFIDO認証を実行した場合に発生。SDKの他の機能が動作している状態なので動作中の機能が完了してから再実行してください。 |
|
3015 |
FIDO認証実行時に認証機能が見つからない、FaceIDが許可されていない場合などに発生。ポリシー設定、端末機能を確認して、再実行してください。 |
|
3016 |
FIDO実行時に予期せぬエラーが発生。再実行してください。 |
◯ |
3017 |
無効なパラメーター。FIDOの設定ファイルを見直してください。 |
|
3018 |
データ不足。TLV解析処理中にデータ不足が発生した場合、このエラーが返却されます。 FIDOの設定ファイルを見直してください。 |
|
3019 |
appCheckName Failed、BundleID もしくは AuthTag が間違っている場合に発生。FIDOの設定ファイルを見直してください。 |
|
3020 |
appCheckName Failed、BundleID もしくは AuthTag が間違っている場合に発生。FIDOの設定ファイルを見直してください。 |
|
3021 |
アプリケーション名チェックにて、許可されていない機能を利用した場合、このエラーが返却されます。ライセンス文字列が正しく設定されていることを確認して、再実行してください。 |
|
3022 |
予期せぬエラーが発生した場合、このエラーが返却されます。再実行してください。 |
|
3023 |
UAFメッセージの内容に誤りがある場合、このエラーが返却されます。UAFメッセージの内容を確認して、再実行してください。 |
|
3024 |
appCheckName Failed、BundleID もしくは AuthTag が間違っている場合に発生。FIDOの設定ファイルを見直してください。設定が問題ない場合はFIDOサーバーと不一致になっている可能性があります。 |
|
3025 |
ASMでエラーが発生した場合、このエラーが返却されます。再実行してください。 |
|
3026 |
ポリシーに合致するAuthenticatorが存在しない場合、このエラーが返却されます。ポリシー設定、端末機能を確認して、再実行してください。 |
|
3027 |
FIDO認証時にFIDO登録を行っていない場合、このエラーが返却される。FIDO登録を行ってからFIDO認証を再実行してください。 |
|
3028 |
Trusted Facet ListとUAFメッセージに設定されているUAF protocol version (upv)がマッチしない場合、このエラーが返却される。Trusted Facet ListとUAFメッセージに設定されているUAF protocol version (upv)を確認して、再実行してください。 |
|
3029 |
/UAFメッセージに設定されているUAF protocol version (upv)をクライアントがサポートしていない場合、このエラーが返却される。クライアントがサポートしているUAF protocol version (upv) を設定したUAFメッセージか確認して、再実行してください。 |
|
3030 |
ASM DB保存内容の暗号化に失敗した場合、このエラーが返却されます。再実行してください。 |
◯ |
3031 |
ASM DB保存内容の保存に失敗した場合、このエラーが返却されます。再実行してください。 |
◯ |
3032 |
ASM DBに条件が一致するKeyHandleが見つからなかった場合、このエラーが返却されます。FIDO登録して、再実行してください。 |
|
3033 |
Authenticatorからのコマンドレスポンス形式に誤りがある場合、このエラーが返却されます。プログラム内部エラーなので対処無し。 |
|
3034 |
認証時にトランザクションが指定されているが、認証対象のAuthenticatorで取り扱えるトランザクションが存在しない場合、このエラーが返却されます。パラメーターの確認をして、再実行してください。 |
|
3035 |
keyHandleの暗号化に失敗した場合、このエラーが返却される。再実行してください。 |
|
3036 |
keyHandleの復号に失敗した場合、このエラーが返却される。再実行してください。 |
◯ |
3037 |
ユーザー認証用鍵ペア作成に失敗した場合、このエラーが返却されます。再実行してください。 |
◯ |
3038 |
登録コマンドでサポートしていないアテステーションタイプが指定された場合、このエラーが返却されます。アテステーションタイプを確認して、再実行してください。 |
|
3039 |
internal storage保存内容の暗号化に失敗した場合、このエラーが返却されます。再実行してください。 |
◯ |
3040 |
internal storage保存に失敗した場合、このエラーが返却されます。再実行してください。 |
◯ |
3041 |
サポートしていないトランザクションコンテントタイプの場合、このエラーが返却されます。トランザクションコンテンツタイプを確認して、再実行してください。 |
|
3042 |
FIDO認証時にパスコードでの認証を実行した場合に発生。FIDO認証時ではパスコードでの認証が許可されていない |
◯ |
3043 |
TAG_UAFV1_KRDの署名に失敗した場合、このエラーが返却されます。再実行してください。 |
◯ |
3044 |
TAG_UAFV1_SIGNED_DATAの署名に失敗した場合、このエラーが返却されます。再実行してください。 |
◯ |
3045 |
サポートされていないコマンドが実行された場合、このエラーが返却されます。サポートされていないコマンドの為、実行できません。 |
|
3046 |
鍵情報の暗号化に失敗した場合、このエラーが返却されます。再実行してください。 |
◯ |
3047 |
指紋Authenticatorの初期化に失敗した場合、このエラーが返却される。アプリを再起動して、再実行してください。 |
|
3048 |
UAFメッセージに設定されている拡張情報IDがAuthenticatorでサポートしていない場合、このエラーが返却される。UAFメッセージに設定されている拡張情報IDとAuthenticatorがサポートしている拡張情報IDを確認して、再実行してください。 |
|
3049 |
UVCの時間検証失敗時に、このエラーが返却される。FIDO登録して、再実行してください。 |
◯ |
3050 |
アプリケーションサーバーが不正なレスポンスを返却した場合、このエラーが返却されます。アプリケーションサーバーからのレスポンスを確認して、再実行してください。 |
|
3051 |
特徴量情報の保存に失敗した場合、このエラーが返却されます。再実行してください。 |
|
3052 |
顔画像認証機能が利用できない場合、このエラーが返却されます。(実行環境チェックNG)前面カメラが存在するデバイスを使用して、再実行してください。 |
|
3053 |
顔画像認証機能が利用できない場合、このエラーが返却されます。(パーミッションチェックNG)アプリを再起動して、再実行してください。 |
|
3054 |
顔画像認証機能が利用できない場合、このエラーが返却されます。(顔画像未登録)顔画像を登録して、再実行してください。 |
|
3055 |
顔画像処理の初期化に失敗した場合、このエラーが返却されます。アプリを再起動して、再実行してください。 |
|
3056 |
認証時の検証に失敗した場合、このエラーが返却されます。再実行してください。 |
◯ |
3057 |
特徴量情報storage保存内容の暗号化に失敗した場合、このエラーが返却される。再実行してください。 |
◯ |
3058 |
特徴量情報storage読み込み内容の復号に失敗した場合、このエラーが返却される。再実行してください。 |
◯ |
3059 |
特徴量情報の保存個数が既に保存上限数である場合、このエラーが返却される。特徴量情報を削除して、再実行してください。 |
|
3060 |
顔画像認証機能がロックアウト状態の場合、このエラーが返却される。ロックアウト状態を解除し、再実行してください。 |
◯ |
3061 |
バイナリデータファイル保存初期化に失敗した場合、このエラーが返却される。再実行してください。 |
◯ |
3062 |
バイナリデータファイル保存に失敗した場合、このエラーが返却される。再実行してください。 |
◯ |
3063 |
認証時の検証に失敗した場合、このエラーが返却される。再実行してください。 |
◯ |
3064 |
KVStorage保存失敗時に、このエラーが返却される。再実行してください。 |
◯ |
3065 |
Face IDAuthenticatorの初期化に失敗した場合、このエラーが返却される。アプリを再起動して、再実行してください。 |
|
3066 |
FaceAPIでの更新対象レコードが見つからない場合、このエラーが返却されます。登録情報を確認して、再実行してください。 |
|
3067 |
声紋認証機能が利用できない場合、このエラーが返却される。(実行環境チェックNG)マイクが存在するデバイスを使用して、再実行してください。 |
|
3068 |
声紋認証機能が利用できない場合、このエラーが返却される。(声紋未登録)声紋を登録して、再実行してください |
|
3069 |
SpeakerRecognitionライブラリの初期化に失敗した場合、このエラーが返却される。アプリを再起動して、再実行してください。 |
|
3070 |
SpeakerRecognitionライブラリが初期化されていない。アプリを再起動して、再実行してください。 |
|
3071 |
特徴量データ形式不正。再実行してください。 |
◯ |
3072 |
認証時の検証に失敗した場合、このエラーが返却される。再実行してください。 |
◯ |
3073 |
音声録音用キュー作成に失敗した場合、このエラーが返却される。再実行してください。 |
◯ |
3074 |
音声録音用バッファー作成に失敗した場合、このエラーが返却される。再実行してください。 |
◯ |
3075 |
音声セッション初期設定に失敗した場合、このエラーが返却される。再実行してください。 |
◯ |
3076 |
音声セッション初期設定に失敗した場合、このエラーが返却される。再実行してください。 |
◯ |
3077 |
音声録音開始に失敗した場合、このエラーが返却される。再実行してください。 |
◯ |
3078 |
他アプリ原因で録音が割り込まれて中止した場合、このエラーが返却される。再実行してください。 |
◯ |
3079 |
声紋認証で録音した音声が登録済であった場合、このエラーが返却される。登録済みの為、声紋を削除して再実行してください。 |
|
3080 |
声紋認証機能がロックアウト状態の場合、このエラーが返却される。ロックアウト状態を解除し、再実行してください。 |
|
3501 |
ローカル認証に失敗 |
○ |
3502 |
ローカル認証をキャンセル |
○ |
3600 |
サーバーサイド生体認証をキャンセル。再実行してください。 |
○ |
3601 |
サーバーサイド生体認証がまだ完了していない。再実行してください。 |
○ |
3602 |
サーバーサイド生体認証がNGになった。再実行してください。 |
◯ |
3603 |
サーバーサイド生体認証がタイムアウトになった。再実行してください。 |
◯ |
3604 |
サーバーサイド生体認証で予期せぬエラーが発生。再実行してください。 |
◯ |
9000 |
予期せぬエラー |
|
9001 |
サポートされないネイティブ呼び出しが行われた |
|
9002 |
不正なURLにアクセスが行われた |
|
9003 |
FIDOサーバーで予期せぬエラー |