署名 API の結果を用いた同意取り消し
ここでは、同意取消申請データの準備で取得した署名前同意取消申請データと、デジタル認証アプリの署名結果を用いて同意を取り消す方法を説明します。
注意
本ページで使用する API(RevokeConsentForDigitalIdentificationApp)はプレビュー版のため、通常のクライアントはご利用いただけません。 詳しくはプレビュー機能の利用をご覧ください。
あらかじめAPI の利用開始を完了し、API トークンを取得しておいてください。
シーケンス
要確認
Verify API の利用は、必ず SP 事業者で管理するサーバを経由して行ってください。 API トークンをアプリケーションに含めて配布することは、Verify API の不正利用ひいては JPKI への不正なアクセスにつながるため、絶対に行わないでください。
実装例
クライアントライブラリのセットアップ方法は、クライアントライブラリをご参照ください。
sign_certificate_jwe の取得方法については、署名トランザクションの結果取得をご覧ください。
- 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>"
// PrepareRevokeApplication のレスポンスから取得した署名前同意取消申請データです。
rawApplication = "POWIqeeUqOiAheWQjOaEj+WPlua2iOeUs+iri+aDheWgsT4855Sz6KuL5pu4PjznlLPoq4vml6U+MjAyNi8wNi8wOTwv55Sz6KuL5pelPjznlLPoq4vmmYLplpM+MTc6MTQ6MjA8L+eUs+iri+aZgumWkz4844K144O844OT44K5SUQ+c2FtcGxlPC/jgrXjg7zjg5PjgrlJRD4844K144O844OT44K55LqL5qWt6ICFSUQ+c2FtcGxlPC/jgrXjg7zjg5Pjgrnkuovmpa3ogIVJRD48L+eUs+iri+abuD48L+WIqeeUqOiAheWQjOaEj+WPlua2iOeUs+iri+aDheWgsT4="
// デジタル認証アプリの署名トランザクション結果取得 API のレスポンスに含まれる
// `response.sign_certificate_jwe` をそのまま指定してください。
signCertificateJwe = "<YOUR_RESPONSE_SIGN_CERTIFICATE_JWE>"
)
func run() error {
// Base64をデコードしてバイト列にします。
application, err := base64.StdEncoding.DecodeString(rawApplication)
if err != nil {
return err
}
// 同意取り消しリクエストを作成します。
request := connect.NewRequest(&verifyv2.RevokeConsentForDigitalIdentificationAppRequest{
// PrepareRevokeApplication のレスポンスから取得した署名前同意取消申請データを送信します。
Application: application,
// デジタル認証アプリの署名トランザクション結果取得 API のレスポンスの sign_certificate_jwe を送信します。
SignCertificateJwe: signCertificateJwe,
})
// リクエストにAPIトークンを設定します。
request.Header().Set("Authorization", "Bearer "+token)
// リクエストにプレビュー版にオプトインするためのヘッダを設定します。
request.Header().Set("X-P8N-OptIn", "PREVIEW")
// APIクライアントを作成します。
client := verifyv2connect.NewConsentServiceClient(http.DefaultClient, baseUrl)
// 同意取り消しリクエストを送信します。
response, err := client.RevokeConsentForDigitalIdentificationApp(context.Background(), request)
if err != nil {
return err
}
// 結果を表示します。
fmt.Printf("Certificate: %s\n", response.Msg.Certificate.Id)
return nil
}
func main() {
if err := run(); err != nil {
log.Fatalln(err)
}
}
リクエストに成功すると、以下のように結果が表示されます。
Certificate: 53e8bf1c-44ef-4a48-b02b-cfad42e1ceda
次のステップ
その他、API の詳しい使い方やエラーの詳細等については、API リファレンスをご覧ください。