共通機能標準仕様書 別紙9-2 OAuth2.0アクセストークン情報取得API仕様書【第1.4版】

原本: デジタル庁「地方公共団体情報システム共通機能標準仕様書」の別紙 2026年9月30日公開分(ZIP、掲載ページ)の「別紙9-2_OAuth2.0アクセストークン情報取得API仕様書【第1.4版】.xlsx」。シートごとに見出しを立て、見出し行で始まる表は表に、それ以外の行は段落にした(値はセルの文字列のまま、結合セルの 2 つ目以降は空欄。表の外の行で文字が複数あるものはセルの値を空白でつないだ)。見出しが 2 段の表は列見出しを「 / 」でつないだ。シートに描かれた図形・画像(シーケンス図等)は載せていない。

共通機能標準仕様書の別紙・共通機能標準仕様書

表紙

地方公共団体情報システム
共通機能標準仕様書

OAuth2.0アクセストークン情報取得API仕様

第1.4版

令和8年9月

OAuth2.0アクセストークン情報取得API仕様

API仕様書 仕様名

OAuth2.0アクセストークン情報取得API仕様

概要

本資料はOAuth2.0アクセストークン情報取得を実施するためのAPI仕様について記述したものである。
「地方公共団体情報システムデータ要件・連携要件標準仕様書」の「文字要件」で定めた標準仕様に従う必要がある。
本APIでサポートするHTTPメソッドはPOSTとする。

提供可能なAPIコールについて

提供するAPIコールは、以下の通りである。

No.APIコール名操作種類概要
1oauth/v1/introspectReferOAuth2.0アクセストークン情報取得を実施する。

APIコールにおける補足事項

■通信プロトコル
 本APIを利用する際の通信プロトコルは、HTTP1.1以上を採用する。
■要求元認証
 本APIの要求元認証は、認証方式:client_secret_jwtで行う。

APIシーケンス(OAuth2.0)

API仕様書 仕様名

OAuth2.0アクセストークン情報取得API仕様

シーケンス図

凡例 APIのレスポンス、リクエストデータに関する説明

リクエスト_API仕様

API仕様書 仕様名

OAuth2.0アクセストークン情報取得API仕様

使用方法

本APIを使用してOAuth2.0アクセストークンの情報取得を要求する。
正常に処理が完了した場合は、アクセストークンの情報取得結果が返却される。正常に処理されなかった場合は、失敗した理由がエラーメッセージとして返却される。
Content-typeにapplication/x-www-form-urlencodedを指定してデータを送信する形式でリクエストし、JSON形式で返却される。
HTTPメソッド:POST
リクエストヘッダー:Content-Type: application/x-www-form-urlencoded

留意事項

本APIが正常に終了した場合は、HTTPステータスコード200とJSON形式のレスポンスオブジェクトが返却される。(レスポンス_API仕様を参照)

送信したパラメータのチェックにてエラーとなった場合は、HTTPステータスコード400とJSON形式のレスポンスオブジェクトが返却される。(レスポンス_API仕様を参照)

クライアント認証情報(クライアントアサーション)が取得できない場合は、HTTPステータスコード401とJSON形式のレスポンスオブジェクトが返却される。(レスポンス_API仕様を参照)

処理が30秒以上経過した場合は、タイムアウトとなる。タイムアウトが発生した場合、原則HTTPステータスコード500番台のエラーが返却される。(JSON形式では返却されない)※目安として30秒と記載しているが、性能テストを踏まえ、適切なタイムアウト時間を設定されたい

サービスメンテナンス時も同様に原則HTTPステータスコード500番台のエラーが返却される。(JSON形式では返却されない)

上記以外の想定外エラーが発生した場合は、HTTPステータスコード503とJSON形式のレスポンスオブジェクトが返却される。(レスポンス_API仕様を参照)

※1 【必須】  :「◎」・・・ パラメータまたはオブジェクトが必ず出現する。 「」(空白)・・・パラメータまたはオブジェクトが出現しない場合がある。

