モック環境
ポケットサイン社が運用するモック認証局が発行した証明書を利用する環境です。 FeliCa カード(交通系 IC カード、Edy、WAON など)や、 ISO/IEC 14443-4 Type-A カード(クレジットカードなど)を利用して動作検証を行うことが出来ます。 環境の違いについては環境をご参照ください。
検証の対象
SDK は、FeliCa カード(交通系 IC カード、Edy、WAON など)や、 ISO/IEC 14443-4 Type-A カード(クレジットカードなど)のカード識別子をもとにモック環境向けの証明書を自動生成し、 この証明書を用いて署名を行います。 モック環境は、この署名に対して検証を行います。 実際のマイナンバーカードは利用できません。
PocketSign Verify API を使用して署名の検証や現況確認を行った場合、 ポケットサイン社が運用するモック認証局に問い合わせを行い、署名の検証や現況確認を行います。 このため、無料で API を利用することができます。
モック環境向け SDK は FeliCa カード(交通系 IC カード、Edy、WAON など)や、ISO/IEC 14443-4 Type-A カード(クレジットカードなど)のカード識別子をもとにモック環境で利用可能なデータを生成しますが、 生成されたデータと実際のマイナンバーカードに格納されているデータとの完全な互換性は保証していませんのでご注意ください。
また、ポケットサイン社が運用するモック認証局は、公的個人認証サービスの認証局との完全な互換性を保証していません。 テスト環境では、公的個人認証サービスが運用する認証局を利用しており、本番環境に最も近い挙動となるため、 品質保証のための検証等はテスト環境で行うことを推奨しています。
モック環境の利用方法
PocketSign Verify API のモック環境を利用するには、以下のように設定を行う必 要があります。
PocketSign Verify API
モック環境における PocketSign Verify API のエンドポイントは https://verify.mock.p8n.app です。
例えば、署名検証を行う場合の URL は、
https://verify.mock.p8n.app/pocketsign.verify.v2.VerificationService/Verify
となります。
PocketSign Verify SDK
モック環境と本番環境で異なる PocketSign Verify SDK が用意されており、利用するためのパッケージ名が異なります。
- iOS
- Android
- Web(PaSoRi)
iOS の場合、パッケージ名は VerifyMockJPKI
です。
SDK の URL を入力する際には、
https://repo.platform.p8n.app/VerifyMockJPKI/
と入力してください。
Swift で SDK を利用する際には、以下のようにインポートしてください。
import SwiftUI
import VerifyMockJPKI
func run(pin: String) async throws -> String {
// JPKI APへの接続準備を行います。
let session = ReaderSession(dispatchQueue: DispatchQueue.main)
// ここに実装を追加します。
session.close()
return "not implemented"
}
/* ... */
また、iOS で FeliCa カードを扱うには、NFC の有効化が必要です。
タブから「Info」を選択し、下の「Custom iOS Target Properties」の「+」をクリックし、「Privacy - NFC Scan Usage Description」を追加します。 Value には、NFC を使用する理由(○○ カードの読み取り等)を記載します。
FeliCa カードを読み取るため、同様に、「ISO18092 system codes for NFC Tag Reader Session」を追加します。 Value には、以下の値を設定します。
0003
(交通系 IC カード)FE00
(電子マネー)88B4
(FeliCa Lite-S)
Android の場合、パッケージ名は jp.co.pocketsign.verify.mock
です。
例えば、jp.co.pocketsign.verify.driver.mock.ReaderSession
などのクラスがパッケージに含まれます。
具体的なクラスは、SDK リファレンスをご覧ください。
implementation "jp.co.pocketsign.verify:shared:$verifySdkVersion"
implementation "jp.co.pocketsign.verify:driver-mock:$verifySdkVersion"
implementation "jp.co.pocketsign.verify:jpki-mock:$verifySdkVersion"
と入力してください。
Kotlin で SDK を利用する際には、以下のようにインポートしてください。
import jp.co.pocketsign.verify.mock.driver.ReaderSession
import jp.co.pocketsign.verify.mock.mynacard.jpki.JPKIAP
class MainActivity : ComponentActivity() {
suspend fun run(pin: String): String {
// JPKI APへの接続準備を行います。
val session = ReaderSession(this, this)
// ここに実装を追加します。
session.close()
return "not implemented"
}
/* ... */
}
また、Android で NFC を扱うには、NFC の有効化が必要です。
Verify SDK for Web PaSoRi は、現在ベータ版での提供となります。
Web アプリの場合、パッケージ名は @pocketsign/verify-web-pasori-jpki-mock
です。
npm でパッケージをインストールする際には、
このパッケージ名を 記載してください。
TypeScript で Verify SDK for Web PaSoRi を利用する際には、以下のようにインポートしてください。
import { ReaderSession } from '@pocketsign/verify-web-pasori-jpki-mock';
// Verify SDK を使用するためには、NFCPortLib が別途必要となります。
// NFCPortLibはソニー株式会社から提供される SDK for NFC Web Client に含まれています。
const nfcPortLib = new NFCPortLib();
const run = async (pin: string) => {
// JPKI APへの接続準備を行います。
const session = new ReaderSession(nfcPortLib);
// ここに実装を追加します。
await session.close();
};