メインコンテンツまでスキップ

リソースオーナー用API (1.0.0)

Download OpenAPI specification:Download

ユーザー

リソースオーナー(ユーザー)本人による操作に関するAPI群。

主に以下のような操作を提供します:

  • 自身のアカウント削除
  • 多要素認証(MFA)の登録要求(FIDO-UAF など)

アクセストークンを用いて、ユーザー本人による安全な自己操作を実現します。

ユーザー削除

ユーザー(リソースオーナー)自身の削除を行う。

path Parameters
tenant-id
required
string

Responses

Response samples

Content type
application/json
{ }

MFAの登録要求

FIDO-UAFなどの登録要求の依頼を行う。

path Parameters
tenant-id
required
string
mfa-operation-type
required
string
Example: fido-uaf-registration
Request Body schema: application/json
optional

MFAの仕様に応じたパラメータをBodyに設定する。

One of
app_name
string

アプリ名(例:◯◯アプリ)。

platform
string

デバイスのプラットフォーム名(例:"Android", "iOS" など)。

os
string

オペレーティングシステムのバージョン情報(例:"Android15")。

model
string

デバイスモデル名(例:"galaxy z fold 6")。

locale
string

言語設定。(例:ja, en)

notification_channel
string
Enum: "fcm" "apns"

通知チャネル("fcm", "apns")。Firebase Cloud Messaging(Android)またはApple Push Notification Service(iOS)を指定。

notification_token
string

通知を送信するためのトークン(例:FCMトークン)。

priority
integer >= 1

このデバイスの通知の優先順位(例: 1, 50, 100)。 数値が大きいほど優先度が高く、100が最も高い。 省略された場合は、認証デバイスの登録数の連番となる。

Responses

Request samples

Content type
application/json
Example
{
  • "app_name": "string",
  • "platform": "string",
  • "os": "string",
  • "model": "string",
  • "locale": "string",
  • "notification_channel": "fcm",
  • "notification_token": "string",
  • "priority": 1
}

Response samples

Content type
application/json
{
  • "id": "string"
}

認証デバイス部分更新API

認証デバイスの属性情報の部分更新の依頼を行う。

path Parameters
tenant-id
required
string
device-id
required
string
Example: 0048607e-9b89-4ad9-a203-976b7f72f5f2
Request Body schema: application/json
optional
app_name
string

アプリ名(例:◯◯アプリ)。

platform
string

デバイスのプラットフォーム名(例:"Android", "iOS" など)。

os
string

オペレーティングシステムのバージョン情報(例:"Android15")。

model
string

デバイスモデル名(例:"galaxy z fold 6")。

locale
string

言語設定。(例:ja, en)

notification_channel
string
Enum: "fcm" "apns"

通知チャネル("fcm", "apns")。Firebase Cloud Messaging(Android)またはApple Push Notification Service(iOS)を指定。

notification_token
string

通知を送信するためのトークン(例:FCMトークン)。

priority
integer >= 1

このデバイスの通知の優先順位(例: 1, 50, 100)。 数値が大きいほど優先度が高く、100が最も高い。 省略された場合は、認証デバイスの登録数の連番となる。

Responses

Request samples

Content type
application/json
{
  • "app_name": "string",
  • "platform": "string",
  • "os": "string",
  • "model": "string",
  • "locale": "string",
  • "notification_channel": "fcm",
  • "notification_token": "string",
  • "priority": 1
}

Response samples

Content type
application/json
Example
{
  • "error": "invalid_request",
  • "error_description": "The identity verification request is invalid. Please review your input for missing or incorrect fields.",
  • "error_messages": [
    ]
}

パスワード変更

認証済みユーザーのパスワードを変更します。

このAPIは以下の手順でパスワード変更を行います:

  1. 現在のパスワードの検証
  2. 新しいパスワードのポリシー検証(テナント設定に基づく)
  3. パスワードの更新
  4. セキュリティイベントの発行(password_change_success/password_change_failure)

パスワードポリシー

テナントごとに以下のポリシーを設定可能(identity_policy_config.password_policy):

  • min_length: 最小文字数(デフォルト: 8)
  • require_uppercase: 大文字必須(デフォルト: false)
  • require_lowercase: 小文字必須(デフォルト: false)
  • require_digit: 数字必須(デフォルト: false)
  • require_special_char: 記号必須(デフォルト: false)

デフォルトポリシーはNIST SP 800-63Bの推奨に従い、最小8文字のみを要求します。

セキュリティイベント

パスワード変更の成功・失敗時に以下のセキュリティイベントが発行されます:

  • password_change_success: パスワード変更成功時
  • password_change_failure: パスワード変更失敗時(検証エラー等)

参考実装

