同意取消申請データの準備
このページでは、PocketSign Verify API を使用して、署名前同意取消申請データとデジタル認証アプリ等に送信する署名対象データを取得します。
デジタル認証アプリ等の外部署名サービスを利用して同意の取り消しを行う場合、このステップで取得した署名対象データを用いて署名を行い、署名結果を Verify API に送信することによって同意を取り消します。 PocketSign Verify SDK を使用する場合は、このステップは不要です。Verify SDK を使った同意取消申請データの作成をご覧ください。
本ページで使用する API(PrepareRevokeApplication)はプレビュー版のため、通常のクライアントはご利用いただけません。 詳しくはプレビュー機能の利用をご覧ください。
あらかじめAPI の利用開始を完了し、API トークンを取得しておいてください。
シーケンス
Verify API の利用は、必ず SP 事業者で管理するサーバを経由して行ってください。 API トークンをアプリケーションに含めて配布することは、Verify API の不正利用ひいては JPKI への不正なアクセスにつながるため、絶対に行わないでください。
実装例
クライアントライブラリのセットアップ方法は、クライアントライブラリをご参照ください。
同意取消申請データの準備では、同意時の同意申請データの準備とは異なり、同意する項目(Preference)の指定は不要です。
- 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.PrepareRevokeApplicationRequest{})
// リクエストにAPIトークンを設定します。
request.Header().Set("Authorization", "Bearer "+token)
// リクエストにプレビュー版にオプトインするためのヘッダを設定します。
request.Header().Set("X-P8N-OptIn", "PREVIEW")
// APIクライアントを作成します。
client := verifyv2connect.NewConsentServiceClient(http.DefaultClient, baseUrl)
// 同意取消申請データの準備リクエストを送信します。
response, err := client.PrepareRevokeApplication(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+WPlua2iOeUs+iri+aDheWgsT4855Sz6KuL5pu4PjznlLPoq4vml6U+MjAyNi8wNi8wOTwv55Sz6KuL5pelPjznlLPoq4vmmYLplpM+MTc6MTQ6MjA8L+eUs+iri+aZgumWkz4844K144O844OT44K5SUQ+c2FtcGxlPC/jgrXjg7zjg5PjgrlJRD4844K144O844OT44K55LqL5qWt6ICFSUQ+c2FtcGxlPC/jgrXjg7zjg5Pjgrnkuovmpa3ogIVJRD48L+eUs+iri+abuD48L+WIqeeUqOiAheWQjOaEj+WPlua2iOeUs+iri+aDheWgsT4=
Data: MDEwDQYJYIZIAWUDBAIBBQAEIKmyscYW3gxlHuY5XMF6zZJpZmq2/D5nx0Kbl/Aj6E7/
Data は DigestInfo を付加した署名対象データを Base64 エンコードした文字列です。
デジタル認証アプリの署名 API の data 引数にそのまま渡すことができます。
次のステップ
取得した Data をデジタル認証アプリの署名 API に渡して署名を行います。
署名の手順については、DigestInfo を付与したハッシュを用いた署名作成をご覧ください。
署名が完了したら、取得した sign_certificate_jwe と Application を用いて同意の取り消しを行います。
署名 API の結果を用いた同意取り消しに進んでください。
その他、API の詳しい使い方やエラーの詳細等については、API リファレンスをご覧ください。