メインコンテンツまでスキップ
プレビュー版
PocketSign Link v2 は現在プレビュー版です。正式提供までに仕様が変更される可能性があります。

OIDC の概要

PocketSign Link v2 は KLON IdP サーバーに実装された OpenID Connect と OAuth 2.0 を使って、サービスに対するログイン、ユーザー識別、リソースアクセス権限の付与を提供します。 ブラウザベースの基本フローは Authorization Code Flow です。

:::info この章と標準仕様の関係 PocketSign Link v2 の OIDC は、閉じた独自仕様ではありません。詳細を知りたい場合は、以下の標準仕様をご参照ください。

:::

OIDC 連携でできること

PocketSign Link v2 と OIDC 連携すると、サービスは主に次のことができるようになります。

  • KLON のアカウントでユーザーを認証する
  • サービス ごとの サブスクリプションID を使ってユーザーを識別する
  • ID トークンで認証結果と基本的な属性を受け取る
  • アクセストークンを使って API を呼び出す
  • prompt=loginmax_ageacr_values を使って再認証を要求する

最初にイメージしたい基本シーケンス

OIDC 連携の最短イメージは、次の流れです。

  1. サービス が 認可エンドポイント にユーザーをリダイレクトする
  2. KLON がログイン、必要なら再認証や同意を行う
  3. サービス が認可コードを受け取り、トークンエンドポイント でトークンに交換する
  4. サービス は IDトークン や アクセストークン を用いることで、ユーザー情報を取得する

最低限必要になるリクエスト

典型的な Web サービス連携では、まず次の 2 つを押さえると全体像をつかみやすくなります。

フェーズ代表リクエスト役割
認可開始GET /api/oidc/v1/authorizeログイン、再認証、同意、認可コード発行の起点
トークン取得POST /api/oidc/v1/token認可コードを access_token / id_token / refresh_token に交換

IDトークン・アクセストークンにおける sub の意味

PocketSign Link v2 の IDトークン・アクセストークンにおける sub はサービスごとの subscription_id が入ります。

主要なエンドポイント

Issuer のベース URL は環境ごとに異なります。 固定のホスト名を前提にせず、まず /.well-known/openid-configuration を取得してください。

エンドポイントメソッド用途
/.well-known/openid-configurationGETDiscovery Document を取得します
/api/oidc/v1/jwksGETID トークンやアクセストークンの検証に使う公開鍵を取得します
/api/oidc/v1/authorizeGET認可リクエストを開始します
/api/oidc/v1/parPOSTPushed Authorization Request を登録し request_uri を発行します
/api/oidc/v1/tokenPOST認可コード、リフレッシュトークン、またはクライアントクレデンシャルをトークンに交換します
/api/oidc/v1/userinfoGET, POSTアクセストークンに対応する最新のユーザー属性を取得します
/api/oidc/v1/introspectPOSTアクセストークンまたはリフレッシュトークンの有効性を照会します
/api/oidc/v1/revokePOSTトークンを明示的に失効します

サポートしている基本仕様

項目サポート内容
response_typecode のみ
grant_typeauthorization_code, refresh_token
response_modequery
PKCES256 のみ
promptnone, login, consent
クライアント認証client_secret_basic, client_secret_post, private_key_jwt, none (ネイティブアプリのみ)
Rich Authorization Requestsauthorization_details をサポート
DPoP対応。proof の署名アルゴリズムは ES256 のみ

実装判断で迷いやすい項目

ログアウト連携をしたい場合

PocketSign Link v2 でセッションが終了したときに サービス 側のセッションも自動的に無効化したい場合は、Back-Channel Logout を参照してください。

ユースケース別に読みたい場合

具体的な導入イメージを先に掴みたい場合は、次のページから読むのが分かりやすいです。