※2 【null設定有無】  :「〇」・・・ 値にnullが設定される場合がある。 API記述例:"nominal_segregation_address_num": null

「-」・・・値にnullは設定されない。

リクエストID oauth/v1/introspect_R01

パラメータ

項番パラメータ名項目名項目説明記述例必須※1データ型文字種データ長 / 桁数検索方法備考
1tokenトークン情報を取得するトークン文字列token=Kz8mXK1EalYznwH-LC-1fBAo.4LjpzsPE_NeO.gxiaQU◎文字列半角
英字
記号
-アクセストークンの文字列を指定
2token_type_hintトークンの種類情報を取得するトークンの種類token_type_hint=access_token◎文字列半角
英字
記号
12"access_token"で固定
3client_assertion_typeクライアントアサーションタイプ利用するOAuth2.0のクライアントアサーションタイプclient_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer◎文字列半角
英字
記号
54"urn:ietf:params:oauth:client-assertion-type:jwt-bearer"で固定
4client_assertionクライアントアサーションクライアントIDとクライアントシークレットから作成したクライアントアサーションJWTclient_assertion= eyJhbGciOiJSUzI1NiIsImtpZCI6IjIyIn0.eyJpc3Mi[...omitted for brevity...].cC4hiUPo[...omitted for brevity...]◎文字列半角
英数字
記号
-

クライアントアサーションJWT生成方法

API仕様書 仕様名

OAuth2.0アクセストークン情報取得API仕様

クライアントアサーションJWT生成方法

本APIのリクエストに必要なクライアントアサーションJWTの生成方法を記載する。

生成方法

1) ヘッダ部分のJSON文字列をbase64urlエンコードする

【例】 エンコード前のJSON : {"alg": "HS256"}

エンコード後の文字列 : eyJhbGciOiJIUzI1NiJ9

2) ペイロード部分のJSON文字列をbase64urlエンコードする

【例】 エンコード前のJSON : {"iss": "JTAxK5JPI4kmD63U4wautrSvaHj3WbBQ","sub": "JTAxK5JPI4kmD63U4wautrSvaHj3WbBQ","aud": "https://server.example.com/oauth/v1/introspect","jti": "K46dO5OxbgDf8EcL2u3qygNkR0rI6er4uSrdam5rrpmaCqtfihY0EGoPWEPWCTyqEbARyOG5rsAYhLYY3I36gb8EjKBJQjMX4FBnddG1DLw0O4kFDS82EvO60XQJHeXL","exp": 1659281200,"iat": 1659280600}

エンコード後の文字列 : eyJpc3MiOiAiSlRBeEs1SlBJNGttRDYzVTR3YXV0clN2YUhqM1diQlEiLCJzdWIiOiAiSlRBeEs1SlBJNGttRDYzVTR3YXV0clN2YUhqM1diQlEiLCJhdWQiOiAiaHR0cHM6Ly9zZXJ2ZXIuZXhhbXBsZS5jb20vb2F1dGgvdjEvaW50cm9zcGVjdCIsImp0aSI6ICJLNDZkTzVPeGJnRGY4RWNMMnUzcXlnTmtSMHJJNmVyNHVTcmRhbTVycnBtYUNxdGZpaFkwRUdvUFdFUFdDVHlxRWJBUnlPRzVyc0FZaExZWTNJMzZnYjhFaktCSlFqTVg0RkJuZGRHMURMdzBPNGtGRFM4MkV2TzYwWFFKSGVYTCIsImV4cCI6IDE2NTkyODEyMDAsImlhdCI6IDE2NTkyODA2MDB9

3) 1)で作成したbase64urlエンコード後の文字列と2)で作成したbase64urlエンコード後の文字列を"."で接続した文字列を、クライアントシークレットをキーに利用して、HMAC SHA-256アルゴリズムで計算した値をbase64urlエンコードする

