利用者証明用電子証明書の取得
このページでは、PocketSign Verify SDK を使用してマイナンバーカードに搭載された利用者証明用電子証明書の読み出しを行います。
あらかじめSDK のセットアップを完了しておいてください。
シーケンス
実装例
読み出しには LowLevelJPKIAP クラスを使用します。 当人認証で使用した JPKIAP クラスとは異なります。
- iOS
- Android
- Web(PaSoRi)
func run(pin: String) async throws -> String {
// JPKI APへの接続準備を行います。
let session = ReaderSession(dispatchQueue: DispatchQueue.main)
// LowLevel JPKI APを初期化します。
let llap = LowLevelJPKIAP(session: session)
// JPKI AP を使用することを宣言します。
llap.selectAP()
// JPKI APに対して利用者証明用電子証明書の読み出しを要求します。
let result = try await llap.readUserAuthenticationCertificate()
session.close()
return "証明書: \(result?.base64EncodedString() ?? "")\n"
}
suspend fun run(pin: String): String {
// JPKI APへの接続準備を行います。
val session = ReaderSession(this, this)
// LowLevel JPKI APを初期化します。
val llap = LowLevelJPKIAP(session)
// JPKI AP を使用することを宣言します。
llap.selectAP()
// JPKI APに対して利用者証明用電子証明書の読み出しを要求します。
val result = llap.readUserAuthenticationCertificate()
session.close()
return "証明書: ${Base64.encodeToString(result, Base64.NO_WRAP)}\n"
}
注意
Verify SDK for Web PaSoRi は、現在ベータ版での提供となります。
const run = async (pin: string) => {
// JPKI APへの接続準備を行います。
const session = new ReaderSession(nfcPortLib);
// LowLevel JPKI APを初期化します。
const llap = new LowLevelJPKIAP(session);
// JPKI AP を使用することを宣言します。
llap.selectAP();
// JPKI APに対して利用者証明用電子証明書の読み出しを要求します。
const result = await llap.readUserAuthenticationCertificate();
await session.close();
return `証明書: ${btoa(String.fromCharCode(...result))}\n`;
};
ヒント
モック環境では、FeliCa カード(交通系 IC カード、Edy、WAON など)や、ISO/IEC 14443-4 Type-A カード(クレジットカードなど)をタッチすると、マイナンバーカードの挙動がシミュレートされます。 詳しくはSDK リファレンスをご覧ください。
実行結果
証明書の読み出しに成功すると、以下のように Base64 エンコードされた証明書が表示されます。 有効性確認時には、このデータを PocketSign Verify API に送信します。

次のステップ
PocketSign Verify API を使用して、取得した証明書の有効性確認を行いましょう。
その他、SDK の詳しい使い方やエラーの詳細等については、SDK リファレンスをご覧ください。