同意データの準備
このページでは、PocketSign Verify API を使用して、署名前同意申請データとデジタル認証アプリ等に送信する署名対象データを取得します。
デジタル認証アプリ等の外部署名サービスを利用して同意を行う場合、このステップで取得した署名対象データを用いて署名を行い、署名結果を Verify API に送信することによって同意を行います。 PocketSign Verify SDK を使用する場合は、このステップは不要です。Verify SDK を使った同意データの作成をご覧ください。
このRPCはプレビュー版のため、通常のクライアントはご利用いただけません。詳しくはプレビュー機能の利用をご覧ください。
あらかじめAPI の利用開始を完了し、API トークンを取得しておいてください。
シーケンス
Verify API の利用は、必ず SP 事業者で管理するサーバを経由して行ってください。 API トークンをアプリケーションに含めて配布することは、Verify API の不正利用ひいては JPKI への不正なアクセスにつながるため、絶対に行わないでください。
実装例
クライアントライブラリのセットアップ方法は、クライアントライブラリをご参照ください。
- Go
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
Data は DigestInfo を付加した署名対象データを Base64 エンコードした文字列です。
デジタル認証アプリの署名 API の data 引数にそのまま渡すことができます。
次のステップ
取得した Data をデジタル認証アプリの署名 API に渡して署名を行います。
署名の手順については、DigestInfo を付与したハッシュを用いた署名作成をご覧ください。
署名が完了したら、取得した sign_certificate_jwe と Application を用いて同意を行います。
署名 API の結果を用いた同意に進んでください。
その他、API の詳しい使い方やエラーの詳細等については、API リファレンスをご覧ください。