【例】 署名対象の文字列 : eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiAiSlRBeEs1SlBJNGttRDYzVTR3YXV0clN2YUhqM1diQlEiLCJzdWIiOiAiSlRBeEs1SlBJNGttRDYzVTR3YXV0clN2YUhqM1diQlEiLCJhdWQiOiAiaHR0cHM6Ly9zZXJ2ZXIuZXhhbXBsZS5jb20vb2F1dGgvdjEvaW50cm9zcGVjdCIsImp0aSI6ICJLNDZkTzVPeGJnRGY4RWNMMnUzcXlnTmtSMHJJNmVyNHVTcmRhbTVycnBtYUNxdGZpaFkwRUdvUFdFUFdDVHlxRWJBUnlPRzVyc0FZaExZWTNJMzZnYjhFaktCSlFqTVg0RkJuZGRHMURMdzBPNGtGRFM4MkV2TzYwWFFKSGVYTCIsImV4cCI6IDE2NTkyODEyMDAsImlhdCI6IDE2NTkyODA2MDB9

エンコード後の署名値 : dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk

4) 1)で作成したbase64urlエンコード後の文字列、2)で作成したbase64urlエンコード後の文字列、3)で作成したbase64urlエンコード後の文字列を"."で接続した値が、クライアントアサーションJWT

【例】 生成したクライアントアサーションJWT : eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiAiSlRBeEs1SlBJNGttRDYzVTR3YXV0clN2YUhqM1diQlEiLCJzdWIiOiAiSlRBeEs1SlBJNGttRDYzVTR3YXV0clN2YUhqM1diQlEiLCJhdWQiOiAiaHR0cHM6Ly9zZXJ2ZXIuZXhhbXBsZS5jb20vb2F1dGgvdjEvaW50cm9zcGVjdCIsImp0aSI6ICJLNDZkTzVPeGJnRGY4RWNMMnUzcXlnTmtSMHJJNmVyNHVTcmRhbTVycnBtYUNxdGZpaFkwRUdvUFdFUFdDVHlxRWJBUnlPRzVyc0FZaExZWTNJMzZnYjhFaktCSlFqTVg0RkJuZGRHMURMdzBPNGtGRFM4MkV2TzYwWFFKSGVYTCIsImV4cCI6IDE2NTkyODEyMDAsImlhdCI6IDE2NTkyODA2MDB9.dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk

※1 【必須】  :「◎」・・・ パラメータまたはオブジェクトが必ず出現する。 「」(空白)・・・パラメータまたはオブジェクトが出現しない場合がある。

ヘッダ (JSON)

項番パラメータ名項目名項目説明記述例必須※1データ型文字種データ長 / 桁数検索方法備考
1algアルゴリズム署名のアルゴリズム"alg": "HS256"◎文字列半角
英字
記号
5"HS256"固定

ペイロード (JSON)

項番パラメータ名項目名項目説明記述例必須※1データ型文字種データ長 / 桁数検索方法備考
1iss発行者クライアントアサーションJWTの発行者"iss": "JTAxK5JPI4kmD63U4wautrSvaHj3WbBQ"◎文字列半角
英数字
記号
32要求元システムのクライアントIDを指定(32文字)
2sub主体クライアントアサーションJWTの主体"sub": "JTAxK5JPI4kmD63U4wautrSvaHj3WbBQ"◎文字列半角
英数字
記号
32要求元システムのクライアントIDを指定(32文字)
3aud対象者クライアントアサーションJWTの発行対象者"aud": "https://server.example.com/oauth/v1/introspect"◎文字列半角
英数字
記号
-基本的には、認証認可サーバのURL(認証認可サーバのissuerの値)を含むものとする
ただし、認証認可サーバを示す識別子の範疇を超えない限り(トークンエンドポイント等)、認証認可サーバ側の判断による変更も可能とする。変更する場合は、RP側に必ずその旨を伝えること。
4jtiJWT IDJWTのID"jti": "K46dO5OxbgDf8EcL2u3qygNkR0rI6er4uSrdam5rrpmaCqtfihY0EGoPWEPWCTyqEbARyOG5rsAYhLYY3I36gb8EjKBJQjMX4FBnddG1DLw0O4kFDS82EvO60XQJHeXL"◎文字列半角
英数字
記号
-発行者が発行したJWTを一意に識別するためのID
データの桁数は、一意に識別するために十分なエントロピーが確保可能な桁数を指定
5exp有効期限クライアントアサーションJWTの有効期限"exp": 1659281200◎数値半角
数字
10発行されたクライアントアサーションJWTの有効期限のUNIX時間
6iat発行時刻クライアントアサーションJWTの発行時刻"iat": 1659280600◎数値半角
数字
10発行されたクライアントアサーションJWTの発行時刻のUNIX時間

