メインコンテンツまでスキップ

同意データの準備

このページでは、PocketSign Verify API を使用して、署名前同意申請データとデジタル認証アプリ等に送信する署名対象データを取得します。

デジタル認証アプリ等の外部署名サービスを利用して同意を行う場合、このステップで取得した署名対象データを用いて署名を行い、署名結果を Verify API に送信することによって同意を行います。 PocketSign Verify SDK を使用する場合は、このステップは不要です。Verify SDK を使った同意データの作成をご覧ください。

注意

このRPCはプレビュー版のため、通常のクライアントはご利用いただけません。詳しくはプレビュー機能の利用をご覧ください。

あらかじめAPI の利用開始を完了し、API トークンを取得しておいてください。

シーケンス

要確認

Verify API の利用は、必ず SP 事業者で管理するサーバを経由して行ってください。 API トークンをアプリケーションに含めて配布することは、Verify API の不正利用ひいては JPKI への不正なアクセスにつながるため、絶対に行わないでください

実装例

クライアントライブラリのセットアップ方法は、クライアントライブラリをご参照ください。

package main

import (
"context"
"encoding/base64"
"fmt"
"log"
"net/http"

"buf.build/gen/go/pocketsign/apis/connectrpc/go/pocketsign/verify/v2/verifyv2connect"
verifyv2 "buf.build/gen/go/pocketsign/apis/protocolbuffers/go/pocketsign/verify/v2"
"connectrpc.com/connect"
)

var (
// APIエンドポイントを指定します。この値は環境によって異なります。
// デジタル認証アプリサービスを利用した署名を想定しているため、テスト環境の URL を指定しています。
baseUrl = "https://verify.test.p8n.app"

// Verify APIのトークンです。ご自身のトークンに置き換えてください。
token = "<YOUR_API_TOKEN>"
)

func run() error {
// 同意データの準備リクエストを作成します。
request := connect.NewRequest(&verifyv2.PrepareConsentApplicationRequest{
// 基本4情報(氏名、住所、生年月日、性別)について、どの情報の提供に同意するかを設定します。
Preference: &verifyv2.Consent_Preference{
CommonName: true,
Address: true,
DateOfBirth: true,
Gender: true,
},
})

// リクエストにAPIトークンを設定します。
request.Header().Set("Authorization", "Bearer "+token)
// リクエストにプレビュー版にオプトインするためのヘッダを設定します。
request.Header().Set("X-P8N-OptIn", "PREVIEW")

// APIクライアントを作成します。
client := verifyv2connect.NewConsentServiceClient(http.DefaultClient, baseUrl)

// 同意データの準備リクエストを送信します。
response, err := client.PrepareConsentApplication(context.Background(), request)
if err != nil {
return err
}

// Application: 署名前同意申請データ(デジタル認証アプリを使った同意で使用します)
// Data: DigestInfo を付加した署名対象データ(デジタル認証アプリの署名 API の "data" 引数に渡します)
fmt.Printf("Application: %s\n", base64.StdEncoding.EncodeToString(response.Msg.Application))
fmt.Printf("Data: %s\n", response.Msg.Data)
return nil
}

func main() {
if err := run(); err != nil {
log.Fatalln(err)
}
}

リクエストに成功すると、以下のように結果が表示されます。

Application: POWIqeeUqOiAheWQjOaEj+eUs+iri+aDheWgsT4855Sz6KuL5pu4PjznlLPoq4vml6U+MjAyNi8wNS8yODwv55Sz6KuL5pelPjznlLPoq4vmmYLplpM+MjM6Mjk6NTE8L+eUs+iri+aZgumWkz4844K144O844OT44K5SUQ+c2FtcGxlPC/jgrXjg7zjg5PjgrlJRD4844K144O844OT44K55LqL5qWt6ICFSUQ+c2FtcGxlPC/jgrXjg7zjg5Pjgrnkuovmpa3ogIVJRD485Yip55So6ICF5ZCM5oSP5oOF5aCxPjzkvY/miYA+MTwv5L2P5omAPjzmsI/lkI0+MTwv5rCP5ZCNPjznlJ/lubTmnIjml6U+MTwv55Sf5bm05pyI5pelPjzmgKfliKU+MTwv5oCn5YilPjwv5Yip55So6ICF5ZCM5oSP5oOF5aCxPjwv55Sz6KuL5pu4Pjwv5Yip55So6ICF5ZCM5oSP55Sz6KuL5oOF5aCxPg==
Data: MDEwDQYJYIZIAWUDBAIBBQAEIGvJ9BQWVhZcnNcNmDgBQp+NoDfdHJyzBYWbOQi/h4mL

DataDigestInfo を付加した署名対象データを Base64 エンコードした文字列です。 デジタル認証アプリの署名 API の data 引数にそのまま渡すことができます。


次のステップ

取得した Data をデジタル認証アプリの署名 API に渡して署名を行います。 署名の手順については、DigestInfo を付与したハッシュを用いた署名作成をご覧ください。

署名が完了したら、取得した sign_certificate_jweApplication を用いて同意を行います。 署名 API の結果を用いた同意に進んでください。

その他、API の詳しい使い方やエラーの詳細等については、API リファレンスをご覧ください。