カードを用いない同意取り消し
ここでは、証明書 ID または 利用者 ID を用いて、マイナンバーカードへの通信なしで同意を取り消す方法を説明します。
あらかじめAPI の利用開始を完了し、API トークンを取得しておいてください。
本ページで使用する API(RevokeConsentByCertificate / RevokeConsentByUser)はプレビュー版のため、通常のクライアントはご利用いただけません。 詳しくはプレビュー機能の利用をご覧ください。
シーケンス
Verify API の利用は、必ず SP 事業者で管理するサーバを経由して行ってください。 API トークンをアプリケーションに含めて配布することは、Verify API の不正利用ひいては JPKI への不正なアクセスにつながるため、絶対に行わないでください。
証明書 ID による取り消し
同意時や署名検証時に取得した証明書 ID を使用して同意を取り消します。
証明書 ID は、同意時のレスポンスや、署名検証時のレスポンスに含まれる証明書から取得できます。
クライアントライブラリのセットアップ方法は、クライアントライブラリをご参照ください。
- Go
package main
import (
"context"
"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エンドポイントを指定します。この値は環境によって異なります。
baseUrl = "https://verify.mock.p8n.app"
// Verify APIのトークンです。ご自身のトークンに置き換えてください。
token = "<YOUR_API_TOKEN>"
// 同意取り消しを行う証明書のIDです。同意時や署名検証時に取得できます。
certificateID = "53e8bf1c-44ef-4a48-b02b-cfad42e1ceda"
)
func run() error {
// 同意取り消しリクエストを作成します。
request := connect.NewRequest(&verifyv2.RevokeConsentByCertificateRequest{
CertificateId: certificateID,
})
// リクエストにAPIトークンを設定します。
request.Header().Set("Authorization", "Bearer "+token)
// リクエストにプレビュー版にオプトインするためのヘッダを設定します。
request.Header().Set("X-P8N-OptIn", "PREVIEW")
// APIクライアントを作成します。
client := verifyv2connect.NewConsentServiceClient(http.DefaultClient, baseUrl)
// 同意取り消しリクエストを送信します。
response, err := client.RevokeConsentByCertificate(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
利用者 ID による取り消し
利用者 ID を使用して、該当する利用者が行った同意を取り消します。
利用者 ID は、署名検証時に利用者の特定を要求することで取得できます。取得方法の詳細は利用者 ID の取得をご参照ください。
利用者 ID による取り消しでは、その利用者に紐づく証明書のうち、Verify API が認識している最新のカード用署名用証明書またはスマホ用署名用証明書が使用されます。 実際に使用された証明書はレスポンスに含まれます。
- Go
package main
import (
"context"
"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エンドポイントを指定します。この値は環境によって異なります。
baseUrl = "https://verify.mock.p8n.app"
// Verify APIのトークンです。ご自身のトークンに置き換えてください。
token = "<YOUR_API_TOKEN>"
// 同意取り消しを行う利用者のIDです。署名検証時に取得できます。
userID = "4defded7-cf7b-4f76-a87c-be8c289f7b9a"
)
func run() error {
// 同意取り消しリクエストを作成します。
request := connect.NewRequest(&verifyv2.RevokeConsentByUserRequest{
UserId: userID,
})
// リクエストにAPIトークンを設定します。
request.Header().Set("Authorization", "Bearer "+token)
// リクエストにプレビュー版にオプトインするためのヘッダを設定します。
request.Header().Set("X-P8N-OptIn", "PREVIEW")
// APIクライアントを作成します。
client := verifyv2connect.NewConsentServiceClient(http.DefaultClient, baseUrl)
// 同意取り消しリクエストを送信します。
response, err := client.RevokeConsentByUser(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 リファレンスをご覧ください。