Authorizations:
OAuth2
path Parameters
tenant-id
required
string
Request Body schema: application/json
required
current_password
required
string

現在のパスワード。

このパスワードが正しいかどうかを検証してから新しいパスワードへの変更を行います。

new_password
required
string

新しいパスワード。

テナントに設定されたパスワードポリシー(identity_policy_config.password_policy)に従って検証されます。

デフォルトポリシー:

  • 最小8文字(NIST SP 800-63B推奨)

設定可能なポリシー:

  • min_length: 最小文字数
  • require_uppercase: 大文字を含む
  • require_lowercase: 小文字を含む
  • require_digit: 数字を含む
  • require_special_char: 記号を含む

Responses

Request samples

Content type
application/json
{
  • "current_password": "CurrentPassword123",
  • "new_password": "NewSecurePassword456"
}

Response samples

Content type
application/json
{
  • "message": "Password changed successfully."
}

パスワードリセット

セルフサービスでパスワードをリセットします。

認可フロー

このAPIは特別なスコープ password:reset が必要です。 通常のログインフローではなく、以下の手順で取得します:

  1. Email認証フローで認可リクエスト開始(scope=password:reset)
  2. Email認証チャレンジで検証コード送信
  3. Email認証検証でユーザー認証
  4. 認可コード取得
  5. トークンエンドポイントで password:reset スコープ付きアクセストークン取得
  6. このAPIでパスワードリセット実行

password/change との違い

API 必要なもの スコープ ユースケース
/v1/me/password/change 現在のパスワード openid ログイン中のパスワード変更
/v1/me/password/reset Email認証等 password:reset パスワードを忘れた場合

重要: このAPIは現在のパスワードを必要としません。代わりに、Email認証などの別の認証方式で取得した password:reset スコープ付きトークンを使用します。

パスワードポリシー

テナントごとに以下のポリシーを設定可能(identity_policy_config.password_policy):

  • min_length: 最小文字数(デフォルト: 8)
  • require_uppercase: 大文字必須(デフォルト: false)
  • require_lowercase: 小文字必須(デフォルト: false)
  • require_number: 数字必須(デフォルト: false)
  • require_special_char: 記号必須(デフォルト: false)

デフォルトポリシーはNIST SP 800-63Bの推奨に従い、最小8文字のみを要求します。

セキュリティイベント

パスワードリセットの成功・失敗時に以下のセキュリティイベントが発行されます:

  • password_reset_success: パスワードリセット成功時
  • password_reset_failure: パスワードリセット失敗時(ポリシー違反等)

参考

  • Issue #1002: Self-service password reset using email authentication
  • NIST SP 800-63B
Authorizations:
OAuth2
path Parameters
tenant-id
required
string
Request Body schema: application/json
required
new_password
required
string [ 8 .. 72 ] characters

新しいパスワード

Responses

Request samples

Content type
application/json
{
  • "new_password": "NewSecurePassword456!"
}

Response samples

Content type
application/json
{
  • "message": "Password changed successfully."
}

身元確認申込み

idp-server は身元確認済みID(verified ID)を提供するために、外部のサービスと連携した申込み・審査・完了登録の一連のフローを管理できます。

このAPIを利用することで、ユーザーから収集した情報を外部の身元確認サービスに送信し、確認済みクレーム(verified_claims)として idp-server に反映できます。

  • Control Plane APIでテンプレートを登録
  • ユーザーが申込みを行うと、テンプレートに従い外部APIと連携
  • コールバック等で審査結果・verified_claims登録用データを受信
  • 認証時、verified_claimsを含んだIDトークンやUserInfoを返却

テンプレートでは各種マッピングルール、JSON Schemaによるバリデーション、外部APIとの連携方式(OAuth2, HMAC, なし)を柔軟に定義可能です。

アクセストークンを用いて、ユーザー本人による安全な自己操作を実現します。

身元確認申込み

指定された verification-type(テンプレート種別)および verification-process(申込み処理タイプ)に従い、 身元確認申込みの初期リクエストを実行します。

レスポンスに後続で利用するidが返却されます。

このAPIは、あらかじめ Control Plane API により定義されたテンプレートに基づいて外部サービスに対して申請データを送信し、 審査プロセスの開始またはeKYCプロセスの起動を行います。

  • verification-type はテンプレートの type に対応
  • verification-process はテンプレート内の processes のキーに対応(例: apply, request-ekyc など)

リクエストボディはテンプレートで定義された request.schema に基づいてバリデーションされ、 必須項目の漏れや形式の不正がある場合はエラーになります。

正常に処理された場合は、response.body_mapping_rules に従いレスポンスを返却します。

