デジタル認証アプリ
APIリファレンス(行政機関向け)
公開日
更新日
認可エンドポイント
OpenID Connect で定義されている認可エンドポイント。
query Parameters
response_type required | string Value: "code" Example: response_type=code レスポンスタイプ 固定値 | ||||||||||||||
scope required | string Example: scope=openid name address birthdate gender sign スコープ [スコープ一覧]
| ||||||||||||||
client_id required | string [ 1 .. 255 ] characters [0-9a-zA-Z]* Example: client_id=RP00000001 クライアントID クライアントIDを設定する。 | ||||||||||||||
redirect_uri required | string <uri> [ 1 .. 255 ] characters Example: redirect_uri=https://client.sample/uri リダイレクトURI リダイレクトURIを設定する。 | ||||||||||||||
state required | string [ 1 .. 255 ] characters [\x20-\x7E]* Example: state=b04b31cee32645ab700dce72860047bd ステート
リクエスト毎にステート値を生成し設定する。 | ||||||||||||||
nonce required | string [ 1 .. 255 ] characters [\x20-\x7E]* Example: nonce=b04b31cee32645ab700dce72860047bd ナンス リクエスト毎にナンス値を生成し設定する。 | ||||||||||||||
code_challenge required | string [ 1 .. 128 ] characters [0-9a-zA-Z_-]* Example: code_challenge=E9Melhoa2OwvFrEMTJguCHaoeK1t8URWbuGJSstw-cM code_challenge
code_challenge = BASE64URL-ENCODE(SHA256(ASCII(code_verifier))) リクエスト毎にcode_challenge値を生成し設定する。 | ||||||||||||||
code_challenge_method required | string Value: "S256" Example: code_challenge_method=S256 code_challenge生成方法 固定値"S256"を設定する。 | ||||||||||||||
acr_values | string Example: acr_values=aal3 crl 認証コンテキストクラス参照値
| ||||||||||||||
sign_transaction_id | string <uuid> Example: sign_transaction_id=65a04b4e-af8b-45a2-8713-5ec2631bab64 署名トランザクションID |
Responses
本番環境
Sandbox
トークンエンドポイント
- 認可コードフローの場合:
- RPから認可コードを受信し、認可コードフローのアクセストークンを返却する。private_key_jwtで認証する。
- クライアントクレデンシャルズフローの場合:
- クライアント情報を受信し、クライアントクレデンシャルズフローのアクセストークンを返却する。private_key_jwtで認証する。
- トークンリフレッシュフローの場合:
- リフレッシュトークンを受信し、トークンリフレッシュフローのアクセストークンを返却する。
※初回発行におけるフローが認可コードフローの場合、IDトークンを返却する。
private_key_jwtで認証する。
- リフレッシュトークンを受信し、トークンリフレッシュフローのアクセストークンを返却する。
Request Body schema: application/x-www-form-urlencoded
grant_type required | string Enum: "authorization_code" "client_credentials" "refresh_token" グラントタイプ
|
code | string = 110 characters [0-9a-zA-Z.-]* 認可コード
|
redirect_uri | string <uri> [ 1 .. 255 ] characters リダイレクトURI
|
client_id | string [ 1 .. 255 ] characters [0-9a-zA-Z]* クライアントID
|
code_verifier | string [ 43 .. 128 ] characters [a-zA-Z0-9._~-]* code_verifier
|
client_assertion_type required | string Value: "urn:ietf:params:oauth:client-assertion-type:jwt-bearer" クライアントアサーションタイプ |
client_assertion required | string クライアントアサーション client_assertionの仕様は OpenID Connect - 9.Client Authentication の [private_key_jwt] 参照。
|
scope | string スコープ
|
refresh_token | string <byte> リフレッシュトークン
|
Responses
本番環境
Sandbox
Response samples
- 200
- 400
- 401
- 500
- 503
{- "access_token": "eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJhVFN4RHpxM1B6c2dhak0wN3YzWmxGSm8tajBWUGdaVWQ1d0NPOUJydkx3In0...",
- "expires_in": 300,
- "refresh_expires_in": 1800,
- "refresh_token": "eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJmZDMzN2ZkMS1lMzU5LTQyMjEtODM1NS1lMWVhYzBhZTZjZTUifQ...",
- "token_type": "Bearer",
- "id_token": "eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJhVFN4RHpxM1B6c2dhak0wN3YzWmxGSm8tajBWUGdaVWQ1d0NPOUJydkx3In0...",
- "not_before_policy": 0,
- "session_state": "db0815aa-3ac9-429c-9f59-f789bbe1953b",
- "scope": "openid name address birthdate"
}
UserInfoエンドポイント
利用者識別子および属性情報(基本4情報)を返却する。
属性情報は、認可レスポンス返却後、5分経過後に破棄される。認可レスポンス受信後、5分以内に取得すること。
Authorizations:
Responses
本番環境
Sandbox
Response samples
- 200
- 500
- 503
{- "sub": "29bc4140-6bad-c79f-4101-c2c3a5d8bfc8",
- "name": "番号 花子",
- "address": "○○県□□市△△町◇丁目○番地▽▽号",
- "birthdate": 20000202,
- "gender": 1
}
署名トランザクション開始
指定されたパラメータを元に、署名トランザクションIDを作成し、返却する。
Authorizations:
Request Body schema: application/jsonrequired
client_id required | string [ 1 .. 255 ] characters クライアントID |
title required | string [ 1 .. 255 ] characters 署名対象データ名 |
identification_code required | string [ 1 .. 10 ] characters 署名対象識別コード (利用者に表示し、署名対象を識別するID) |
data required | string <byte> 署名対象ハッシュ値(Base64エンコード) |
Responses
本番環境
Sandbox
Request samples
- Payload
{- "client_id": "RP00000001",
- "title": "登録申請書(法人)",
- "identification_code": "6391",
- "data": "aQcY31F3kz6vopFmw3UyCuGgoLSHwbWn/gkv5c3n8gPFJyntwNPNp092P/Q1i5OBq6GUKw=="
}
Response samples
- 200
- 400
- 500
- 503
{- "sign_transaction_id": "37a52ac8-b232-ebac-a454-04d68916489f",
- "client_id": "RP00000001",
- "state": "CREATED",
- "expiration_datetime": "2022-01-01T00:00:00+09:00"
}
署名トランザクション結果取得
署名トランザクションIDを元に署名値、署名用電子証明書を返却する。
本APIを実行するRPが行政機関の場合は、レスポンスの署名用電子証明書と署名値を暗号化しない。
RPが民間事業者か行政機関かの判断は、デジタル認証アプリサービスに登録されたクライアント情報をもとに行う。
Authorizations:
path Parameters
sign_transaction_id required | string <uuid> Example: 37a52ac8-b232-ebac-a454-04d68916489f 署名トランザクションID |
Responses
本番環境
Sandbox
Response samples
- 200
- 400
- 401
- 500
- 503
{- "sign_transaction_id": "37a52ac8-b232-ebac-a454-04d68916489f",
- "client_id": "RP00000001",
- "state": "SIGNED",
- "expiration_datetime": "2022-01-01T00:00:00+09:00",
- "request": {
- "title": "登録申請書(法人)",
- "identification_code": "6391",
- "data": "aQcY31F3kz6vopFmw3UyCuGgoLSHwbWn/gkv5c3n8gPFJyntwNPNp092P/Q1i5OBq6GUKw=="
}, - "response": {
- "sign_certificate": "c2xha2pkZmE5ZmFzbGtkZmphbGszMmtq....",
- "signature": "bPUYvWd+kCnZc7nz0qbLYuj4sMD0Sv461usnkHQQoWCPNXmEKoSDr1..."
}
}
本番環境
Sandbox
Response samples
- 200
- 500
- 503
{- "authorization_endpoint": "https://auth-and-sign.go.jp/api/realms/main/protocol/openid-connect/auth",
- "introspection_endpoint": "https://auth-and-sign.go.jp/api/realms/main/protocol/openid-connect/token/introspect",
- "userinfo_endpoint": "https://auth-and-sign.go.jp/api/realms/main/protocol/openid-connect/userinfo",
- "grant_types_supported": [
- "authorization_code"
], - "acr_values_supported": [
- "aal3"
], - "response_types_supported": [
- "code"
], - "subject_types_supported": [
- "pairwise"
], - "id_token_signing_alg_values_supported": [
- "ES256"
], - "response_modes_supported": [
- "query"
], - "token_endpoint_auth_methods_supported": [
- "private_key_jwt"
], - "token_endpoint_auth_signing_alg_values_supported": [
- "ES256"
], - "introspection_endpoint_auth_methods_supported": [
- "private_key_jwt"
], - "introspection_endpoint_auth_signing_alg_values_supported": [
- "ES256"
], - "claims_supported": [
- "aud"
], - "claim_types_supported": [
- "normal"
], - "scopes_supported": [
- "openid"
], - "code_challenge_methods_supported": [
- "S256"
], - "revocation_endpoint": "https://auth-and-sign.go.jp/api/realms/main/protocol/openid-connect/revoke",
- "revocation_endpoint_auth_methods_supported": [
- "private_key_jwt"
], - "revocation_endpoint_auth_signing_alg_values_supported": [
- "ES256"
], - "backchannel_logout_supported": true,
- "backchannel_logout_session_supported": true,
- "require_pushed_authorization_requests": false
}
本番環境
Sandbox
Response samples
- 200
- 500
- 503
{- "keys": [
- {
- "kid": "Rchm7HM3Dohy0T_Kw_viLpnq2eOuI_JGcFfcx0OrwzE",
- "kty": "RSA",
- "alg": "ES256",
- "use": "sig",
- "n": "vS06yap7KikPZavtELCSiMNJQDdfiwEI9OsMLFkmnAJCCDKgRYF4C_HRr2EMJX8YNSVUYk2BggtCiqorKrLTWjZg4mX-wkj23iUaVRyEC0KxN6UTG4RHdmzZFRrzTfnqADma1255Obqv6tV7xGehooWNGp3juMU38najHZ-gC9Fb78Bx11KDue-KHmskY2cy295mX42OwU6gQDd8tu3Y0V1bUcMoR8wU0zvPuvNCl9JY5sLumNwQq8_YmGEQBblGf2UiyijzPDeVpt9Ipqsulk0LGAHR-_pRQK2GmBvkf31pj8Sssqrq8_CPiiIkhpgkvBXUvskIJ_9YgP-ZgjEoTw",
- "e": "vS06yap7KikPZavtELCSiMNJQDdfiwEI9OsMLFkmnAJCCDKgRYF4C_HRr2EMJX8YNSVUYk2BggtCiqorKrLTWjZg4mX-wkj23iUaVRyEC0KxN6UTG4RHdmzZFRrzTfnqADma1255Obqv6tV7xGehooWNGp3juMU38najHZ-gC9Fb78Bx11KDue-KHmskY2cy295mX42OwU6gQDd8tu3Y0V1bUcMoR8wU0zvPuvNCl9JY5sLumNwQq8_YmGEQBblGf2UiyijzPDeVpt9Ipqsulk0LGAHR-_pRQK2GmBvkf31pj8Sssqrq8_CPiiIkhpgkvBXUvskIJ_9YgP-ZgjEoTw",
- "x5c": [
- "MIIClzCCAX8CBgGLhXc7EzANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDDAR0ZXN0MB4XDTIzMTAzMTExMTkyNVoXDTMzMTAzMTExMjEwNVowDzENMAsGA1UEAwwEdGVzdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL0tOsmqeyopD2Wr7RCwkojDSUA3X4sBCPTrDCxZJpwCQggyoEWBeAvx0a9hDCV/GDUlVGJNgYILQoqqKyqy01o2YOJl/sJI9t4lGlUchAtCsTelExuER3Zs2RUa80356gA5mtdueTm6r+rVe8RnoaKFjRqd47jFN/J2ox2foAvRW+/AcddSg7nvih5rJGNnMtveZl+NjsFOoEA3fLbt2NFdW1HDKEfMFNM7z7rzQpfSWObC7pjcEKvP2JhhEAW5Rn9lIsoo8zw3labfSKarLpZNCxgB0fv6UUCthpgb5H99aY/ErLKq6vPwj4oiJIaYJLwV1L7JCCf/WID/mYIxKE8CAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAhpVrmMW3hjyI8KHuccmFRBCmtJ8TqARDBigtcwYXt+/4HsiakaJWait9QUlLCG21PgF0ImwYwP29Gy804Dj9p2oNSehb6qGpdh5Kz5wIB3bwNEodTRrLh8Xarfo++ohxsd8C58H1BISAZZZWdV5UOwalLe7ykIsOHO+7vkNV4iq6d71pu1jTiKrZYMMXOThbLAh34+Gk3E6HnLCAfRb3Q7AT3xJb6jlh7cEfSMsEerqvnve3thkdQcd5nip/08a19deOPyxDaQBSakbBGppNtzyh/fvA9STyRtbBW5E9Za0e15aD0tWmUhE0U/ylZgCP6hhe2aYuODXswSETz47biQ=="
], - "x5t": "mJXmda8E-wIYZgwXcJy7I9LWW1U",
- "x5t#S256": "pyqXt6AglB3FbiEBy4G5uM1gaFhUSdQh61yzp-pxx2k"
}
]
}