CIBAとは
- OpenID Foundation によって策定された、認証・認可 に関する仕様の一つ。
- ユーザーの認証・同意取得処理を、ユーザーの認証デバイス(Authentication Device)で実施するのが特徴。
用語
-
Consumption Device (CD、消費デバイス)
- ユーザーがサービス利用(消費)に用いるデバイス。
- このデバイスがOIDC IdPに認証リクエストを行うことでCIBAフローが開始される。
-
Authentication Device (AD、認証デバイス)
- ユーザーが認証・同意を行うデバイス。
- スマホなど。
※2つのデバイス自体とそれらを操作する人物は同一でなくてもよい。
フロー
-
クライアントアプリ(Consumption Device、消費デバイス)は認可サーバー/バックチャネル認証エンドポイント(Backchannel Authentication Endpoint)に対してバックチャネル認証リクエスト(Backchannel Authentication Request)を行う。
-
認可サーバー/バックチャネル認証エンドポイントはクライアントに対してレスポンスとして認証を識別するための識別子を返却する。
-
認可サーバーはユーザーの認証デバイス(スマホなど)などに認証・同意取得処理を要求する。
-
クライアントアプリは次の3つのモードをトークンを取得する。
-
POLL
モード- (3で認証デバイスからユーザー認証・同意結果を得るまで、)クライアントアプリは認可サーバー/トークンエンドポイントに対して、トークンリクエストを繰り返す。
-
PING
モード-
(3で認証デバイスでのユーザー認証・同意取得処理完了後、)認可サーバーはクライアントアプリの通知エンドポイントに通知を行う。
-
クライアントアプリは認可サーバー/トークンエンドポイントに対して、トークンリクエストを行う。
-
-
PUSH
モード- (3で認証デバイスでのユーザー認証・同意取得処理が終わった後、)認可サーバーはトークン情報をクライアントの通知エンドポイントに直接渡す。
-
ユースケース
- コールセンターでの発信者の認証
- 銀行(対面応対)での顧客認証
- スマホを用いたPOS 端末支払い