レスポンス_API仕様

API仕様書 仕様名 "

OAuth2.0アクセストークン情報取得API仕様

レスポンスID oauth/v1/introspect_S01

項番レベルレスポンスオブジェクト名 / 階層レスポンスオブジェクト名 / 階層項目名項目説明記述例必須※1null設定有無※2データ型文字種データ長 / 桁数備考
■正常系(HTTPステータスコード:200、JSON形式でのレスポンス)
11レスポンスオブジェクト{◎-構造化--
22activeアクティブアクセストークンのアクティブ状態"active": true,◎-boolean--アクティブなトークンの場合はtrue、そうでない場合はfalseを指定
32scopeスコープアクセストークンに紐付くスコープの一覧"scope": "031:app_submit/v1/jutogaishaatenakih
onjohosyokai:Read",
-〇文字列半角
英数字記号
-発行したトークンに紐付いているスコープ
("active": trueの場合のみ必須)
42iss発行者アクセストークンの発行者"iss": "https://server.example.com",-〇文字列半角
英数字記号
-認証認可サーバのURL
("active": trueの場合のみ必須)
52client_idクライアントIDアクセストークン発行対象のクライアント"client_id": "JTAxK5JPI4kmD63U4wautrSvaHj3
WbBQ",
-〇文字列半角
英字
3232文字のクライアントID
("active": trueの場合のみ必須)
62token_typeトークンタイプアクセストークンの種別"token_type": "Bearer",-〇文字列半角
英字
6"Bearer"固定
("active": trueの場合のみ必須)
72exp有効期限アクセストークンの有効期限"exp": 1659281210,-〇数値半角
数字
10アクセストークンの有効期限のUNIX時間
("active": trueの場合のみ必須)
82iat発行時刻アクセストークンの発行時刻"iat": 1659280610-〇数値半角
数字
10アクセストークンの発行時刻のUNIX時間
("active": trueの場合のみ必須)
9}◎-構造化--
■正常系エラー(HTTPステータスコード:400 or 401、JSON形式でのレスポンス)
11レスポンスオブジェクト{◎-構造化--
22errorエラーコードエラーコード"error": "invalid_request",◎-文字列半角
英数字記号
-
32error_descriptionエラーメッセージエラーの内容"error_description": "必須パラメータがありません。"◎-文字列全角
半角
英字
-
4}◎-構造化--
■異常系(HTTPステータスコード:503、JSON形式でのレスポンス(ただし、30秒以上タイムアウトエラー、サービスメンテナンス中は、原則HTTPステータスコード500番台のエラーが返却され、JSON形式では返却されない))
ーーボディなし-----

エラーコード一覧

項番エラーコードエラーの内容HTTPステータスコード備考
1invalid_request必須のパラメータが設定されていない、パラメータのフォーマットが異なる、などのパラメータエラー。400
2invalid_client未登録のクライアントからのリクエスト、クライアントアサーションJWTが存在しない、クライアントアサーションJWTの検証が失敗するなどの場合。401
3unauthorized_client登録はされているが、利用を許可されていないリクエスト元からのアクセスの場合。401