Authorizations:
OAuth2
path Parameters
tenant-id
required
string
verification-type
required
string
Example: my_number
verification-process
required
string
Example: capture
Request Body schema: application/json
optional

テンプレートで定義されたスキーマに従うリクエストボディ。 内容は verification-type および verification-process ごとに異なる。

object

Responses

Request samples

Content type
application/json
{
  • "last_name": "伊藤",
  • "first_name": "一朗",
  • "birthdate": "1990-01-01",
  • "email_address": "ichiro@example.com"
}

Response samples

Content type
application/json
{
  • "id": "565b030e-04b5-45eb-989e-136e3623dc7d",
  • "application_number": "abcdefg012345"
}

身元確認申込み一覧取得

身元確認の申込みの一覧を取得する。

Authorizations:
OAuth2
path Parameters
tenant-id
required
string
query Parameters
id
string <uuid>

身元確認申請のID(UUID形式)での絞り込み

type
string

申込み種別(verification-type)での絞り込み

client_id
string

申請時に使用されたクライアントID

status
string

申請のステータス

application_details.<key>
string

申込み詳細情報のオブジェクトのkeyに対する検索(keyは具体的な値の設定が必要)

external_application_details.<key>
string

外部申込み結果の詳細情報のオブジェクトのkeyに対する検索(keyは具体的な値の設定が必要)

from
string <date-time>

絞り込み開始日時(ISO 8601形式)

to
string <date-time>

絞り込み終了日時(ISO 8601形式)

limit
integer
Default: 20

取得件数の上限(デフォルトは20件)

offset
integer
Default: 0

ページネーション用のオフセット(デフォルトは0)

Responses

Response samples

Content type
application/json
{
  • "list": [
    ],
  • "total_count": 0,
  • "limit": 0,
  • "offset": 0
}

身元確認申込み後続処理

既存の身元確認申込み(application)に対して、定義済みテンプレートおよびプロセスに従った後続の処理を実行します。

このAPIは、初回申込み(apply等)によって発行された申込みID(id)を指定し、 対象となる申込みに対して、eKYC完了通知・審査要求・外部サービスとの再連携などのアクションを柔軟に実行可能です。

  • verification-type はテンプレートの type に対応
  • id は既存の申込みIDを指定
  • verification-process はテンプレートの processes 内で定義された処理(例: complete-ekyc, callback-result

リクエストボディは、該当プロセスで必要とされる request.schema に基づいてバリデーションされ、 外部サービスとの連携や verified_claims 登録等が自動的に実行されます。

正常に処理された場合は、response.body_mapping_rules に従いレスポンスを返却します。

Authorizations:
OAuth2
path Parameters
tenant-id
required
string
verification-type
required
string
Example: my_number
id
required
string <uuid>
verification-process
required
string
Example: capture
Request Body schema: application/json
optional
object

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{
  • "property1": null,
  • "property2": null
}

身元確認申込み削除

Authorizations:
OAuth2
path Parameters
tenant-id
required
string
verification-type
required
string
Example: my_number
id
required
string <uuid>

Responses

Response samples

Content type
application/json
Example
{
  • "error": "invalid_request",
  • "error_description": "The identity verification request is invalid. Please review your input for missing or incorrect fields.",
  • "error_messages": [
    ]
}

身元確認結果

身元確認結果を確認するためのAPI アクセストークンを用いて、ユーザー本人による安全な自己操作を実現します。

身元確認結果の一覧取得

身元確認結果の一覧を取得します。

Authorizations:
OAuth2
path Parameters
tenant-id
required
string
query Parameters
id
string <uuid>

身元確認結果のID(UUID形式)での絞り込み

application_id
string <uuid>

身元確認申込みのID(UUID形式)での絞り込み

type
string

申込み種別(verification-type)での絞り込み

external_application_id
string

外部連携先の申請ID

external_service
string

連携先の外部サービス名

verified_claims.<key>
string

verified_claimsのオブジェクトのkeyに対する検索(keyは具体的な値の設定が必要)

verified_at_from
string <date-time>

verified_atに対する絞り込み 開始日時(ISO 8601形式)

verified_at_to
string <date-time>

verified_atに対する絞り込み 終了日時(ISO 8601形式)

verified_until_from
string <date-time>

verified_untilに対する絞り込み 開始日時(ISO 8601形式)

verified_until_to
string <date-time>

verified_untilに対する絞り込み 終了日時(ISO 8601形式)

limit
integer
Default: 20

取得件数の上限(デフォルトは20件)

offset
integer
Default: 0

ページネーション用のオフセット(デフォルトは0)

Responses

Response samples

Content type
application/json
{
  • "list": [
    ],
  • "total_count": 0,
  • "limit": 0,
  • "offset": 0
}